IClient.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using InABox.Core;
  5. namespace InABox.Clients
  6. {
  7. public interface IClient
  8. {
  9. IValidationData Validate(string userid, string password, Guid session = default);
  10. IValidationData Validate(string pin, Guid session = default);
  11. IValidationData Validate(Guid session);
  12. CoreTable Query(object? filter = null, object? columns = null, object? sort = null);
  13. Entity[] Load(object? filter = null, object? sort = null);
  14. void Save(object entity, string auditnote);
  15. void Save(IEnumerable<object> entities, string auditnote);
  16. void Delete(object entity, string auditnote);
  17. void Delete(IEnumerable<object> entities, string auditnote);
  18. Dictionary<string, CoreTable> QueryMultiple(Dictionary<string, IQueryDef> queries);
  19. void QueryMultiple(Action<Dictionary<string, CoreTable>?, Exception?> callback, Dictionary<string, IQueryDef> queries);
  20. bool Check2FA(string code, Guid? session = null);
  21. /// <summary>
  22. /// Check if the server is running
  23. /// </summary>
  24. /// <returns><c>true</c> if the server is running</returns>
  25. bool Ping();
  26. /// <summary>
  27. /// Get general information about this server
  28. /// </summary>
  29. /// <returns>DatabaseInfo</returns>
  30. DatabaseInfo Info();
  31. string Version();
  32. string ReleaseNotes();
  33. byte[]? Installer();
  34. IEnumerable<string> SupportedTypes();
  35. event LogEvent OnLog;
  36. bool IsConnected();
  37. }
  38. public interface IClient<TEntity> : IClient where TEntity : Entity, new()
  39. {
  40. CoreTable Query(Filter<TEntity>? filter = null, Columns<TEntity>? columns = null, SortOrder<TEntity>? sort = null);
  41. void Query(Filter<TEntity>? filter, Columns<TEntity>? columns, SortOrder<TEntity>? sort, Action<CoreTable?, Exception?> callback);
  42. TEntity[] Load(Filter<TEntity>? filter = null, SortOrder<TEntity>? sort = null);
  43. void Load(Filter<TEntity>? filter, SortOrder<TEntity>? sort, Action<TEntity[]?, Exception?> callback);
  44. void Save(TEntity entity, string auditnote);
  45. void Save(IEnumerable<TEntity> entities, string auditnote);
  46. void Save(TEntity entity, string auditnote, Action<TEntity, Exception?> callback);
  47. void Save(IEnumerable<TEntity> entity, string auditnote, Action<IEnumerable<TEntity>, Exception?> callback);
  48. void Delete(TEntity entity, string auditnote);
  49. void Delete(IEnumerable<TEntity> entities, string auditnote);
  50. void Delete(TEntity entity, string auditnote, Action<TEntity, Exception?> callback);
  51. void Delete(IEnumerable<TEntity> entity, string auditnote, Action<IList<TEntity>, Exception?> callback);
  52. }
  53. }