using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Bus; 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 System; using System.Collections.Generic; namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { //======================================================================= // Account manager - System Users. //======================================================================= partial class SbmAccountMgr { //------------------------------------------------------------------- // Utilities. //------------------------------------------------------------------- // Retrieve individual systemUsers. //------------------------------------------------------------------- // SystemUser exists. public bool SystemUserExistsById(SysId systemUserId) { ClearErrorState(); if (!SysId.IsValid(systemUserId)) return false; SbmSystemUser.Params prmSystemUser = new SbmSystemUser.Params(); prmSystemUser.IdsIncluded.Add(systemUserId); prmSystemUser.StatusCat = SbmSystemUser.StatusCat.Any; return GetSystemUserCount(prmSystemUser) == 1; } public bool SystemUserExistsByAffiliateId(SysId interfaceId, SysId affiliateId) { ClearErrorState(); if (!SysId.IsValid(interfaceId) || !SysId.IsValid(affiliateId)) return false; SbmSystemUser.Params prmSystemUser = new SbmSystemUser.Params(); prmSystemUser.InterfaceId = interfaceId; prmSystemUser.AffiliateId = affiliateId; prmSystemUser.StatusCat = SbmSystemUser.StatusCat.Any; return GetSystemUserCount(prmSystemUser) == 1; } public bool SystemUserExistsByCode(SysId interfaceId, String code) { ClearErrorState(); if (!SysId.IsValid(interfaceId) || !StringUtil.IsEmpty(code)) return false; SbmSystemUser.Params prmSystemUser = new SbmSystemUser.Params(); prmSystemUser.InterfaceId = interfaceId; prmSystemUser.Code = code; prmSystemUser.StatusCat = SbmSystemUser.StatusCat.Any; return GetSystemUserCount(prmSystemUser) == 1; } //------------------------------------------------------------------- // Get systemUser. public abstract SbmSystemUser GetSystemUser(SbmSystemUser.Params prm); public SbmSystemUser GetSystemUserById(SysId systemUserId) { ClearErrorState(); if (!SysId.IsValid(systemUserId)) return null; SbmSystemUser.Params prmSystemUser = new SbmSystemUser.Params(); prmSystemUser.IdsIncluded.Add(systemUserId); prmSystemUser.StatusCat = SbmSystemUser.StatusCat.Any; return GetSystemUser(prmSystemUser); } public SbmSystemUser GetSystemUserByAffiliateId(SysId interfaceId, SysId affiliateId) { ClearErrorState(); if (!SysId.IsValid(interfaceId) || !SysId.IsValid(affiliateId)) return null; SbmSystemUser.Params prmSystemUser = new SbmSystemUser.Params(); prmSystemUser.InterfaceId = interfaceId; prmSystemUser.AffiliateId = affiliateId; prmSystemUser.StatusCat = SbmSystemUser.StatusCat.Any; return GetSystemUser(prmSystemUser); } public SbmSystemUser GetSystemUserByCode(SysId interfaceId, String code) { ClearErrorState(); if (!SysId.IsValid(interfaceId) || !StringUtil.IsEmpty(code)) return null; SbmSystemUser.Params prmSystemUser = new SbmSystemUser.Params(); prmSystemUser.InterfaceId = interfaceId; prmSystemUser.Code = code; prmSystemUser.StatusCat = SbmSystemUser.StatusCat.Any; return GetSystemUser(prmSystemUser); } //------------------------------------------------------------------- // Create systemUser. public abstract SbmSystemUser CreateSystemUser(SysId interfaceId, SysId affiliateId); //------------------------------------------------------------------- // Validate systemUser data. public bool IsValidSystemUser(SbmSystemUser systemUser) { ClearErrorState(); if (systemUser == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidSystemUserData(systemUser.GetData(), new SbmSystemUser.ErrField()); } public virtual bool IsValidSystemUserData(SbmSystemUser.Data data, SbmSystemUser.ErrField errField) { // SystemUser properties. ClearErrorState(); //Validate the identity. if (!SysId.IsValid(data.AffiliateIdOwner)) return SetErrorState("invalid affiliate owner"); // Validate the text attributes. if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Code), true)) { errField.Code = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.AuthCodeEnc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AuthCodeEnc, "authorisation code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_AuthCodeEnc))) { errField.AuthCodeEnc = SacsHierarchyItem.ValidValue.Invalid; return false; } // Common properties. if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Notes))) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SbmSystemUser.SystemUserStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // SystemUser database interface. public abstract bool InsertSystemUser(SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateSystemUser(SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo); public virtual bool SystemUserCanBeDeleted(SbmSystemUser systemUser) { ClearErrorState(); return true; } public abstract bool DeleteSystemUser(SbmSystemUser systemUser, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // SystemUser list. public abstract ColumnDfn GetSystemUserColumnDfn(SbmSystemUser.Column columnId, String caption = "", int width = 0); public abstract List GetSystemUserQueryFilter(SbmSystemUser.Params prm); public abstract long GetSystemUserCount(SbmSystemUser.Params prm); public abstract List GetSystemUserList(SbmSystemUser.Params prm); public abstract DbResultSet SystemUserExecuteQuery(List columns, SbmSystemUser.Params prm); //------------------------------------------------------------------- // D a t a V a l u e s //------------------------------------------------------------------- /// /// 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 DataValue GetSystemUserDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SbmSystemUser.Column)column.Id) { //----------------------------------------------------------- // Notes. case SbmSystemUser.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SbmSystemUser.Column.Status_Desc: case SbmSystemUser.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SbmSystemUser.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SbmSystemUser.Column.Status_Ind) value = new DataValue(SbmSystemUser.GetStatusTriState(status)); } break; //----------------------------------------------------------- default: value = values.GetValue(column.DataName); break; } return value; } //------------------------------------------------------------------- } //======================================================================= }