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 Sarand.Net.Standard.Base.Utils; 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 Online //******************************************************************* // Utilities. public abstract bool CommitUsersOnline(IEnumerable usersOnline); //------------------------------------------------------------------- // Create item. public abstract SaxUserOnline CreateUserOnline(SysId userAccountId); //------------------------------------------------------------------- // Item exists. public bool UserOnlineExistsByUserAccountId(SysId userAccountId) { ClearErrorState(); if (!SysId.IsValid(userAccountId)) return false; SaxUserOnline.Params prmUserOnline = new SaxUserOnline.Params(); prmUserOnline.UserAccountIdsIncluded.Add(userAccountId); return GetUserOnlineCount(prmUserOnline) == 1; } //------------------------------------------------------------------- // Retrieve individual items. public abstract SaxUserOnline GetUserOnline(SaxUserOnline.Params prmUserOnline); public SaxUserOnline GetUserOnlineByUserAccountId(SysId userAccountId) { ClearErrorState(); if (!SysId.IsValid(userAccountId)) return null; SaxUserOnline.Params prmUserOnline = new SaxUserOnline.Params(); prmUserOnline.UserAccountIdsIncluded.Add(userAccountId); return GetUserOnline(prmUserOnline); } //------------------------------------------------------------------- // Validate item data. public bool IsValidUserOnline(SaxUserOnline userRole) { ClearErrorState(); if (userRole == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidUserOnlineData(userRole.GetData(), new SaxUserOnline.ErrField()); } public virtual bool IsValidUserOnlineData(SaxUserOnline.Data data, SaxUserOnline.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"); } // Online at. if (errField.OnlineAt != SacsHierarchyItem.ValidValue.Ignore && !DateUtil.IsValid(data.OnlineAt)) { errField.OnlineAt = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("last online time must be specified"); } //--------------------------------------------------------------- return true; } //------------------------------------------------------------------- // Item database interface. public abstract bool InsertUserOnline(SaxUserOnline userRole, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateUserOnline(SaxUserOnline userRole, DbUpdateInfo dbUpdateInfo); public virtual bool UserOnlineCanBeDeleted(SaxUserOnline userRole) { ClearErrorState(); return true; } public abstract bool DeleteUserOnline(SaxUserOnline userRole, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // Item list. public abstract ColumnDfn GetUserOnlineColumnDfn(SaxUserOnline.Column columnId, String caption = "", int width = 0); public abstract List GetUserOnlineQueryFilter(SaxUserOnline.Params prmUserOnline); public abstract long GetUserOnlineCount(SaxUserOnline.Params prmUserOnline); public abstract List GetUserOnlineList(SaxUserOnline.Params prmUserOnline); public abstract DbResultSet ExecuteUserOnlineQuery(List columns, SaxUserOnline.Params prmUserOnline); //------------------------------------------------------------------- /// /// 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 GetUserOnlineDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SaxUserOnline.Column)column.Id) { //----------------------------------------------------------- //----------------------------------------------------------- } return value; } //------------------------------------------------------------------- } //======================================================================= }