public async Task <ResponseDto <List <GetCaseDto> > > GetCasesForManager(ClaimsPrincipal user) { var userFromDb = await _usersRepository.GetUserByLogin(user.Identity.Name); ResponseDto <List <GetCaseDto> > response = CasesValidator.ValidateGetCasesForManager(userFromDb); if (response.HasErrors) { return(response); } var casesFromDb = await _casesRepository.GetCasesForManager(userFromDb); response.Value = Mapper.Map <List <GetCaseDto> >(casesFromDb); return(response); }
public async Task <ResponseDto <GetCaseDto> > GetCaseById(int id) { var caseFromDb = await _casesRepository.GetCaseById(id); ResponseDto <GetCaseDto> response = CasesValidator.ValidateGetCaseById(caseFromDb); if (response.HasErrors) { return(response); } var mappedCase = Mapper.Map <GetCaseDto>(caseFromDb); response.Value = mappedCase; return(response); }
public async Task <ResponseDto <bool> > DeleteCase(ClaimsPrincipal user, int id) { var caseFromDb = await _casesRepository.GetCaseById(id); var userFromDb = await _usersRepository.GetUserByLogin(user.Identity.Name); ResponseDto <bool> response = CasesValidator.ValidateDeleteCase(caseFromDb, userFromDb); if (response.HasErrors) { return(response); } response.Value = await _casesRepository.DeleteCase(caseFromDb); return(response); }
public async Task <ResponseDto <int> > ChangeStatus(ClaimsPrincipal user, int id, string status, string comment) { var caseFromDb = await _casesRepository.GetCaseById(id); var userFromDb = await _usersRepository.GetUserByLogin(user.Identity.Name); var response = CasesValidator.ValidateChangeStatus(caseFromDb, userFromDb, status); if (response.HasErrors) { return(response); } response.Value = await _casesRepository.ChangeStatus(caseFromDb, status, comment); 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); }