Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="Chinchilla Software Limited">
4 : // // Copyright Chinchilla Software Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System;
10 : using System.Linq;
11 : using Cqrs.Configuration;
12 : using Cqrs.DataStores;
13 : using Cqrs.Entities;
14 : using Cqrs.Repositories.Queries;
15 :
16 : namespace Cqrs.Azure.BlobStorage.Repositories.Queries
17 : {
18 : /// <summary>
19 : /// Builds an <see cref="IQueryable"/> from a <typeparamref name="TQueryStrategy"/> for use with Azure Storage.
20 : /// </summary>
21 : /// <typeparam name="TQueryStrategy">The <see cref="Type"/> of the <see cref="IQueryStrategy"/>.</typeparam>
22 : /// <typeparam name="TData">The <see cref="Type"/> of data to query.</typeparam>
23 : public abstract class BlobStorageQueryBuilder<TQueryStrategy, TData>
24 : : QueryBuilder<TQueryStrategy, TData>
25 : where TQueryStrategy : IQueryStrategy
26 : where TData : Entity
27 1 : {
28 : /// <summary>
29 : /// Instantiates a new instance of <see cref="BlobStorageQueryBuilder{TQueryStrategy,TData}"/>.
30 : /// </summary>
31 1 : protected BlobStorageQueryBuilder(IDataStore<TData> dataStore, IDependencyResolver dependencyResolver)
32 : : base(dataStore, dependencyResolver)
33 : {
34 : }
35 :
36 : #region Overrides of QueryBuilder<TQueryStrategy,TData>
37 :
38 : /// <summary>
39 : /// Returns the folder from <see cref="QueryBuilder{TQueryStrategy,TData}.DataStore"/> itself.
40 : /// </summary>
41 1 : protected override IQueryable<TData> GetEmptyQueryPredicate()
42 : {
43 : return DataStore.GetByFolder().AsQueryable();
44 : }
45 :
46 : #endregion
47 : }
48 : }
|