| 1234567891011121314151617181920212223242526272829303132333435363738394041 | 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; }                Type Type { get; }                // Called once at Database Startup to initialise caches etc        void Init();                CoreTable Query(Filter<Entity>? filter = null, Columns<Entity>? columns = null, SortOrder<Entity>? sort = null);        CoreTable Query(IFilter? filter = null, IColumns? columns = null, ISortOrder? 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);    }    public interface IStore<T> : IStore where T : Entity, new()    {        CoreTable Query(Filter<T>? filter = null, Columns<T>? columns = 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);    }}
 |