using System; using Matrix42.Persistence; using Matrix42.Hosting.Contracts; using Matrix42.ServiceManager.BizLogic.Entities; using Matrix42.Pandora.Contracts.Dialog; using Matrix42.Persistence.Contracts; using Matrix42.Contracts.ServiceManagement.ServiceContracts; using Matrix42.Contracts.Platform.Data; namespace Imagoverum.CUSTBizLogic.EntityBehaviors { public class CUSTIncidentBehavior : GenericEntityBehavior where T : IncidentRecord { protected IDependencyResolver Resolver { get; } public override void OnModified(T dbRecord, BehaviorActionContext context) { DialogActionContext dialogActionContext = context as DialogActionContext; if (dialogActionContext != null) { CreateAddedJournalEntry(dbRecord, dialogActionContext1); } } protected void CreateAddedJournalEntry(T dbRecord, DialogActionContext dialogContext) { IJournalService journalService = this.Resolver.Get(); Guid value = dbRecord.CommonBase.Adapter.GetValue("TypeID"); AddJournalEntryInfo addJournalEntryInfo = new AddJournalEntryInfo() { ObjectId = dbRecord.Id, Comments = dbRecord.ActivityBase.Description }; Guid? creator = dbRecord.ActivityBase.Creator; addJournalEntryInfo.Creator = (creator.HasValue ? creator.GetValueOrDefault() : dbRecord.ActivityBase.Initiator); addJournalEntryInfo.EntryType = 4; addJournalEntryInfo.TypeId = value; addJournalEntryInfo.Comments = "Incident was editted"; addJournalEntryInfo.VisibleInPortal = true; addJournalEntryInfo.SkipRaiseCoRuEvent = true; journalService.AddJournalEntry(addJournalEntryInfo); } public CUSTIncidentBehavior(IDependencyResolver resolver) { this.Resolver = resolver; } } }