using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Dbas; using Saxonite.Base.App; using Saxonite.Net.Standard.Base.App; using Saxonite.Net.Standard.Base.Bus; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Saxonite.Net.Standard.Base.Mgr { //======================================================================= partial class SaxAccountMgr { //******************************************************************* // Account Mgr - User Session //******************************************************************* // Utilities. //------------------------------------------------------------------- // Create item. public abstract SaxUserSession CreateUserSession(SysId userAccountId); //------------------------------------------------------------------- // Item exists. public bool UserSessionExists(SysId userAccountId) { ClearErrorState(); if (!SysId.IsValid(userAccountId)) return false; SaxUserSession.Params prmUserSession = new SaxUserSession.Params(); prmUserSession.UserAccountIdsIncluded.Add(userAccountId); return GetUserSessionCount(prmUserSession) == 1; } //------------------------------------------------------------------- // Retrieve individual items. public abstract SaxUserSession GetUserSession(SaxUserSession.Params prmUserSession); public SaxUserSession GetUserSession(SysId userAccountId) { ClearErrorState(); if (!SysId.IsValid(userAccountId)) return null; SaxUserSession.Params prmUserSession = new SaxUserSession.Params(); prmUserSession.UserAccountIdsIncluded.Add(userAccountId); return GetUserSession(prmUserSession); } //------------------------------------------------------------------- // Validate item data. public bool IsValidUserSession(SaxUserSession userSession) { ClearErrorState(); if (userSession == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidUserSessionData(userSession.GetData(), new SaxUserSession.ErrField()); } public virtual bool IsValidUserSessionData(SaxUserSession.Data data, SaxUserSession.ErrField errField) { ClearErrorState(); // User Account. if (errField.UserAccountId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.UserAccountId)) { errField.UserAccountId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("User Account Id must be specified"); } return true; } //------------------------------------------------------------------- // Item database interface. public abstract bool InsertUserSession(SaxUserSession userSession, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateUserSession(SaxUserSession userSession, DbUpdateInfo dbUpdateInfo); public virtual bool UserSessionCanBeDeleted(SaxUserSession userSession) { ClearErrorState(); return true; } public abstract bool DeleteUserSession(SaxUserSession userSession, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // Item list. public abstract ColumnDfn GetUserSessionColumnDfn(SaxUserSession.Column columnId, String caption = "", int width = 0); public abstract List GetUserSessionQueryFilter(SaxUserSession.Params prmUserSession); public abstract long GetUserSessionCount(SaxUserSession.Params prmUserSession); public abstract List GetUserSessionList(SaxUserSession.Params prmUserSession); public abstract DbResultSet ExecuteUserSessionQuery(List columns, SaxUserSession.Params prmUserSession); //------------------------------------------------------------------- /// /// Extract and format result set data value where specific handling is required. /// Where response is an invalid data value, format value using column.FormatValue(values). /// public virtual DataValue GetUserSessionDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SaxUserSession.Column)column.Id) { //----------------------------------------------------------- // User Display Name. case SaxUserSession.Column.User_DisplayName: { String userTitle = values.GetValue(GetUserSessionColumnDfn(SaxUserSession.Column.User_Title).DataName).ToString(); String userFirstName = values.GetValue(GetUserSessionColumnDfn(SaxUserSession.Column.User_FirstName).DataName).ToString(); String userLastName = values.GetValue(GetUserSessionColumnDfn(SaxUserSession.Column.User_LastName).DataName).ToString(); value = new DataValue(SaxUserAccount.GetDisplayName(userTitle, userFirstName, userLastName)); } break; //----------------------------------------------------------- } return value; } //------------------------------------------------------------------- } //======================================================================= }