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;
}
}
//-------------------------------------------------------------------
}
//=======================================================================
}