Example #1
0
        public async Task <ActionResult> Square(CartSquareModel model)
        {
            if (string.IsNullOrEmpty(model.Nonce))
            {
                if (!string.IsNullOrEmpty(model.Errors))
                {
                    var errors = DeserializeSquareErrors(model.Errors);
                    foreach (var e in errors)
                    {
                        AddFeedbackMessage(FeedbackMessageTypes.Error, $"{e.Type}: {e.Message} ({e.Field})");
                    }
                }

                model = new CartSquareModel()
                {
                    OrderTotal = model.OrderTotal
                };
                return(View(model));
            }

            UCart_CreateSquarePaymentResponse response;

            try
            {
                response = await CartUserService.CreateSquarePaymentAsync(GetUserId(), model.OrderTotal, model.Nonce);
            }
            catch (Exception ex)
            {
                AddFeedbackMessage(FeedbackMessageTypes.Error, ex.Message);
                return(RedirectToAction("Index", "Order"));
            }

            var error = response.Errors?.FirstOrDefault();

            if (error != null)
            {
                AddFeedbackMessage(FeedbackMessageTypes.Error, error.Detail);

                model = new CartSquareModel();
                return(View(model));
            }
            else
            {
                AddFeedbackMessage(FeedbackMessageTypes.Informational, "Order submitted.");
                return(RedirectToAction("Index", "Order"));
            }
        }
Example #2
0
        public async Task <ActionResult> Square()
        {
            var svcOrder = await CartUserService.GetCartOrderAsync(GetUserId());

            if (svcOrder == null)
            {
                AddFeedbackMessage(FeedbackMessageTypes.Informational, "Your shopping cart is empty.");
                return(RedirectToAction("Index", "Order"));
            }


            var model = new CartSquareModel()
            {
                OrderTotal = svcOrder.MOrder.TotalAmount
            };

            return(View(model));
        }