예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
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);
        }