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 Config //******************************************************************* // Utilities. public List GetConfigsForUser(SysId userAccountId) { SaxUserConfig.Params prmUserConfig = new SaxUserConfig.Params(); prmUserConfig.UserAccountIdsIncluded.Add(userAccountId); List userConfigs = AccountMgr.GetUserConfigList(prmUserConfig); return userConfigs; } //------------------------------------------------------------------- // Create item. public abstract SaxUserConfig CreateUserConfig(SysId userAccountId, Sax.UserConfigType configType); //------------------------------------------------------------------- // Item exists. public bool UserConfigExists(SysId userAccountId) { ClearErrorState(); if (!SysId.IsValid(userAccountId)) return false; SaxUserConfig.Params prmUserConfig = new SaxUserConfig.Params(); prmUserConfig.UserAccountIdsIncluded.Add(userAccountId); return GetUserConfigCount(prmUserConfig) == 1; } //------------------------------------------------------------------- // Retrieve individual items. public abstract SaxUserConfig GetUserConfig(SaxUserConfig.Params prmUserConfig); public SaxUserConfig GetUserConfig(SysId userAccountId, Sax.UserConfigType configType) { ClearErrorState(); if (!SysId.IsValid(userAccountId) || configType <= 0) return null; SaxUserConfig.Params prmUserConfig = new SaxUserConfig.Params(); prmUserConfig.UserAccountIdsIncluded.Add(userAccountId); prmUserConfig.ConfigType = configType; return GetUserConfig(prmUserConfig); } //------------------------------------------------------------------- // Validate item data. public bool IsValidUserConfig(SaxUserConfig userConfig) { ClearErrorState(); if (userConfig == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidUserConfigData(userConfig.GetData(), new SaxUserConfig.ErrField()); } public virtual bool IsValidUserConfigData(SaxUserConfig.Data data, SaxUserConfig.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"); } // Config Type. if (errField.ConfigType != SacsHierarchyItem.ValidValue.Ignore && data.ConfigType <= 0) { errField.UserAccountId = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Config type must be specified"); } return true; } //------------------------------------------------------------------- // Item database interface. public abstract bool InsertUserConfig(SaxUserConfig userConfig, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateUserConfig(SaxUserConfig userConfig, DbUpdateInfo dbUpdateInfo); public virtual bool UserConfigCanBeDeleted(SaxUserConfig userConfig) { ClearErrorState(); return true; } public abstract bool DeleteUserConfig(SaxUserConfig userConfig, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // Item list. public abstract ColumnDfn GetUserConfigColumnDfn(SaxUserConfig.Column columnId, String caption = "", int width = 0); public abstract List GetUserConfigQueryFilter(SaxUserConfig.Params prmUserConfig); public abstract long GetUserConfigCount(SaxUserConfig.Params prmUserConfig); public abstract List GetUserConfigList(SaxUserConfig.Params prmUserConfig); public abstract DbResultSet ExecuteUserConfigQuery(List columns, SaxUserConfig.Params prmUserConfig); //------------------------------------------------------------------- /// /// 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 GetUserConfigDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SaxUserConfig.Column)column.Id) { //----------------------------------------------------------- // User Display Name. case SaxUserConfig.Column.User_DisplayName: { String userTitle = values.GetValue(GetUserConfigColumnDfn(SaxUserConfig.Column.User_Title).DataName).ToString(); String userFirstName = values.GetValue(GetUserConfigColumnDfn(SaxUserConfig.Column.User_FirstName).DataName).ToString(); String userLastName = values.GetValue(GetUserConfigColumnDfn(SaxUserConfig.Column.User_LastName).DataName).ToString(); value = new DataValue(SaxUserAccount.GetDisplayName(userTitle, userFirstName, userLastName)); } break; //----------------------------------------------------------- } return value; } //------------------------------------------------------------------- } //======================================================================= }