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.Collections.Generic;
11 : using System.Linq;
12 : using Cqrs.Entities;
13 :
14 : namespace Cqrs.DataStores
15 : {
16 : /// <summary>
17 : /// A data store capable of being queried and modified.
18 : /// </summary>
19 : public interface IDataStore<TData> : IOrderedQueryable<TData>, IDisposable
20 : {
21 : /// <summary>
22 : /// Add the provided <paramref name="data"/> to the data store and persist the change.
23 : /// </summary>
24 1 : void Add(TData data);
25 :
26 : /// <summary>
27 : /// Add the provided <paramref name="data"/> to the data store and persist the change.
28 : /// </summary>
29 1 : void Add(IEnumerable<TData> data);
30 :
31 : /// <summary>
32 : /// Will mark the <paramref name="data"/> as logically (or soft) deleted by setting <see cref="Entity.IsLogicallyDeleted"/> to true in the data store and persist the change.
33 : /// </summary>
34 1 : void Remove(TData data);
35 :
36 : /// <summary>
37 : /// Remove the provided <paramref name="data"/> (normally by <see cref="IEntity.Rsn"/>) from the data store and persist the change.
38 : /// </summary>
39 1 : void Destroy(TData data);
40 :
41 : /// <summary>
42 : /// Remove all contents (normally by use of a truncate operation) from the data store and persist the change.
43 : /// </summary>
44 1 : void RemoveAll();
45 :
46 : /// <summary>
47 : /// Update the provided <paramref name="data"/> in the data store and persist the change.
48 : /// </summary>
49 1 : void Update(TData data);
50 : }
51 : }
|