Beispiel #1
0
        public void SetStatus(string userId, int creditRequestId, CreditRequestStatusInfo statusInfo, string message)
        {
            var creditRequest = _iUnitOfWork.CreditRequestRepository.Get(creditRequestId);

            //не выдали ли уже кредит
            if (creditRequest.CustomerCredits.Any())
            {
                throw BankClientException.ThrowCannotSetStatus();
            }

            var chiefRoleName = AppRoles.CreditDepartmentChief.ToString();

            //не обработал ли заяку начальник
            if (!AuthManagerService.UserManager.IsInRole(userId, chiefRoleName))
            {
                if (creditRequest.CreditRequestStatuses.Any(s => AuthManagerService.UserManager.IsInRole(s.AppUserId, chiefRoleName)))
                {
                    throw BankClientException.ThrowCannotSetStatus();
                }
            }

            var existingStatus = creditRequest.CreditRequestStatuses.FirstOrDefault(cs => cs.AppUserId == userId);

            if (existingStatus != null)
            {
                if (statusInfo == CreditRequestStatusInfo.None)
                {
                    _iUnitOfWork.CreditRequestStatusRepository.Delete(existingStatus.Id);
                }
                else
                {
                    existingStatus.Info    = statusInfo;
                    existingStatus.Message = message;
                }
            }
            else
            {
                creditRequest.CreditRequestStatuses.Add(new CreditRequestStatus()
                {
                    AppUserId = userId,
                    Info      = statusInfo,
                    Message   = message
                });
            }
            _iUnitOfWork.SaveChanges();
        }
        public void SetStatus(string userId, int creditRequestId, CreditRequestStatusInfo statusInfo, string message)
        {
            var creditRequest = _iUnitOfWork.CreditRequestRepository.Get(creditRequestId);

            //не выдали ли уже кредит
            if (creditRequest.CustomerCredits.Any())
            {
                throw BankClientException.ThrowCannotSetStatus();
            }

            var chiefRoleName = AppRoles.CreditDepartmentChief.ToString();
            //не обработал ли заяку начальник
            if (!AuthManagerService.UserManager.IsInRole(userId, chiefRoleName))
            {
                if (creditRequest.CreditRequestStatuses.Any(s => AuthManagerService.UserManager.IsInRole(s.AppUserId, chiefRoleName)))
                {
                    throw BankClientException.ThrowCannotSetStatus();
                }
            }

            var existingStatus = creditRequest.CreditRequestStatuses.FirstOrDefault(cs => cs.AppUserId == userId);
            if (existingStatus != null)
            {
                if (statusInfo == CreditRequestStatusInfo.None)
                {
                    _iUnitOfWork.CreditRequestStatusRepository.Delete(existingStatus.Id);
                }
                else
                {
                    existingStatus.Info = statusInfo;
                    existingStatus.Message = message;
                }
            }
            else
            {
                creditRequest.CreditRequestStatuses.Add(new CreditRequestStatus()
                {
                    AppUserId = userId,
                    Info = statusInfo,
                    Message = message
                });
            }
            _iUnitOfWork.SaveChanges();
        }