diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 77b670f7..46add214 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -185,6 +185,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, BizType, AyaEvent.Modified), ct); await WorkOrderSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -226,9 +227,8 @@ namespace AyaNova.Biz return false;//thus not committing transaction } #endif - - //all good do the commit await transaction.CommitAsync(); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); } catch { @@ -494,6 +494,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItem, AyaEvent.Modified), ct); await ItemSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -564,6 +565,7 @@ namespace AyaNova.Biz //all good do the commit if it's ours if (parentTransaction == null) await transaction.CommitAsync(); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); } catch { @@ -745,6 +747,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemExpense, AyaEvent.Modified), ct); await ExpenseSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -765,6 +768,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemExpense, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -936,6 +940,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemLabor, AyaEvent.Modified), ct); await LaborSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -956,6 +961,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemLabor, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -1126,6 +1132,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemLoan, AyaEvent.Modified), ct); await LoanSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -1146,6 +1153,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemLoan, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -1316,6 +1324,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemPart, AyaEvent.Modified), ct); await PartSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -1336,6 +1345,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemPart, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -1504,6 +1514,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemPartRequest, AyaEvent.Modified), ct); await PartRequestSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -1524,6 +1535,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemPartRequest, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -1695,6 +1707,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemScheduledUser, AyaEvent.Modified), ct); await ScheduledUserSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -1715,6 +1728,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemScheduledUser, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -1886,6 +1900,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemTask, AyaEvent.Modified), ct); await TaskSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -1906,6 +1921,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemTask, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -2077,6 +2093,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemTravel, AyaEvent.Modified), ct); await TravelSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -2097,6 +2114,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemTravel, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } @@ -2268,6 +2286,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, AyaType.WorkOrderItemUnit, AyaEvent.Modified), ct); await UnitSearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return dbObject; } @@ -2288,6 +2307,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, AyaType.WorkOrderItemUnit, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; } diff --git a/server/AyaNova/biz/WorkorderTemplateBiz.cs b/server/AyaNova/biz/WorkorderTemplateBiz.cs index 6b53c803..b3584d2e 100644 --- a/server/AyaNova/biz/WorkorderTemplateBiz.cs +++ b/server/AyaNova/biz/WorkorderTemplateBiz.cs @@ -60,15 +60,15 @@ namespace AyaNova.Biz //CREATE //Called from route and also seeder - internal async Task CreateAsync(WorkOrderTemplate inObj) + internal async Task CreateAsync(WorkOrderTemplate newObject) { - await ValidateAsync(inObj, null); + await ValidateAsync(newObject, null); if (HasErrors) return null; else { //do stuff with WorkOrderTemplate - WorkOrderTemplate outObj = inObj; + WorkOrderTemplate outObj = newObject; outObj.Tags = TagBiz.NormalizeTags(outObj.Tags); outObj.CustomFields = JsonUtil.CompactJson(outObj.CustomFields); @@ -79,6 +79,7 @@ namespace AyaNova.Biz await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, outObj.Id, BizType, AyaEvent.Created), ct); await SearchIndexAsync(outObj, true); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, outObj.Tags, null); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Created, newObject); return outObj; } @@ -94,8 +95,8 @@ namespace AyaNova.Biz internal async Task DuplicateAsync(WorkOrderTemplate dbObject) { - WorkOrderTemplate outObj = new WorkOrderTemplate(); - CopyObject.Copy(dbObject, outObj, "Wiki"); + WorkOrderTemplate newObject = new WorkOrderTemplate(); + CopyObject.Copy(dbObject, newObject, "Wiki"); // outObj.Name = Util.StringUtil.NameUniquify(outObj.Name, 255); //generate unique name string newUniqueName = string.Empty; @@ -107,20 +108,21 @@ namespace AyaNova.Biz NotUnique = await ct.WorkOrderTemplate.AnyAsync(z => z.Name == newUniqueName); } while (NotUnique); - outObj.Name = newUniqueName; + newObject.Name = newUniqueName; - outObj.Id = 0; - outObj.Concurrency = 0; + newObject.Id = 0; + newObject.Concurrency = 0; - await ct.WorkOrderTemplate.AddAsync(outObj); + await ct.WorkOrderTemplate.AddAsync(newObject); await ct.SaveChangesAsync(); //Handle child and associated items: - await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, outObj.Id, BizType, AyaEvent.Created), ct); - await SearchIndexAsync(outObj, true); - await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, outObj.Tags, null); - return outObj; + await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, BizType, AyaEvent.Created), ct); + await SearchIndexAsync(newObject, true); + await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Created, newObject); + return newObject; } @@ -149,17 +151,15 @@ namespace AyaNova.Biz await ValidateAsync(dbObject, SnapshotOfOriginalDBObj); if (HasErrors) - return false; - - //Log event and save context + return false; await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, BizType, AyaEvent.Modified), ct); await SearchIndexAsync(dbObject, false); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, dbObject.Tags, SnapshotOfOriginalDBObj.Tags); - + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Modified, dbObject, SnapshotOfOriginalDBObj); return true; } - + private async Task SearchIndexAsync(WorkOrderTemplate obj, bool isNew) { //SEARCH INDEXING @@ -200,6 +200,7 @@ namespace AyaNova.Biz await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, BizType, ct); await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags); await FileUtil.DeleteAttachmentsForObjectAsync(BizType, dbObject.Id, ct); + await NotifyEventProcessor.HandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject); return true; }