public async Task <IActionResult> Create(string orgName, ProjectForCreationDTO projForCreate) { if (HttpContext.Items.ContainsKey("organization")) { var org = HttpContext.Items["organization"] as Organization; var newProj = this.mapper.Map <Project>(projForCreate); if (await this.projectRepo.CreateAsync(org, newProj)) { if (await this.projectRepo.SaveChangesAsync()) { return(CreatedAtRoute("GetProject", new { controller = "Projects", orgName = org.Name, projectName = newProj.Name }, new { message = $"{projForCreate.Name} has been created successfully" })); } return(BadRequest($"Failed to create {newProj.NormalizedName} organization")); } return(BadRequest($"{projForCreate.Name} already exist")); } return(NotFound()); }
public async Task <IActionResult> Update(string projectName, string orgName, ProjectForCreationDTO projForUpdate) { if (HttpContext.Items.ContainsKey("organization")) { var org = HttpContext.Items["organization"] as Organization; if (org != null) { if (HttpContext.Items.ContainsKey("project")) { var oldProject = HttpContext.Items["project"] as Project; var newProject = this.mapper.Map <Project>(projForUpdate); if (oldProject.NormalizedName != this.normalizer.Normalize(newProject.Name)) { await this.projectRepo.UpdateWithNameAsync(org, oldProject, newProject); if (await this.projectRepo.SaveChangesAsync()) { return(Ok(new { message = $"@{projectName} project has been updated successfully" })); } return(BadRequest($"Failed to update @{projectName} project")); } else { this.projectRepo.UpdateWithoutName(org, oldProject, newProject); if (await this.projectRepo.SaveChangesAsync()) { return(Ok(new { message = $"@{projectName} project has been updated successfully" })); } return(BadRequest($"Failed to update @{projectName} project")); } } return(NotFound($"{projectName} project isn't exist")); } } return(NotFound($"{orgName} organizaiton isn't exist")); }