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_Address : SbmUpdateLogItemMonitor { //------------------------------------------------------------------- // Configuration. public new class Config : SbmUpdateLogItemMonitor.Config { public Config(SbmInternals internals, SysId itemId) : base(internals) { ItemType = (short)Sbm.ItemType.Address; ItemId = itemId; } } //------------------------------------------------------------------- // Data members. private readonly List itemTypes, addressTypes; //------------------------------------------------------------------- // Construction. public SbmUpdateLogItemMonitor_Address(SbmInternals internals, SbmAddress address) : base(new Config(internals, address.Id)) { itemTypes = internals.GetApplicationCodes(Sbm.ApplicationCode.ItemType); addressTypes = internals.GetApplicationCodes(Sbm.ApplicationCode.AddressType); RecordAttrValues(address, false); } //------------------------------------------------------------------- // Record attribute values. public bool RecordUpdatedValues(SbmAddress address) { return RecordAttrValues(address, true); } private bool RecordAttrValues(SbmAddress address, bool newValues) { ClearErrorState(); // Address Properties - record values that may require logging. RecordAttrValue(SbmDbDfn.ColumnIdx.Address_ItemType, itemTypes.GetDescForType(address.ItemType, ((int)address.ItemType).ToString()), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_ItemId, SysId.ToInt(address.ItemId), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_AddIdRef, SysId.ToInt(address.AddressIdRef), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_RefExt, address.RefExt, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Type, addressTypes.GetDescForType(address.AddressType, ((int)address.AddressType).ToString()), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Name, address.Name, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_DescBrief, address.DescBrief, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Line1, address.Line1, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Line2, address.Line2, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Line3, address.Line3, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_City, address.City, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Province, address.Province, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Postcode, address.Postcode, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Country, address.Country, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Contact, address.Contact, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Phone, address.Phone, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Fax, address.Fax, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Email, address.Email, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_AccountManagerCode, address.AccountManagerCode, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_AccountHandlerCode, address.AccountHandlerCode, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_ContactAreaCode, address.ContactAreaCode, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_ContactHandlerCode, address.ContactHandlerCode, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_DeliveryTypeCode, address.DeliveryTypeCode, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_DeliveryBookInCode, address.DeliveryBookInCode, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_LastVisitOn, address.LastVisitOn, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_NextVisitOn, address.NextVisitOn, newValues); // Common properties. RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Notes, address.Notes, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Status, SacsSystem.GetStatusCode(address.Status), newValues); return OK; } //------------------------------------------------------------------- } //======================================================================= }