12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using InABox.Core;
- namespace InABox.Database
- {
- public interface IStore
- {
- bool IsSubStore { get; set; }
- Guid UserGuid { get; set; }
- string UserID { get; set; }
- Platform Platform { get; set; }
- string Version { get; set; }
- IProvider Provider { get; set; }
-
- // Called once at Database Startup to initialise caches etc
- void Init();
-
- IEnumerable<object[]> List(Filter<Entity>? filter = null, Columns<Entity>? columns = null, SortOrder<Entity>? sort = null);
- CoreTable Query(Filter<Entity>? filter = null, Columns<Entity>? columns = null, SortOrder<Entity>? sort = null);
- Entity[] Load(Filter<Entity>? filter = null, SortOrder<Entity>? sort = null);
- void Save(Entity entity, string auditnote);
- void Save(IEnumerable<Entity> entities, string auditnote);
- void Delete(Entity entity, string auditnote);
- void Delete(IEnumerable<Entity> entities, string auditnote);
- void BulkUpdate(IEnumerable<Entity> entities);
-
- }
- public interface IStore<T> : IStore where T : Entity, new()
- {
- IEnumerable<object[]> List(Filter<T>? filter = null, Columns<T>? columns = null, SortOrder<T>? sort = null);
- CoreTable Query(Filter<T>? filter = null, Columns<T>? columns = null, SortOrder<T>? sort = null);
- T[] Load(Filter<T>? filter = null, SortOrder<T>? sort = null);
- void Save(T entity, string auditnote);
- void Save(IEnumerable<T> entities, string auditnote);
- void Delete(T entity, string auditnote);
- void Delete(IEnumerable<T> entities, string auditnote);
- void BulkUpdate(IEnumerable<T> entities);
- //void ResetAggregate<TSource>(T entity, Expression<Func<TSource, object>> link, params IAggregate<TSource, T>[] aggregates) where TSource : Entity, new();
- //DoubleAggregate<T, TTarget> Sum<TTarget>(Expression<Func<T, double>> source, Expression<Func<TTarget, double>> target) where TTarget : Entity, new();
- //TimeSpanAggregate<T, TTarget> Sum<TTarget>(Expression<Func<T, TimeSpan>> source, Expression<Func<TTarget, TimeSpan>> target) where TTarget : Entity, new();
- //IntegerAggregate<T, TTarget> Sum<TTarget>(Expression<Func<T, int>> source, Expression<Func<TTarget, int>> target) where TTarget : Entity, new();
- //DoubleAggregate<T, TTarget> Count<TTarget>(Expression<Func<TTarget, double>> target) where TTarget : Entity, new();
- //TimeSpanAggregate<T, TTarget> Count<TTarget>(Expression<Func<TTarget, TimeSpan>> target) where TTarget : Entity, new();
- //IntegerAggregate<T, TTarget> Count<TTarget>(Expression<Func<TTarget, int>> target) where TTarget : Entity, new();
- }
- }
|