public async Task <IActionResult> UpdateDepartment(int id, [FromBody] DepartmentSaveResource departmentSaveResource) { if (!_auth.IsAppAdmin(User)) { return(NoContent()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var departmentFromRepo = await _repo.GetDepartment(id); if (departmentFromRepo == null) { return(BadRequest($"Department {id} could not be found.")); } /* Test for prexistence */ var departmentFromRepoExisting = await _repo.GetDepartments(new MdaDepartmentQuery() { Name = departmentSaveResource.Name, Active = 2 }); if (departmentFromRepoExisting.Any()) { var existingDepartment = departmentFromRepoExisting.FirstOrDefault(); if (existingDepartment.Id != id) { return(BadRequest($"Department {departmentSaveResource.Name} already exists")); } else { if (existingDepartment.Name.ToLower() == departmentSaveResource.Name.ToLower()) { if (existingDepartment.Active == Convert.ToByte(departmentSaveResource.Active == true ? 1 : 0)) { return(BadRequest("Nothing has changed")); } } } } _mapper.Map <DepartmentSaveResource, MdaDepartment>(departmentSaveResource, departmentFromRepo); departmentFromRepo.ModifiedBy = User.Identity.Name; departmentFromRepo.ModifiedDate = DateTime.Now; if (await _repo.SaveAll()) { return(NoContent()); } return(BadRequest("Failed to update department")); }
public async Task <IActionResult> AddDepartment([FromBody] DepartmentSaveResource departmentSaveResource) { if (!_auth.IsAppAdmin(User)) { return(NoContent()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } /* Test for prexistence */ var departmentFromRepo = await _repo.GetDepartments(new MdaDepartmentQuery() { Name = departmentSaveResource.Name, Active = Convert.ToByte(departmentSaveResource.Active == true ? 1 : 0) }); if (departmentFromRepo.Any()) { return(BadRequest($"Department {departmentSaveResource.Name} already exists")); } var department = _mapper.Map <MdaDepartment>(departmentSaveResource); department.CreatedBy = User.Identity.Name; _repo.Add(department); if (await _repo.SaveAll()) { return(Ok(department)); } return(BadRequest("Failed to add department")); }