using System; using System.Collections.Generic; using System.Text; using System.Text.Json; using CoviDok.Api; using NCuid; namespace CoviDok.BLL { class SessionHandler { private readonly ISessionProvider SessionStore; public SessionHandler(ISessionProvider Provider) { SessionStore = Provider; } public Session GetSession(string SessionID) { string Candidate = SessionStore.Get(SessionID); if (Candidate == null) return null; Session session = JsonSerializer.Deserialize(Candidate); session.LastAccess = DateTime.Now; SessionStore.Set(SessionID, JsonSerializer.Serialize(session)); return session; } public string CreateSession(Role UserType, string UserID) { Session session = new Session { ID = UserID, Type = UserType, LastAccess = DateTime.Now }; string ID = Cuid.Generate(); SessionStore.Set(ID, JsonSerializer.Serialize(session)); return ID; } public void DeleteSession(string SessionID) { SessionStore.Del(SessionID); } } }