public async Task <OrderViewModel> InsertWithPlanAsync(OrderViewModel model, SubscriptionsPlansViewModel plan)
        {
            var entity = _mapper.Map <Order>(model);

            //adicionando Timestamp do dia da compra e do dia da renovação e valor da compra
            entity = PreSave(entity, plan);

            await _repository.InsertAsync(entity);

            return(_mapper.Map <OrderViewModel>(entity));
        }
        private Order PreSave(Order model, SubscriptionsPlansViewModel plan)
        {
            model.CreditCard.CreditCardNumber = model.CreditCard.CreditCardNumber.Substring(12, 4);
            model.PurchaseDay     = DateTimeHelper.BrazilNow;
            model.PlanRenewalDate = model.PurchaseDay.AddMonths(plan.PlanMonths);

            var listHolidaysBrazil = Holidayshelper.GetHolidaysByCurrentYear().ToList();

            if (listHolidaysBrazil.Contains(model.PlanRenewalDate))
            {
                model.PlanRenewalDate = DateTimeHelper.diaUtil(model.PlanRenewalDate.AddDays(1));
            }


            model.Total = plan.Value;

            return(model);
        }
Beispiel #3
0
        public virtual async Task <IActionResult> InsertAsync([FromBody] SubscriptionsPlansViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode(StatusCodes.Status400BadRequest));
            }

            try
            {
                var newModel = await _subscriptionPlanService.InsertAsync(model);

                return(Ok(newModel));
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }