DbConfigurationProvider.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using InABox.Core;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace InABox.Database;
  8. public class DbConfigurationProvider<T> : IConfigurationProvider<T>
  9. where T : Entity, IRemotable, IPersistent, new()
  10. {
  11. public string UserID { get; init; }
  12. public DbConfigurationProvider(string userID)
  13. {
  14. UserID = userID;
  15. }
  16. public void Delete(T entity, Action<Exception?>? callback = null)
  17. {
  18. DbFactory.NewProvider(Logger.Main).Delete(entity, UserID);
  19. }
  20. public T[] Load(Filter<T> filter)
  21. {
  22. return DbFactory.NewProvider(Logger.Main).Load(filter);
  23. }
  24. public CoreTable Query(Filter<T> filter, Columns<T> columns, SortOrder<T>? sort = null)
  25. {
  26. return DbFactory.NewProvider(Logger.Main).Query(filter, columns, sort);
  27. }
  28. public void Save(T entity)
  29. {
  30. DbFactory.NewProvider(Logger.Main).Save(entity);
  31. }
  32. public void Save(IEnumerable<T> entities)
  33. {
  34. DbFactory.NewProvider(Logger.Main).Save(entities);
  35. }
  36. }