public EFCreateOrderCommand(EstoreContext context, CreateOrderValidator validator, IApplicationActor actor, IMapper mapper)
 {
     _context   = context;
     _validator = validator;
     _actor     = actor;
     _mapper    = mapper;
 }
示例#2
0
        public CreateOrderModel CreateOrder(CreateOrderModel model)
        {
            var validator      = new CreateOrderValidator();
            var validateResult = validator.Validate(model);

            if (validateResult.IsValid)
            {
                return(model);
            }

            return(null);
        }
示例#3
0
        public ActionResult PreviewAndPay(PreviewViewModel model)
        {
            var cart = shoppingService.GetCurrentShoppingCart();

            if (cart.IsEmpty)
            {
                ModelState.AddModelError("cart.empty", ResHelper.GetString("DancingGoatMvc.Checkout.EmptyCartError"));

                var viewModel = checkoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            if (!checkoutService.IsPaymentMethodValid(model.PaymentMethod.PaymentMethodID))
            {
                ModelState.AddModelError("PaymentMethod.PaymentMethodID", ResHelper.GetString("DancingGoatMvc.Payment.PaymentMethodRequired"));
            }
            else
            {
                shoppingService.SetPaymentOption(model.PaymentMethod.PaymentMethodID);
            }

            var validator = new CreateOrderValidator(cart, skuInfoProvider, countryInfoProvider, stateInfoProvider);

            if (!validator.Validate())
            {
                ProcessCheckResult(validator.Errors);
            }

            if (!ModelState.IsValid)
            {
                var viewModel = checkoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            try
            {
                shoppingService.CreateOrder();
            }
            catch (InvalidOperationException ex)
            {
                ModelState.AddModelError("cart.createordererror", ex.Message);
                var viewModel = checkoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            return(RedirectToAction("ThankYou"));
        }
示例#4
0
        public ActionResult PreviewAndPay(PreviewViewModel model, [FromServices] IStringLocalizer <SharedResources> localizer)
        {
            var cart = shoppingService.GetCurrentShoppingCart();

            if (cart.IsEmpty)
            {
                ModelState.AddModelError("cart.empty", localizer["Please add some item to your shopping cart."]);

                var viewModel = checkoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            if (!checkoutService.IsPaymentMethodValid(model.PaymentMethod.PaymentMethodID))
            {
                ModelState.AddModelError("PaymentMethod.PaymentMethodID", localizer["Select payment method"]);
            }
            else
            {
                shoppingService.SetPaymentOption(model.PaymentMethod.PaymentMethodID);
            }

            var validator = new CreateOrderValidator(cart, skuInfoProvider, countryInfoProvider, stateInfoProvider);

            if (!validator.Validate())
            {
                ProcessCheckResult(validator.Errors);
            }

            if (!ModelState.IsValid)
            {
                var viewModel = checkoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            try
            {
                shoppingService.CreateOrder();
            }
            catch (InvalidOperationException ex)
            {
                ModelState.AddModelError("cart.createordererror", ex.Message);
                var viewModel = checkoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            return(RedirectToAction("ThankYou"));
        }
示例#5
0
        public ActionResult PreviewAndPay(PreviewViewModel model)
        {
            var cart = mShoppingService.GetCurrentShoppingCart();

            if (cart.IsEmpty)
            {
                ModelState.AddModelError("cart.empty", ResHelper.GetString("DancingGoatMvc.Checkout.EmptyCartError"));

                var viewModel = mCheckoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            if (!mCheckoutService.IsPaymentMethodValid(model.PaymentMethod.PaymentMethodID))
            {
                ModelState.AddModelError("PaymentMethod.PaymentMethodID", ResHelper.GetString("DancingGoatMvc.Payment.PaymentMethodRequired"));
            }
            else
            {
                mShoppingService.SetPaymentOption(model.PaymentMethod.PaymentMethodID);
            }

            var validator = new CreateOrderValidator(cart);

            if (!validator.Validate())
            {
                ProcessCheckResult(validator.Errors);
            }

            if (!ModelState.IsValid)
            {
                var viewModel = mCheckoutService.PreparePreviewViewModel(model.PaymentMethod);
                return(View("PreviewAndPay", viewModel));
            }

            mShoppingService.CreateOrder();

            return(RedirectToAction("ThankYou"));
        }
 public void SetUp()
 {
     this.Subject = new CreateOrderValidator();
 }
示例#7
0
 public EfCreateOrderCommand(WatchesContext context, CreateOrderValidator validator)
 {
     _context   = context;
     _validator = validator;
 }
示例#8
0
 public EfCrateOrderCommand(AspProjekatContext context, CreateOrderValidator validator, IApplicationActor actor)
 {
     _context   = context;
     _validator = validator;
     this.actor = actor;
 }
 public EfCreateOrderCommand(BookstoreContext context, CreateOrderValidator validator)
 {
     _context   = context;
     _validator = validator;
 }
 public CreateOrderValidationTests()
 {
     _validator = new CreateOrderValidator();
 }
 public EfCreateOrderCommand(MovieContext context, CreateOrderValidator validator, IApplicationActor actor)
 {
     _context   = context;
     _validator = validator;
     _actor     = actor;
 }