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 :
12 : namespace Cqrs.Repositories.Queries
13 : {
14 : /// <summary>
15 : /// Builds an <see cref="IQueryable"/> from a <typeparamref name="TQueryStrategy"/>.
16 : /// </summary>
17 : /// <typeparam name="TQueryStrategy">The <see cref="Type"/> of the <see cref="IQueryStrategy"/>.</typeparam>
18 : /// <typeparam name="TData">The <see cref="Type"/> of data to query.</typeparam>
19 : public interface IQueryBuilder<TQueryStrategy, TData>
20 : where TQueryStrategy : IQueryStrategy
21 : {
22 : /// <summary>
23 : /// Create an <see cref="IQueryable"/> of <typeparamref name="TData"/>
24 : /// that expects a single <typeparamref name="TData"/> item.
25 : /// </summary>
26 : /// <param name="singleResultQuery">The query.</param>
27 1 : IQueryable<TData> CreateQueryable(ISingleResultQuery<TQueryStrategy, TData> singleResultQuery);
28 :
29 : /// <summary>
30 : /// Create an <see cref="IQueryable"/> of <typeparamref name="TData"/>
31 : /// that expects a collection of <typeparamref name="TData"/> items.
32 : /// </summary>
33 : /// <param name="collectionResultQuery">The query.</param>
34 1 : IQueryable<TData> CreateQueryable(ICollectionResultQuery<TQueryStrategy, TData> collectionResultQuery);
35 : }
36 : }
|