using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Security; using Sarand.Net.Standard.Base.UpdateLog; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Sarand.Net.Standard.Dbas.Security { //======================================================================= public class SaUpdateLogItemMonitor_SecurityLink : SaUpdateLogItemMonitor { //------------------------------------------------------------------- // Configuration. public new class Config : SaUpdateLogItemMonitor.Config { public Config (SaUpdateLogConsole updateLogConsole, SysId itemId, DbUpdateInfo dbUpdateInfo) : base(updateLogConsole, dbUpdateInfo) { ItemType = (short)SaDataItemType.SecurityItem; ItemId = itemId; } } //------------------------------------------------------------------- // Data members. //------------------------------------------------------------------- // Construction. public SaUpdateLogItemMonitor_SecurityLink (SaSecurityConsole securityConsole, SaSecurityLink securityLink, DbUpdateInfo dbUpdateInfo) : base(new Config(securityConsole.UpdateLogConsole, securityLink.Id, dbUpdateInfo)) { RecordAttrValues(securityLink, false); } //------------------------------------------------------------------- // Record attribute values. public bool RecordUpdatedValues (SaSecurityLink securityLink) { return RecordAttrValues(securityLink, true); } private bool RecordAttrValues (SaSecurityLink securityLink, bool newValues) { ClearErrorState(); // Security Item Properties - record values that may require logging. RecordAttrValue(SaSecurityDbDfn.GetColumnName(SaSecurityDbDfn.ColumnIdx.SaSecLink_ItemOwner, false), SysId.ToInt(securityLink.ItemIdOwner), newValues); RecordAttrValue(SaSecurityDbDfn.GetColumnName(SaSecurityDbDfn.ColumnIdx.SaSecLink_ItemTarget, false), SysId.ToInt(securityLink.ItemIdTarget), newValues); RecordAttrValue(SaSecurityDbDfn.GetColumnName(SaSecurityDbDfn.ColumnIdx.SaSecLink_ItemContext, false), SysId.ToInt(securityLink.ItemIdContext), newValues); // Common properties. RecordAttrValue(SaSecurityDbDfn.GetColumnName(SaSecurityDbDfn.ColumnIdx.SaSecLink_Status, false), securityLink.StatusCode, newValues); return !HasErrorState(); } //------------------------------------------------------------------- } //======================================================================= }