using Newtonsoft.Json; using Sarand.BusinessMgr.Net.Standard.Base.Bus; using Sarand.BusinessMgr.Net.Standard.Base.Core; using Sarand.BusinessMgr.Net.Standard.Base.Mgr; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Helpers; using Sarand.Net.Standard.Base.Security; using Sarand.Net.Standard.Base.Utils; using System; using System.Collections.Generic; using System.Diagnostics; using System.Text; namespace Sarand.BusinessMgr.Net.Standard.Base.App { //======================================================================= public abstract class SbmSessionData { //------------------------------------------------------------------- private static long sessionIdxRoot = SacsRandomHelper.GetInt32(1000, 1999); //------------------------------------------------------------------- // Construction. /// Protected constructor for deserialisation only. protected SbmSessionData(long sessionIdx, int itemIdx, SbmSessionContext sessionContext) { SessionIdx = sessionIdx; ItemIdx = itemIdx; SessionContext = sessionContext; } /// /// Plain constructor. /// - SessionContext must be supplied. /// protected SbmSessionData(SbmSessionContext sessionContext) { SessionIdx = ++sessionIdxRoot; ItemIdx = 1000; SessionContext = sessionContext; } //------------------------------------------------------------------- // Properties. // Session and Item indexers. public long SessionIdx { get; } public int ItemIdx { get; private set; } [JsonIgnore] public int NextItemIdx { get { return ++ItemIdx; } } // Session context. public SbmSessionContext SessionContext { get; } // User properties. [JsonIgnore] public abstract String UserEmailAddress { get; } [JsonIgnore] public abstract String UserDisplayName { get; } [JsonIgnore] public abstract bool ValidUser { get; } [JsonIgnore] public abstract DbUpdateInfo DbUpdateInfo { get; } //------------------------------------------------------------------- // User. public class UserData { protected UserData() { } protected UserData(SbmSessionContext sessionContext) { } protected UserData(UserData userData) { Title = userData.Title; FirstName = userData.FirstName; LastName = userData.LastName; DisplayName = userData.DisplayName; EmailAddress = userData.EmailAddress; } // Properties. public String Title { get; protected set; } public String FirstName { get; protected set; } public String LastName { get; protected set; } public String DisplayName { get; protected set; } public String EmailAddress { get; protected set; } // Refresh properties. protected bool Refresh() { return true; } } //------------------------------------------------------------------- } //======================================================================= }