using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Bus; using Sarand.BusinessMgr.Net.Standard.Base.UpdateLog; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using System.Collections.Generic; namespace Sarand.BusinessMgr.Net.Standard.Dbas.UpdateLog { //======================================================================= public class SbmUpdateLogItemMonitor_Process : SbmUpdateLogItemMonitor { //------------------------------------------------------------------- // Configuration. public new class Config : SbmUpdateLogItemMonitor.Config { public Config(SbmInternals internals, SysId itemId) : base(internals) { ItemType = (short)Sbm.ItemType.Process; ItemId = itemId; } } //------------------------------------------------------------------- // Data members. private readonly List processCategories, processTypes; //------------------------------------------------------------------- // Construction. public SbmUpdateLogItemMonitor_Process(SbmInternals internals, SbmProcess process) : base(new Config(internals, process.Id)) { processCategories = internals.GetSystemCodes(Sbm.SystemCode.ProcessCategory); processTypes = internals.GetSystemCodes(Sbm.SystemCode.ProcessType); RecordAttrValues(process, false); } //------------------------------------------------------------------- // Record attribute values. public bool RecordUpdatedValues(SbmProcess process) { return RecordAttrValues(process, true); } private bool RecordAttrValues(SbmProcess process, bool newValues) { ClearErrorState(); // Process Properties - record values that may require logging. RecordAttrValue(SbmDbDfn.ColumnIdx.Process_AffIdOwner, SysId.ToInt(process.AffiliateIdOwner), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Process_Category, processCategories.GetDescForType(process.ProcessCategory, ((int)process.ProcessCategory).ToString()), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Process_Type, processTypes.GetDescForType(process.ProcessType, ((int)process.ProcessType).ToString()), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Process_Seq, process.Seq, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Process_DescBrief, process.DescBrief, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Process_DescOutline, process.DescOutline, newValues); // Common properties. RecordAttrValue(SbmDbDfn.ColumnIdx.Process_Notes, process.Notes, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Process_Status, SacsSystem.GetStatusCode(process.Status), newValues); return OK; } //------------------------------------------------------------------- } //======================================================================= }