From 551d1ad8c54a405a5bdf10e8bd48b844bef73802 Mon Sep 17 00:00:00 2001 From: jurjenverbruggen Date: Mon, 12 Apr 2021 11:42:15 +0200 Subject: [PATCH] Added category update on project update --- API/Controllers/ProjectController.cs | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/API/Controllers/ProjectController.cs b/API/Controllers/ProjectController.cs index 62eae828..9c0b2f07 100644 --- a/API/Controllers/ProjectController.cs +++ b/API/Controllers/ProjectController.cs @@ -520,6 +520,36 @@ await callToActionOptionService.GetCallToActionOptionFromValueAsync( } } + await projectCategoryService.ClearProjectCategories(project); + if(projectResource.Categories != null) + { + ICollection projectCategoryResources = projectResource.Categories; + + foreach(ProjectCategoryResource projectCategoryResource in projectCategoryResources) + { + ProjectCategory alreadyExcProjectCategory = await projectCategoryService.GetProjectCategory(project.Id, projectCategoryResource.CategoryId); + if(alreadyExcProjectCategory == null) + { + Category category = await categoryService.FindAsync(projectCategoryResource.CategoryId); + + if(category == null) + { + ProblemDetails problem = new ProblemDetails + { + Title = "Failed to update project.", + Detail = "One of the given categories did not exist.", + Instance = "xxx" + }; + return BadRequest(problem); + } + + ProjectCategory projectCategory = new ProjectCategory(project, category); + await projectCategoryService.AddAsync(projectCategory) + .ConfigureAwait(false); + } + } + } + mapper.Map(projectResource, project); projectService.Update(project); projectService.Save();