12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using InABox.Core;
- namespace InABox.Clients
- {
- public delegate void LogEvent(object sender, string message);
- public class ValidationData
- {
- public ValidationResult Status { get; set; }
- public string UserID { get; set; }
- public Guid UserGuid { get; set; }
- public Guid SecurityID { get; set; }
- public Guid SessionID { get; set; }
- public string? Recipient2FA { get; set; }
- public DateTime PasswordExpiration { get; set; }
-
- public ValidationData(ValidationResult status, string userID, Guid userGuid, Guid securityID, Guid sessionID, string? recipient2FA, DateTime passwordExpiration)
- {
- Status = status;
- UserID = userID;
- UserGuid = userGuid;
- SecurityID = securityID;
- SessionID = sessionID;
- Recipient2FA = recipient2FA;
- PasswordExpiration = passwordExpiration;
- }
- }
- public interface IClient
- {
- ValidationData Validate(string userid, string password, Guid session = default);
- ValidationData Validate(string pin, Guid session = default);
- ValidationData Validate(Guid session);
- CoreTable Query(object? filter = null, object? columns = null, object? sort = null);
- Entity[] Load(object? filter = null, object? sort = null);
- void Save(object entity, string auditnote);
- void Save(IEnumerable<object> entities, string auditnote);
- void Delete(object entity, string auditnote);
- void Delete(IList<object> entities, string auditnote);
- Dictionary<string, CoreTable> QueryMultiple(Dictionary<string, IQueryDef> queries);
- bool Check2FA(string code, Guid? session = null);
- /// <summary>
- /// Check if the server is running
- /// </summary>
- /// <returns><c>true</c> if the server is running</returns>
- bool Ping();
-
- /// <summary>
- /// Get general information about this server
- /// </summary>
- /// <returns>DatabaseInfo</returns>
- DatabaseInfo Info();
- IEnumerable<string> SupportedTypes();
- void Log(string format, params object[] parameters);
- event LogEvent OnLog;
- }
- public interface IClient<TEntity> : IClient where TEntity : Entity, new()
- {
- CoreTable Query(Filter<TEntity>? filter = null, Columns<TEntity>? columns = null, SortOrder<TEntity>? sort = null);
- void Query(Filter<TEntity>? filter, Columns<TEntity>? columns, SortOrder<TEntity>? sort, Action<CoreTable?, Exception?> callback);
- TEntity[] Load(Filter<TEntity>? filter = null, SortOrder<TEntity>? sort = null);
- void Load(Filter<TEntity>? filter, SortOrder<TEntity>? sort, Action<TEntity[]?, Exception?> callback);
- void Save(TEntity entity, string auditnote);
- void Save(IEnumerable<TEntity> entities, string auditnote);
- void Save(TEntity entity, string auditnote, Action<TEntity, Exception?> callback);
- void Save(IEnumerable<TEntity> entity, string auditnote, Action<IEnumerable<TEntity>, Exception?> callback);
- void Delete(TEntity entity, string auditnote);
- void Delete(IList<TEntity> entities, string auditnote);
- void Delete(TEntity entity, string auditnote, Action<TEntity, Exception?> callback);
- void Delete(IList<TEntity> entity, string auditnote, Action<IList<TEntity>, Exception?> callback);
- }
- }
|