155 lines
4.8 KiB
C#
155 lines
4.8 KiB
C#
using Newtonsoft.Json;
|
|
using Sarand.BusinessMgr.Net.Core.Web.App;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
|
using Sarand.BusinessMgr.Web.Control.Components;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Dbas;
|
|
using Sarand.Net.Standard.Base.Helpers;
|
|
using Sarand.Net.Standard.Base.Utils;
|
|
using System;
|
|
|
|
namespace Sarand.BusinessMgr.Web.Control.App
|
|
{
|
|
//=======================================================================
|
|
public class SbmSessionData_Control : SbmSessionData_Web, ISbmSessionData_Control
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
[JsonConstructor]
|
|
private SbmSessionData_Control(long sessionIdx, SbmSessionContext sessionContext) :
|
|
base(sessionIdx, sessionContext)
|
|
{ }
|
|
/// <summary>
|
|
/// SessionData construction.
|
|
/// <para>SessionContext and UserAccount must be supplied.</para>
|
|
/// </summary>
|
|
public SbmSessionData_Control(SbmSessionContext sessionContext, SbmcUserAccount userAccount) :
|
|
base(sessionContext)
|
|
{
|
|
User = new UserData_Control(sessionContext, userAccount);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Properties.
|
|
|
|
[JsonIgnore]
|
|
public override String UserDisplayName { get { return User?.DisplayName; } }
|
|
[JsonIgnore]
|
|
public override String UserEmailAddress { get { return User?.EmailAddress; } }
|
|
[JsonIgnore]
|
|
public override bool ValidUser { get { return SysId.IsValid(User?.UserAccountId); } }
|
|
[JsonIgnore]
|
|
public override bool KeepLoggedIn { get { return User.KeepLoggedIn; } }
|
|
[JsonIgnore]
|
|
public override DbUpdateInfo DbUpdateInfo
|
|
{
|
|
get
|
|
{
|
|
return new DbUpdateInfo(User?.UserAccountId, StringUtil.OnEmpty(User.DisplayName, User.EmailAddress), SbmSystem.ComputerName);
|
|
}
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// User details.
|
|
public class UserData_Control : UserData
|
|
{
|
|
[JsonConstructor]
|
|
private UserData_Control()
|
|
{ }
|
|
internal UserData_Control(SbmSessionContext sessionContext, SbmcUserAccount userAccount) :
|
|
base(sessionContext)
|
|
{
|
|
UserAccountId = userAccount.Id;
|
|
if (SysId.IsValid(UserAccountId))
|
|
{
|
|
UserAccountSupplied = true;
|
|
DisplayName = userAccount.GetDisplayName();
|
|
Title = userAccount.Title;
|
|
FirstName = userAccount.FirstName;
|
|
LastName = userAccount.LastName;
|
|
EmailAddress = userAccount.EmailAddress;
|
|
}
|
|
}
|
|
internal UserData_Control(UserData userData) :
|
|
base(userData)
|
|
{
|
|
UserData_Control userData_Control = userData as UserData_Control;
|
|
if (userData_Control != null)
|
|
{
|
|
UserAccountId = userData_Control.UserAccountId;
|
|
UserAccountSupplied = userData_Control.UserAccountSupplied;
|
|
KeepLoggedIn = userData_Control.KeepLoggedIn;
|
|
}
|
|
DisplayName = userData.DisplayName;
|
|
Title = userData.Title;
|
|
FirstName = userData.FirstName;
|
|
LastName = userData.LastName;
|
|
EmailAddress = userData.EmailAddress;
|
|
}
|
|
// Properties.
|
|
public SysId UserAccountId { get; private set; }
|
|
public bool UserAccountSupplied { get; private set; }
|
|
public bool KeepLoggedIn { get; private set; }
|
|
}
|
|
protected UserData CreateUserData(SbmSessionContext sessionContext, SbmcUserAccount userAccount)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
/// <summary>User - JSON deserialisation route.</summary>
|
|
public UserData_Control User { get; private set; }
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>
|
|
/// User Profile.
|
|
/// <para>- Filter settings.</para>
|
|
/// </summary>
|
|
public class UserProfileData
|
|
{
|
|
public UserProfileData() { }
|
|
|
|
// Common filter.
|
|
public class FilterData
|
|
{
|
|
/// <summary>Currently selected Repository Context</summary>
|
|
public String RepositoryContext { get; set; }
|
|
}
|
|
/// <summary>
|
|
/// Common filter properties.
|
|
/// </summary>
|
|
public FilterData Filter { get; private set; } = new FilterData();
|
|
}
|
|
public UserProfileData Profile { get; protected set; } = new UserProfileData();
|
|
|
|
//-------------------------------------------------------------------
|
|
// System.
|
|
public class SystemData
|
|
{
|
|
// Databases.
|
|
public class DatabaseData
|
|
{
|
|
}
|
|
public DatabaseData Database { get; private set; } = new DatabaseData();
|
|
|
|
// Logs.
|
|
public class LogsData
|
|
{
|
|
public class FilterData
|
|
{
|
|
public String Folder { get; set; }
|
|
public String Year { get; set; }
|
|
public String Month { get; set; }
|
|
}
|
|
public FilterData Filter { get; private set; } = new FilterData();
|
|
}
|
|
public LogsData Logs { get; private set; } = new LogsData();
|
|
}
|
|
public SystemData System { get; private set; } = new SystemData();
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|