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 :
11 : namespace Cqrs.Repositories.Queries
12 : {
13 : /// <summary>
14 : /// A factory to create new instances of <see cref="ResultQuery{TQueryStrategy,TData}"/>.
15 : /// </summary>
16 2 : public interface IQueryFactory
17 : {
18 : /// <summary>
19 : /// Creates a new <see cref="ISingleResultQuery{TQueryStrategy,TData}"/>
20 : /// </summary>
21 : /// <typeparam name="TUserQueryStrategy">The <see cref="Type"/> of <see cref="IQueryStrategy"/> it will use.</typeparam>
22 : /// <typeparam name="TData">The <see cref="Type"/> of data the <see cref="ISingleResultQuery{TQueryStrategy,TData}"/> will operate on.</typeparam>
23 : ISingleResultQuery<TUserQueryStrategy, TData> CreateNewSingleResultQuery<TUserQueryStrategy, TData>()
24 : where TUserQueryStrategy : IQueryStrategy;
25 :
26 : /// <summary>
27 : /// Creates a new <see cref="ICollectionResultQuery{TQueryStrategy,TData}"/>
28 : /// </summary>
29 : /// <typeparam name="TUserQueryStrategy">The <see cref="Type"/> of <see cref="IQueryStrategy"/> it will use.</typeparam>
30 : /// <typeparam name="TData">The <see cref="Type"/> of data the <see cref="ISingleResultQuery{TQueryStrategy,TData}"/> will operate on.</typeparam>
31 : ICollectionResultQuery<TUserQueryStrategy, TData> CreateNewCollectionResultQuery<TUserQueryStrategy, TData>()
32 : where TUserQueryStrategy : IQueryStrategy;
33 : }
34 : }
|