public async Task <IActionResult> AddAssignee([FromBody] AssigneeSaveResource assigneeAddResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!_auth.IsValidUser(User)) { return(NoContent()); } var assignee = _mapper.Map <MdaDeviceAssignee>(assigneeAddResource); assignee.CreatedBy = User.Identity.Name; _repo.Add(assignee); if (await _repo.SaveAll()) { return(Ok(assignee)); } return(BadRequest("Assignee could not be added")); }
public async Task <IActionResult> UpdateAssignee(int id, AssigneeSaveResource assigneeUpdateResource) { if (!_auth.IsAppAdmin(User)) { return(NoContent()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var assigneeFromRepo = await _repo.GetAssignee(id); if (assigneeFromRepo == null) { return(BadRequest($"AssigneeId {id} could not be found")); } if (assigneeUpdateResource.DepartmentId == 0) { assigneeUpdateResource.DepartmentId = null; } var filter = new MdaAssigneeQuery() { FirstName = assigneeUpdateResource.FirstName, LastName = assigneeUpdateResource.LastName, Active = 2 }; var assigneeFromRepoExisting = await _repo.GetAssignees(filter); if (assigneeFromRepoExisting.Any()) { var existingAssignee = assigneeFromRepoExisting.FirstOrDefault(); if (existingAssignee.Id != id) { return(BadRequest($"Assignee {assigneeUpdateResource.FirstName + ' ' + assigneeUpdateResource.LastName} already exists.")); } else { if (existingAssignee.FirstName == assigneeUpdateResource.FirstName && existingAssignee.LastName == assigneeUpdateResource.LastName && existingAssignee.DepartmentId == assigneeUpdateResource.DepartmentId) { if (existingAssignee.Active == Convert.ToByte(assigneeUpdateResource.Active == true ? 1 : 0)) { return(BadRequest("Nothing was changed")); } } } } _mapper.Map(assigneeUpdateResource, assigneeFromRepo); assigneeFromRepo.ModifiedBy = User.Identity.Name; assigneeFromRepo.ModifiedDate = DateTime.Now; if (await _repo.SaveAll()) { return(NoContent()); } return(BadRequest("Failed to update assignee")); }