Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }