Пример #1
0
        public PartialViewResult ChangeClientAccount(ChangeClientAccountModel model)
        {
            bool isOperationValid = true;

            if (model.Id.HasValue && ModelState.IsValid) //Счет должен быть известен, без вариантов
            {
                // Получаем Id клиента по Id его счета
                long?clientId = ClientAccountRepo.GetClientIdByAccountId(model.Id.Value);

                // Еще раз делаем проверку - является ли клиент дилером и не изменяет свой счет.
                if (clientId.HasValue && ValidateAccountChangeAction(clientId.Value))
                {
                    ChangeClientAccountModel emptyModel = GetClientAccountChangeModel(clientId.Value);
                    if (emptyModel != null) //Только если мы точно уверены в Id счета и легитимности его изменения
                    {
                        CostCalculator calc = new CostCalculator(model.CalcMode);
                        calc.RecalcModel(model);
                        isOperationValid = ClientAccountRepo.ChangeAccount(model);
                        if (isOperationValid)
                        {
                            model = emptyModel;
                            ViewData.Add("AccountUpdated", true);
                        }
                    }
                }
            }
            return(PartialView("ChangeClientAccount", model));
        }
Пример #2
0
        public void RecalcModel(ChangeClientAccountModel account)
        {
            switch (_mode)
            {
            case CostCalculatorMode.FixedMoney:
                account.OneSMSCost = account.InputMoney / account.AddingAmount;
                break;

            default:     //Если фиксированная цена или количество СМС
                account.InputMoney = account.AddingAmount * account.OneSMSCost;
                break;
            }
        }
Пример #3
0
        private ChangeClientAccountModel GetClientAccountChangeModel(long clientId)
        {
            ChangeClientAccountModel model = null;

            if (ValidateAccountChangeAction(clientId))
            {
                //Возвращает null если записи не найдены
                model = ClientAccountRepo.GetClientAccountChange(clientId);
                if (model == null)
                {
                    ModelState.AddModelError(string.Empty, "Вы не можете изменять счет чужого клиента.");
                }
            }

            if (model == null)
            {
                model = new ChangeClientAccountModel();
            }
            return(model);
        }
Пример #4
0
        public PartialViewResult ChangeClientAccount(long clientId)
        {
            ChangeClientAccountModel model = GetClientAccountChangeModel(clientId);

            return(PartialView("ChangeClientAccount", model));
        }
Пример #5
0
 public bool ChangeAccount(ChangeClientAccountModel model)
 {
     return(Convert.ToBoolean(DataContext.ChangeClientAccount(model.Id, model.AddingAmount, model.OneSMSCost, model.InputMoney, model.SelectedCostRangeId, model.Comment, (Guid)LoginedUser.ProviderUserKey, RealClientId, OperationalClientId)));
 }