Ejemplo n.º 1
0
        public JsonResult CreateDeposit(CreateDepositModel model)
        {
            var result = new JSONResult();

            try
            {
                var userId         = AuthWrapper.GetUserIdByLogin(User.Identity.Name);
                var availableMoney = DataWrapper.AvailableMoneyByUserId(userId);

                if ((availableMoney < model.DepositAmount) || (model.DepositAmount < MIN_AMOUNT || model.DepositAmount > MAX_AMOUNT))
                {
                    if (availableMoney < model.DepositAmount)
                    {
                        result.SetNotSuccess(ErrorMessages.NotEnoughMoney);
                    }
                    else
                    {
                        result.SetNotSuccess(ErrorMessages.IncorrectAmount);
                    }
                }
                else
                {
                    var currentDate = DateTime.Now;
                    var percent     = model.Rate == Rates.Month ? ProfitValue.HighPercent : ProfitValue.BasePercent;
                    model.Rate = model.Rate == Rates.Unknown ? Rates.OneDay : model.Rate;

                    var deposit = new Deposit()
                    {
                        UserId        = userId,
                        StartDate     = currentDate,
                        EndDate       = currentDate.AddDays((int)model.Rate),
                        Percent       = percent,
                        StartAmount   = model.DepositAmount,
                        InterimAmount = model.DepositAmount,
                        EndAmount     = model.DepositAmount + (model.DepositAmount * percent / 100.0) * (int)model.Rate,
                        Status        = StatusDeposit.Active
                    };

                    var successAddNewDeposit = DataWrapper.AddNewDeposit(deposit);
                    var successTakeAmount    = DataWrapper.TakeMoneyByUserId(userId, model.DepositAmount);
                    var newBalanceUser       = DataWrapper.AvailableMoneyByUserId(userId);

                    if (successAddNewDeposit && successTakeAmount)
                    {
                        result.SetIsSuccess(newBalanceUser);
                    }
                    else
                    {
                        result.SetNotSuccess(ErrorMessages.UnknownError);
                    }
                }
            }
            catch (Exception ex)
            {
                result.SetNotSuccess(ErrorMessages.UnknownError);
                logger.Error("Method CreateDeposit: ", ex);
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
 public static CreateDepositModel ToCreateDepositModel(this CreateDepositModel deposit,
                                                       IPlanOfDepositService planService, IClientService clientService)
 {
     Mapper.Initialize(e =>
     {
         e.CreateMap <ClientModel, Client>();
         e.CreateMap <PlanOfDepositModel, PlanOfDeposit>();
         e.CreateMap <CreateDepositModel, CreateDepositModel>()
         .ForMember(t => t.DepositPlans, t => t.MapFrom(
                        r => planService.GetAll().Select(Mapper.Map <PlanOfDepositModel, PlanOfDeposit>)))
         .ForMember(t => t.Clients,
                    t => t.MapFrom(r => clientService.GetAll().Select(y => y.ToClient(clientService))));
     });
     return(Mapper.Map <CreateDepositModel, CreateDepositModel>(deposit));
 }
Ejemplo n.º 3
0
 public ActionResult Create(CreateDepositModel deposit)
 {
     if (ModelState.IsValid)
     {
         try
         {
             DepositService.Create(Mapper.Map <CreateDepositModel, DepositModel>(deposit));
             return(RedirectToAction("Index"));
         }
         catch (Exception ex)
         {
             ModelState.AddModelError("", ex.Message);
             return(View(deposit.ToCreateDepositModel(PlanOfDepositService, ClientService)));
         }
     }
     return(View(deposit.ToCreateDepositModel(PlanOfDepositService, ClientService)));
 }