/// <summary> /// Fills the modified data for the response /// </summary> /// <param name="response">Response to send</param> /// <param name="currentUser">Current user</param> /// <returns>Task</returns> private async Task FillModifiedData(PersonalDataResponse response, GoNorthUser currentUser) { response.ModifiedData = new List <TrimmedModifiedData>(); List <AikaQuest> quests = await _questDbAccess.GetQuestsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(quests.Select(p => new TrimmedModifiedData { ObjectType = "Quest", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <AikaQuest> questRecycleBin = await _questDbAccess.GetRecycleBinQuestsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(questRecycleBin.Select(p => new TrimmedModifiedData { ObjectType = "QuestRecycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <AikaQuest> questImplementationSnapshots = await _questImplementationSnapshotDbAccess.GetSnapshotsModifiedByUsers(currentUser.Id); response.ModifiedData.AddRange(questImplementationSnapshots.Select(p => new TrimmedModifiedData { ObjectType = "QuestImplementationSnapshot", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <AikaChapterDetail> chapterDetail = await _chapterDetailDbAccess.GetChapterDetailsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(chapterDetail.Select(p => new TrimmedModifiedData { ObjectType = "ChapterDetail", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <AikaChapterDetail> chapterDetailRecycleBin = await _chapterDetailDbAccess.GetRecycleBinChapterDetailsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(chapterDetailRecycleBin.Select(p => new TrimmedModifiedData { ObjectType = "ChapterDetailRecycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <AikaChapterOverview> chapterOverview = await _chapterOverviewDbAccess.GetChapterOverviewByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(chapterOverview.Select(p => new TrimmedModifiedData { ObjectType = "ChapterOverview", Name = "ChapterOverview", ModifiedDate = p.ModifiedOn })); List <AikaChapterOverview> chapterOverviewRecycleBin = await _chapterOverviewDbAccess.GetRecycleBinChapterOverviewByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(chapterOverviewRecycleBin.Select(p => new TrimmedModifiedData { ObjectType = "ChapterOverviewRecycleBin", Name = "ChapterOverview", ModifiedDate = p.ModifiedOn })); List <EvneSkill> skills = await _skillDbAccess.GetFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(skills.Select(p => new TrimmedModifiedData { ObjectType = "Skill", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <EvneSkill> skillsRecyleBin = await _skillDbAccess.GetRecycleBinFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(skillsRecyleBin.Select(p => new TrimmedModifiedData { ObjectType = "SkillRecycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <EvneSkill> skillsImplementationSnapshots = await _skillImplementationSnapshotDbAccess.GetSnapshotsModifiedByUsers(currentUser.Id); response.ModifiedData.AddRange(skillsImplementationSnapshots.Select(p => new TrimmedModifiedData { ObjectType = "SkillImplementationSnapshot", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <FlexFieldImportFieldValuesResultLog> skillsFieldValuesLogs = await _skillImportFieldValuesLogDbAccess.GetImportLogsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(skillsFieldValuesLogs.Select(p => new TrimmedModifiedData { ObjectType = "SkillFieldValueImportLog", Name = p.FileName, ModifiedDate = p.ModifiedOn })); List <EvneSkill> skillTemplates = await _skillTemplateDbAccess.GetFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(skillTemplates.Select(p => new TrimmedModifiedData { ObjectType = "SkillTemplate", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <EvneSkill> skillsTemplateRecyleBin = await _skillTemplateDbAccess.GetRecycleBinFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(skillsTemplateRecyleBin.Select(p => new TrimmedModifiedData { ObjectType = "SkillTemplateRecycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <KortistoNpc> npcs = await _npcDbAccess.GetFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(npcs.Select(p => new TrimmedModifiedData { ObjectType = "Npc", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <KortistoNpc> npcsRecycleBin = await _npcDbAccess.GetRecycleBinFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(npcsRecycleBin.Select(p => new TrimmedModifiedData { ObjectType = "NpcRecycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <KortistoNpc> npcImplementationSnapshots = await _npcImplementationSnapshotDbAccess.GetSnapshotsModifiedByUsers(currentUser.Id); response.ModifiedData.AddRange(npcImplementationSnapshots.Select(p => new TrimmedModifiedData { ObjectType = "NpcImplementationSnapshot", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <FlexFieldImportFieldValuesResultLog> npcsFieldValuesLogs = await _npcImportFieldValuesLogDbAccess.GetImportLogsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(npcsFieldValuesLogs.Select(p => new TrimmedModifiedData { ObjectType = "NpcFieldValueImportLog", Name = p.FileName, ModifiedDate = p.ModifiedOn })); List <KortistoNpc> npcTemplates = await _npcTemplateDbAccess.GetFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(npcTemplates.Select(p => new TrimmedModifiedData { ObjectType = "NpcTemplate", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <KortistoNpc> npcTemplatesRecycleBin = await _npcTemplateDbAccess.GetRecycleBinFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(npcTemplatesRecycleBin.Select(p => new TrimmedModifiedData { ObjectType = "NpcTemplateRecycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <StyrItem> items = await _itemDbAccess.GetFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(items.Select(p => new TrimmedModifiedData { ObjectType = "Item", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <StyrItem> itemsRecyleBin = await _itemDbAccess.GetRecycleBinFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(itemsRecyleBin.Select(p => new TrimmedModifiedData { ObjectType = "ItemReycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <StyrItem> itemImplementationSnapshots = await _itemImplementationSnapshotDbAccess.GetSnapshotsModifiedByUsers(currentUser.Id); response.ModifiedData.AddRange(itemImplementationSnapshots.Select(p => new TrimmedModifiedData { ObjectType = "ItemImplementationSnapshot", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <FlexFieldImportFieldValuesResultLog> itemsFieldValuesLogs = await _itemImportFieldValuesLogDbAccess.GetImportLogsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(itemsFieldValuesLogs.Select(p => new TrimmedModifiedData { ObjectType = "ItemFieldValueImportLog", Name = p.FileName, ModifiedDate = p.ModifiedOn })); List <StyrItem> itemTemplates = await _itemTemplateDbAccess.GetFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(itemTemplates.Select(p => new TrimmedModifiedData { ObjectType = "ItemTemplate", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <StyrItem> itemTemplatesRecyleBin = await _itemTemplateDbAccess.GetRecycleBinFlexFieldObjectsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(itemTemplatesRecyleBin.Select(p => new TrimmedModifiedData { ObjectType = "ItemTemplateReycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <ExportTemplate> exportTemplates = await _exportTemplateDbAccess.GetExportTemplatesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(exportTemplates.Select(p => new TrimmedModifiedData { ObjectType = "ExportTemplate", Name = "Template " + p.TemplateType.ToString() + " " + p.Category.ToString(), ModifiedDate = p.ModifiedOn })); List <ExportTemplate> exportTemplatesRecycleBin = await _exportTemplateDbAccess.GetRecycleBinExportTemplatesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(exportTemplatesRecycleBin.Select(p => new TrimmedModifiedData { ObjectType = "ExportTemplateRecycleBin", Name = "Template " + p.TemplateType.ToString() + " " + p.Category.ToString(), ModifiedDate = p.ModifiedOn })); List <IncludeExportTemplate> includeExportTemplates = await _includeExportTemplateDbAccess.GetIncludeTemplatesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(includeExportTemplates.Select(p => new TrimmedModifiedData { ObjectType = "IncludeExportTemplate", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <IncludeExportTemplate> includeExportTemplatesRecycleBin = await _includeExportTemplateDbAccess.GetRecycleBinIncludeTemplatesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(includeExportTemplatesRecycleBin.Select(p => new TrimmedModifiedData { ObjectType = "IncludeExportTemplateRecycleBin", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <ObjectExportSnippet> objectExportSnippets = await _objectExportSnippetDbAccess.GetExportSnippetByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(objectExportSnippets.Select(p => new TrimmedModifiedData { ObjectType = "ObjectExportSnippet", Name = p.SnippetName, ModifiedDate = p.ModifiedOn })); List <KartaMap> maps = await _mapDbAccess.GetMapsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(maps.Select(p => new TrimmedModifiedData { ObjectType = "Map", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <KirjaPage> pages = await _pageDbAccess.GetPagesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(pages.Select(p => new TrimmedModifiedData { ObjectType = "WikiPage", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <KirjaPageVersion> pageVersions = await _pageVersionDbAccess.GetPageVersionsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(pageVersions.Select(p => new TrimmedModifiedData { ObjectType = "WikiPageVersion", Name = string.Format("{0} #{1}", p.Name, p.VersionNumber), ModifiedDate = p.ModifiedOn })); List <KirjaPageReview> pageReviews = await _pageReviewDbAccess.GetReviewsByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(pageReviews.Select(p => new TrimmedModifiedData { ObjectType = "WikiPageReview", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <TaleDialog> dialogs = await _taleDbAccess.GetDialogsByModifiedUser(currentUser.Id); Dictionary <string, KortistoNpc> dialogNpcs = (await _npcDbAccess.ResolveFlexFieldObjectNames(dialogs.Select(n => n.RelatedObjectId).ToList())).ToDictionary(n => n.Id); foreach (TaleDialog curDialog in dialogs) { string npcName = "DELETED"; if (dialogNpcs.ContainsKey(curDialog.RelatedObjectId)) { npcName = dialogNpcs[curDialog.RelatedObjectId].Name; } response.ModifiedData.Add(new TrimmedModifiedData { ObjectType = "Dialog", Name = npcName, ModifiedDate = curDialog.ModifiedOn }); } List <TaleDialog> dialogsRecyleBin = await _taleDbAccess.GetRecycleBinDialogsByModifiedUser(currentUser.Id); Dictionary <string, KortistoNpc> dialogRecyleBinNpcs = (await _npcDbAccess.ResolveRecycleBinFlexFieldObjectNames(dialogsRecyleBin.Select(n => n.RelatedObjectId).ToList())).ToDictionary(n => n.Id); foreach (TaleDialog curDialog in dialogsRecyleBin) { string npcName = "DELETED"; if (dialogRecyleBinNpcs.ContainsKey(curDialog.RelatedObjectId)) { npcName = dialogRecyleBinNpcs[curDialog.RelatedObjectId].Name; } response.ModifiedData.Add(new TrimmedModifiedData { ObjectType = "DialogRecyleBin", Name = npcName, ModifiedDate = curDialog.ModifiedOn }); } List <TaleDialog> dialogsSnapshots = await _taleImplementationSnapshotDbAccess.GetSnapshotsModifiedByUsers(currentUser.Id); Dictionary <string, KortistoNpc> dialogSnapshotNpcs = (await _npcDbAccess.ResolveFlexFieldObjectNames(dialogsSnapshots.Select(n => n.RelatedObjectId).ToList())).ToDictionary(n => n.Id); foreach (TaleDialog curDialogSnapshot in dialogsSnapshots) { string npcName = "DELETED"; if (dialogNpcs.ContainsKey(curDialogSnapshot.RelatedObjectId)) { npcName = dialogNpcs[curDialogSnapshot.RelatedObjectId].Name; } response.ModifiedData.Add(new TrimmedModifiedData { ObjectType = "DialogSnapshot", Name = npcName, ModifiedDate = curDialogSnapshot.ModifiedOn }); } List <StateMachine> stateMachines = await _stateMachineDbAccess.GetStateMachinesByModifiedUser(currentUser.Id); Dictionary <string, KortistoNpc> stateMachineNpcs = (await _npcDbAccess.ResolveFlexFieldObjectNames(stateMachines.Select(n => n.RelatedObjectId).ToList())).ToDictionary(n => n.Id); foreach (StateMachine curStateMachine in stateMachines) { string npcName = "DELETED"; if (stateMachineNpcs.ContainsKey(curStateMachine.RelatedObjectId)) { npcName = stateMachineNpcs[curStateMachine.RelatedObjectId].Name; } response.ModifiedData.Add(new TrimmedModifiedData { ObjectType = "StateMachine", Name = npcName, ModifiedDate = curStateMachine.ModifiedOn }); } List <StateMachine> stateMachineSnapshots = await _stateMachineSnapsshotDbAccess.GetSnapshotsModifiedByUsers(currentUser.Id); Dictionary <string, KortistoNpc> stateMachineSnapshotNpcs = (await _npcDbAccess.ResolveFlexFieldObjectNames(stateMachineSnapshots.Select(n => n.RelatedObjectId).ToList())).ToDictionary(n => n.Id); foreach (StateMachine curStateMachine in stateMachineSnapshots) { string npcName = "DELETED"; if (stateMachineSnapshotNpcs.ContainsKey(curStateMachine.RelatedObjectId)) { npcName = stateMachineSnapshotNpcs[curStateMachine.RelatedObjectId].Name; } response.ModifiedData.Add(new TrimmedModifiedData { ObjectType = "StateMachineSnapshot", Name = npcName, ModifiedDate = curStateMachine.ModifiedOn }); } List <JsonConfigEntry> jsonConfigEntries = await _projectConfigDbAccess.GetJsonConfigEntriesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(jsonConfigEntries.Select(p => new TrimmedModifiedData { ObjectType = "JsonConfig", Name = p.Key, ModifiedDate = p.ModifiedOn })); List <MiscProjectConfig> miscConfigEntries = await _projectConfigDbAccess.GetMiscConfigEntriesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(miscConfigEntries.Select(p => new TrimmedModifiedData { ObjectType = "MiscConfig", Name = "Miscellaneous Config", ModifiedDate = p.ModifiedOn })); List <TaskBoard> taskBoards = await _taskBoardDbAccess.GetTaskBoardsByModifiedUser(currentUser.Id); foreach (TaskBoard curBoard in taskBoards) { if (curBoard.ModifiedBy == currentUser.Id) { response.ModifiedData.Add(new TrimmedModifiedData { ObjectType = "TaskBoard", Name = curBoard.Name, ModifiedDate = curBoard.ModifiedOn }); } List <TaskGroup> modifiedGroups = curBoard.TaskGroups.Where(t => t.ModifiedBy == currentUser.Id).ToList(); if (modifiedGroups.Count > 0) { response.ModifiedData.AddRange(modifiedGroups.Select(p => new TrimmedModifiedData { ObjectType = "TaskGroup", Name = p.Name, ModifiedDate = p.ModifiedOn })); } List <GoNorthTask> tasks = curBoard.TaskGroups.SelectMany(p => p.Tasks.Where(t => t.ModifiedBy == currentUser.Id)).ToList(); if (tasks.Count > 0) { response.ModifiedData.AddRange(tasks.Select(p => new TrimmedModifiedData { ObjectType = "Task", Name = p.Name, ModifiedDate = p.ModifiedOn })); } } List <GoNorthTaskType> taskGroupTypes = await _taskGroupTypeDbAccess.GetTaskTypesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(taskGroupTypes.Select(p => new TrimmedModifiedData { ObjectType = "TaskGroupType", Name = p.Name, ModifiedDate = p.ModifiedOn })); List <GoNorthTaskType> taskTypes = await _taskTypeDbAccess.GetTaskTypesByModifiedUser(currentUser.Id); response.ModifiedData.AddRange(taskTypes.Select(p => new TrimmedModifiedData { ObjectType = "TaskType", Name = p.Name, ModifiedDate = p.ModifiedOn })); response.SelectedProject = await _projectDbAccess.GetUserSelectedProject(currentUser.Id); }
/// <summary> /// Deletes the modified data for the user /// </summary> /// <param name="user">User</param> /// <returns>Task</returns> private async Task DeleteModifiedData(GoNorthUser user) { List <AikaQuest> quests = await _questDbAccess.GetQuestsByModifiedUser(user.Id); foreach (AikaQuest curQuest in quests) { curQuest.ModifiedBy = Guid.Empty.ToString(); curQuest.ModifiedOn = DateTimeOffset.UtcNow; await _questDbAccess.UpdateQuest(curQuest); } await _questDbAccess.ResetRecycleBinQuestByModifiedUser(user.Id); await _questImplementationSnapshotDbAccess.ResetSnapshotsByModifiedUser(user.Id); List <AikaChapterDetail> chapterDetail = await _chapterDetailDbAccess.GetChapterDetailsByModifiedUser(user.Id); foreach (AikaChapterDetail curChapterDetail in chapterDetail) { curChapterDetail.ModifiedBy = Guid.Empty.ToString(); curChapterDetail.ModifiedOn = DateTimeOffset.UtcNow; await _chapterDetailDbAccess.UpdateChapterDetail(curChapterDetail); } await _chapterDetailDbAccess.ResetRecycleBinChapterDetailsByModifiedUser(user.Id); List <AikaChapterOverview> chapterOverview = await _chapterOverviewDbAccess.GetChapterOverviewByModifiedUser(user.Id); foreach (AikaChapterOverview curOverview in chapterOverview) { curOverview.ModifiedBy = Guid.Empty.ToString(); curOverview.ModifiedOn = DateTimeOffset.UtcNow; await _chapterOverviewDbAccess.UpdateChapterOverview(curOverview); } await _chapterOverviewDbAccess.ResetRecycleBinChapterOverviewByModifiedUser(user.Id); List <EvneSkill> skills = await _skillDbAccess.GetFlexFieldObjectsByModifiedUser(user.Id); foreach (EvneSkill curSkill in skills) { curSkill.ModifiedBy = Guid.Empty.ToString(); curSkill.ModifiedOn = DateTimeOffset.UtcNow; await _skillDbAccess.UpdateFlexFieldObject(curSkill); } await _skillDbAccess.ResetRecycleBinFlexFieldObjectsByModifiedUser(user.Id); await _skillImplementationSnapshotDbAccess.ResetSnapshotsByModifiedUser(user.Id); await _skillImportFieldValuesLogDbAccess.ResetImportLogsByModifiedUser(user.Id); List <EvneSkill> skillTemplates = await _skillTemplateDbAccess.GetFlexFieldObjectsByModifiedUser(user.Id); foreach (EvneSkill curSkill in skillTemplates) { curSkill.ModifiedBy = Guid.Empty.ToString(); curSkill.ModifiedOn = DateTimeOffset.UtcNow; await _skillTemplateDbAccess.UpdateFlexFieldObject(curSkill); } await _skillTemplateDbAccess.ResetRecycleBinFlexFieldObjectsByModifiedUser(user.Id); List <KortistoNpc> npcs = await _npcDbAccess.GetFlexFieldObjectsByModifiedUser(user.Id); foreach (KortistoNpc curNpc in npcs) { curNpc.ModifiedBy = Guid.Empty.ToString(); curNpc.ModifiedOn = DateTimeOffset.UtcNow; await _npcDbAccess.UpdateFlexFieldObject(curNpc); } await _npcDbAccess.ResetRecycleBinFlexFieldObjectsByModifiedUser(user.Id); await _npcImplementationSnapshotDbAccess.ResetSnapshotsByModifiedUser(user.Id); await _npcImportFieldValuesLogDbAccess.ResetImportLogsByModifiedUser(user.Id); List <KortistoNpc> npcTemplates = await _npcTemplateDbAccess.GetFlexFieldObjectsByModifiedUser(user.Id); foreach (KortistoNpc curNpc in npcTemplates) { curNpc.ModifiedBy = Guid.Empty.ToString(); curNpc.ModifiedOn = DateTimeOffset.UtcNow; await _npcTemplateDbAccess.UpdateFlexFieldObject(curNpc); } await _npcTemplateDbAccess.ResetRecycleBinFlexFieldObjectsByModifiedUser(user.Id); List <StyrItem> items = await _itemDbAccess.GetFlexFieldObjectsByModifiedUser(user.Id); foreach (StyrItem curItem in items) { curItem.ModifiedBy = Guid.Empty.ToString(); curItem.ModifiedOn = DateTimeOffset.UtcNow; await _itemDbAccess.UpdateFlexFieldObject(curItem); } await _itemDbAccess.ResetRecycleBinFlexFieldObjectsByModifiedUser(user.Id); await _itemImplementationSnapshotDbAccess.ResetSnapshotsByModifiedUser(user.Id); await _itemImportFieldValuesLogDbAccess.ResetImportLogsByModifiedUser(user.Id); List <StyrItem> itemTemplates = await _itemTemplateDbAccess.GetFlexFieldObjectsByModifiedUser(user.Id); foreach (StyrItem curItem in itemTemplates) { curItem.ModifiedBy = Guid.Empty.ToString(); curItem.ModifiedOn = DateTimeOffset.UtcNow; await _itemTemplateDbAccess.UpdateFlexFieldObject(curItem); } await _itemTemplateDbAccess.ResetRecycleBinFlexFieldObjectsByModifiedUser(user.Id); List <ExportTemplate> exportTemplates = await _exportTemplateDbAccess.GetExportTemplatesByModifiedUser(user.Id); foreach (ExportTemplate curTemplate in exportTemplates) { curTemplate.ModifiedBy = Guid.Empty.ToString(); curTemplate.ModifiedOn = DateTimeOffset.UtcNow; await _exportTemplateDbAccess.UpdateTemplate(curTemplate); } await _exportTemplateDbAccess.ResetRecycleBinExportTemplatesByModifiedUser(user.Id); List <IncludeExportTemplate> includeExportTemplates = await _includeExportTemplateDbAccess.GetIncludeTemplatesByModifiedUser(user.Id); foreach (IncludeExportTemplate curTemplate in includeExportTemplates) { curTemplate.ModifiedBy = Guid.Empty.ToString(); curTemplate.ModifiedOn = DateTimeOffset.UtcNow; await _includeExportTemplateDbAccess.UpdateIncludeTemplate(curTemplate); } await _includeExportTemplateDbAccess.ResetIncludeRecycleBinExportTemplatesByModifiedUser(user.Id); List <ObjectExportSnippet> objectExportSnippets = await _objectExportSnippetDbAccess.GetExportSnippetByModifiedUser(user.Id); foreach (ObjectExportSnippet curExportSnippet in objectExportSnippets) { curExportSnippet.ModifiedBy = Guid.Empty.ToString(); curExportSnippet.ModifiedOn = DateTimeOffset.UtcNow; await _objectExportSnippetDbAccess.UpdateExportSnippet(curExportSnippet); } List <KartaMap> maps = await _mapDbAccess.GetMapsByModifiedUser(user.Id); foreach (KartaMap curMap in maps) { curMap.ModifiedBy = Guid.Empty.ToString(); curMap.ModifiedOn = DateTimeOffset.UtcNow; await _mapDbAccess.UpdateMap(curMap); } List <KirjaPage> pages = await _pageDbAccess.GetPagesByModifiedUser(user.Id); foreach (KirjaPage curPage in pages) { curPage.ModifiedBy = Guid.Empty.ToString(); curPage.ModifiedOn = DateTimeOffset.UtcNow; await _pageDbAccess.UpdatePage(curPage); } List <KirjaPageVersion> pageVersions = await _pageVersionDbAccess.GetPageVersionsByModifiedUser(user.Id); foreach (KirjaPageVersion curVersion in pageVersions) { curVersion.ModifiedBy = Guid.Empty.ToString(); curVersion.ModifiedOn = DateTimeOffset.UtcNow; await _pageVersionDbAccess.UpdatePageVersion(curVersion); } List <KirjaPageReview> pageReview = await _pageReviewDbAccess.GetReviewsByModifiedUser(user.Id); foreach (KirjaPageReview curPageReview in pageReview) { curPageReview.ModifiedBy = Guid.Empty.ToString(); curPageReview.ModifiedOn = DateTimeOffset.UtcNow; await _pageReviewDbAccess.UpdatePageReview(curPageReview); } List <TaleDialog> dialogs = await _taleDbAccess.GetDialogsByModifiedUser(user.Id); foreach (TaleDialog curDialog in dialogs) { curDialog.ModifiedBy = Guid.Empty.ToString(); curDialog.ModifiedOn = DateTimeOffset.UtcNow; await _taleDbAccess.UpdateDialog(curDialog); } await _taleDbAccess.ResetRecycleBinFlexFieldObjectsByModifiedUser(user.Id); await _taleImplementationSnapshotDbAccess.ResetSnapshotsByModifiedUser(user.Id); await _stateMachineDbAccess.ResetStateMachinesByModifiedUser(user.Id); await _stateMachineSnapshotDbAccess.ResetSnapshotsByModifiedUser(user.Id); List <JsonConfigEntry> jsonConfigEntries = await _projectConfigDbAccess.GetJsonConfigEntriesByModifiedUser(user.Id); foreach (JsonConfigEntry curConfig in jsonConfigEntries) { curConfig.ModifiedBy = Guid.Empty.ToString(); curConfig.ModifiedOn = DateTimeOffset.UtcNow; await _projectConfigDbAccess.UpdateJsonConfig(curConfig); } List <MiscProjectConfig> miscConfigEntries = await _projectConfigDbAccess.GetMiscConfigEntriesByModifiedUser(user.Id); foreach (MiscProjectConfig curMiscConfig in miscConfigEntries) { curMiscConfig.ModifiedBy = Guid.Empty.ToString(); curMiscConfig.ModifiedOn = DateTimeOffset.UtcNow; await _projectConfigDbAccess.UpdateMiscConfig(curMiscConfig); } List <TaskBoard> taskBoards = await _taskBoardDbAccess.GetTaskBoardsByModifiedUser(user.Id); foreach (TaskBoard curBoard in taskBoards) { if (curBoard.ModifiedBy == user.Id) { curBoard.ModifiedBy = Guid.Empty.ToString(); curBoard.ModifiedOn = DateTimeOffset.UtcNow; } List <TaskGroup> modifiedGroups = curBoard.TaskGroups.Where(t => t.ModifiedBy == user.Id).ToList(); foreach (TaskGroup curTaskGroup in modifiedGroups) { curTaskGroup.ModifiedBy = Guid.Empty.ToString(); curTaskGroup.ModifiedOn = DateTimeOffset.UtcNow; } List <GoNorthTask> tasks = curBoard.TaskGroups.SelectMany(p => p.Tasks.Where(t => t.ModifiedBy == user.Id)).ToList(); if (tasks.Count > 0) { foreach (GoNorthTask curTask in tasks) { curTask.ModifiedBy = Guid.Empty.ToString(); curTask.ModifiedOn = DateTimeOffset.UtcNow; } } await _taskBoardDbAccess.UpdateTaskBoard(curBoard); } List <GoNorthTaskType> taskGroupTypes = await _taskGroupTypeDbAccess.GetTaskTypesByModifiedUser(user.Id); foreach (GoNorthTaskType curType in taskGroupTypes) { curType.ModifiedBy = Guid.Empty.ToString(); curType.ModifiedOn = DateTimeOffset.UtcNow; await _taskGroupTypeDbAccess.UpdateTaskType(curType); } List <GoNorthTaskType> taskTypes = await _taskTypeDbAccess.GetTaskTypesByModifiedUser(user.Id); foreach (GoNorthTaskType curType in taskTypes) { curType.ModifiedBy = Guid.Empty.ToString(); curType.ModifiedOn = DateTimeOffset.UtcNow; await _taskTypeDbAccess.UpdateTaskType(curType); } await _projectDbAccess.DeleteUserSelectedProject(user.Id); }