Line data Source code
1 : #region Copyright
2 : // // -----------------------------------------------------------------------
3 : // // <copyright company="cdmdotnet Limited">
4 : // // Copyright cdmdotnet Limited. All rights reserved.
5 : // // </copyright>
6 : // // -----------------------------------------------------------------------
7 : #endregion
8 :
9 : using System;
10 : using System.Collections.Generic;
11 : using Cqrs.Repositories.Queries;
12 :
13 : namespace Cqrs.Repositories
14 : {
15 : public interface IRepository<TQueryStrategy, TData>
16 : where TQueryStrategy : IQueryStrategy
17 : {
18 0 : void Create(TData data);
19 :
20 0 : void Create(IEnumerable<TData> data);
21 :
22 0 : ISingleResultQuery<TQueryStrategy, TData> Retrieve(ISingleResultQuery<TQueryStrategy, TData> singleResultQuery, bool throwExceptionWhenNoQueryResults = true);
23 :
24 0 : ICollectionResultQuery<TQueryStrategy, TData> Retrieve(ICollectionResultQuery<TQueryStrategy, TData> resultQuery);
25 :
26 0 : void Update(TData data);
27 :
28 : /// <summary>
29 : /// Will mark the <paramref name="data"/> as logically (or soft).
30 : /// </summary>
31 1 : void Delete(TData data);
32 :
33 0 : void DeleteAll();
34 :
35 0 : void Destroy(TData data);
36 :
37 0 : TData Load(Guid rsn, bool throwExceptionOnMissingEntity = true);
38 : }
39 : }
|