public async Task <ActionResult <ResponseDto <int> > > AddCase([FromBody] AddCaseDto caseToAdd) { if (!ModelState.IsValid) { return(BadRequest()); } ResponseDto <int> result = await _casesService.AddCase(User, caseToAdd); if (result.HasErrors) { return(BadRequest(result)); } return(Ok(result)); }
public static ResponseDto <int> ValidateAddCase(AddCaseDto caseToAdd, Department department, User user) { var response = new ResponseDto <int>(); if (string.IsNullOrEmpty(caseToAdd.Title)) { response.AddError(CaseErrors.EmptyTitle); } if (department == null || department.IsDeleted) { response.AddError(DepartmentErrors.NotFoundById); } if (user == null) { response.AddError(UserErrors.NotFoundByLogin); } return(response); }
public async Task <ResponseDto <int> > AddCase(ClaimsPrincipal user, AddCaseDto caseToAdd) { var userFromDb = await _usersRepository.GetUserByLogin(user.Identity.Name); var departmentFromDb = await _departmentsRepository.GetDepartmentById(caseToAdd.DepartmentId); var response = CasesValidator.ValidateAddCase(caseToAdd, departmentFromDb, userFromDb); if (response.HasErrors) { return(response); } var caseToDb = Mapper.Map <Case>(caseToAdd); caseToDb.Status = "Sent"; caseToDb.IsDeleted = false; caseToDb.Department = departmentFromDb; caseToDb.SendDate = DateTime.Now; caseToDb.Sender = userFromDb; response.Value = await _casesRepository.AddCase(caseToDb); return(response); }