private bool TryResolveSubmittedOrder(CartBase cart, out SubmitVisitorOrderResult managerResponse)
        {
            var getVisitorOrdersResult = this.GetOrdersHeaders(cart.CustomerId, cart.ShopName);

            if (getVisitorOrdersResult.Success)
            {
                // Getting the latest order
                var orderHeader = getVisitorOrdersResult.OrderHeaders
                                  .OrderByDescending(x => x.OrderDate)
                                  .FirstOrDefault();

                if (orderHeader != null)
                {
                    var getVisitorOrderResult = this.GetOrder(
                        orderHeader.OrderID,
                        orderHeader.CustomerId,
                        orderHeader.ShopName);

                    if (getVisitorOrderResult.Order != null)
                    {
                        managerResponse = new SubmitVisitorOrderResult
                        {
                            Order   = getVisitorOrderResult.Order,
                            Success = true
                        };

                        return(true);
                    }
                }
            }

            managerResponse = null;
            return(false);
        }
        /// <summary>
        /// Maps a cart base from an order model.
        /// </summary>
        /// <param name="orderHeader">The cart base order header.</param>
        /// <param name="orderModel">The order model.</param>
        public static void MapCartBaseFromModel([NotNull] this CartBase orderHeader, [NotNull] OrderModel orderModel)
        {
            Assert.ArgumentNotNull(orderHeader, "orderHeader");
            Assert.ArgumentNotNull(orderModel, "orderModel");

            if (orderModel.BillingAddressId != null)
            {
                orderHeader.AccountingCustomerParty = new CartParty
                {
                    ExternalId = orderModel.BillingAddressId.Value.ToString(),
                    PartyID    = orderModel.BillingAddressId.Value.ToString(),
                    Name       = orderModel.BillingName
                }; // Billing
            }

            orderHeader.Email = orderModel.CustomerEmail;
            if (orderModel.ShippingAddressId != null)
            {
                orderHeader.BuyerCustomerParty = new CartParty
                {
                    ExternalId = orderModel.ShippingAddressId.Value.ToString(),
                    PartyID    = orderModel.ShippingAddressId.Value.ToString(),
                    Name       = orderModel.ShippingName
                }; // Shipping
            }

            orderHeader.CartType   = orderModel.CardType;
            orderHeader.CustomerId = orderModel.CustomerId.ToString();
            orderHeader.ExternalId = orderModel.OrderGuid.ToID().ToString();
            orderHeader.IsLocked   = orderModel.IsDeleted;
            orderHeader.Name       = orderModel.Name;
            orderHeader.Status     = orderModel.Status;
            orderHeader.UserId     = orderModel.CustomerGuid.ToID().ToString().ToUpper();
        }
        private bool TryResolveSubmittedOrder(CartBase cart, out ManagerResponse <SubmitVisitorOrderResult, Order> managerResponse)
        {
            var getVisitorOrdersRequest = new GetVisitorOrdersRequest(cart.CustomerId, cart.ShopName);
            GetVisitorOrdersResult getVisitorOrdersResult = this.orderServiceProvider.GetVisitorOrders(getVisitorOrdersRequest);

            if (getVisitorOrdersResult.Success)
            {
                // Getting the latest order
                OrderHeader orderHeader = getVisitorOrdersResult.OrderHeaders.OrderByDescending(x => x.OrderDate).FirstOrDefault();
                if (orderHeader != null)
                {
                    var getVisitorOrderRequest = new GetVisitorOrderRequest(orderHeader.OrderID, orderHeader.CustomerId, orderHeader.ShopName);

                    GetVisitorOrderResult getVisitorOrderResult =
                        this.orderServiceProvider.GetVisitorOrder(getVisitorOrderRequest);

                    if (getVisitorOrderResult.Order != null)
                    {
                        managerResponse = new ManagerResponse <SubmitVisitorOrderResult, Order>(
                            new SubmitVisitorOrderResult {
                            Order = getVisitorOrderResult.Order, Success = true
                        },
                            getVisitorOrderResult.Order);

                        return(true);
                    }
                }
            }

            managerResponse = null;
            return(false);
        }
        public CartResult UpdateCart(Cart cart, CartBase cartUpdate)
        {
            Assert.ArgumentNotNull(cart, nameof(cart));
            Assert.ArgumentNotNull(cartUpdate, nameof(cartUpdate));

            return(this.Execute(new UpdateCartRequest(cart, cartUpdate), this.cartServiceProvider.UpdateCart));
        }
Beispiel #5
0
        public ActionResult Payments()
        {
            //StripeConstants.publicKey = ConfigurationManager.AppSettings["publicKey"];
            PaymentModel pm   = new PaymentModel();
            CartBase     cart = new CartBase();

            cart.item_list = new ItemList();
            return(View(pm));
        }
Beispiel #6
0
        public void ShouldMapCartBaseFromModel()
        {
            // arrange
            var id        = Guid.NewGuid();
            var cartModel = new ShoppingCartModel {
                CustomerGuid = id
            };
            var cartBase = new CartBase();

            // act
            cartBase.MapCartBaseFromModel(cartModel);

            // assert
            cartBase.ExternalId.Should().Be(id.ToString("B").ToUpper());
        }
        /// <summary>
        /// Maps the cart base from model.
        /// </summary>
        /// <param name="cart">The cart.</param>
        /// <param name="cartModel">The cart model.</param>
        public static void MapCartBaseFromModel([NotNull] this CartBase cart, [NotNull] ShoppingCartModel cartModel)
        {
            //cart.CustomerId = cartModel.CustomerId.ToString();
            cart.ExternalId = cartModel.CustomerGuid.ToString("B").ToUpper();
            cart.AccountingCustomerParty = new CartParty
            {
                ExternalId = cartModel.BillingAddressId.HasValue ? cartModel.BillingAddressId.Value.ToString() : null,
                PartyID    = cartModel.BillingAddressId.HasValue ? cartModel.BillingAddressId.Value.ToString() : null
            };

            cart.BuyerCustomerParty = new CartParty
            {
                ExternalId = cartModel.ShippingAddressId.HasValue ? cartModel.ShippingAddressId.Value.ToString() : null,
                PartyID    = cartModel.ShippingAddressId.HasValue ? cartModel.ShippingAddressId.ToString() : null
            };
        }
Beispiel #8
0
        /// <summary>
        /// Runs the processor.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public override void Process(ServicePipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            // Prepare request/result objects
            var request = (GetCartsRequest)args.Request;
            var result  = (GetCartsResult)args.Result;

            // Creates instance of WCF service client.
            using (var client = this.GetClient())
            {
                var cartModels = client.GetCarts();
                if (!cartModels.Any())
                {
                    // Returns empty collection if there are no carts.
                    result.Carts = Enumerable.Empty <CartBase>();
                    return;
                }

                var carts = new List <CartBase>();

                // Maps cart lines from NopCommerce cart model to OBEC cart.
                foreach (var cartModel in cartModels)
                {
                    var cart = new CartBase();

                    cart.MapCartBaseFromModel(cartModel);

                    carts.Add(cart);
                }

                if (request.UserIds.Any())
                {
                    // ToDo:
                    // filter by user id here in some way
                }

                result.Carts = carts;
            }
        }
        public ManagerResponse <CartResult, Cart> UpdateCart(string shopName, Cart currentCart, CartBase cartUpdate)
        {
            var request = new UpdateCartRequest(currentCart, cartUpdate);
            var serviceProviderResult = this.cartServiceProvider.UpdateCart(request);

            return(new ManagerResponse <CartResult, Cart>(serviceProviderResult, serviceProviderResult.Cart));
        }
 /// <summary>
 /// Determines whether [has basket errors] [the specified cart].
 /// </summary>
 /// <param name="cart">The cart.</param>
 /// <returns>True if basket errors have been detected; Otherwise false.</returns>
 public static bool HasBasketErrors(this CartBase cart)
 {
     return(cart.Properties.ContainsProperty("_Basket_Errors"));
 }
 private static bool HasBasketErrors(CartBase cart)
 {
     return(cart.Properties.ContainsProperty("_Basket_Errors"));
 }
 /// <summary>
 /// Performs the basket error check.
 /// </summary>
 /// <param name="cart">The cart.</param>
 protected virtual void PerformBasketErrorCheck(CartBase cart)
 {
     if (cart.HasBasketErrors())
     {
         // We clear the cart from the cache when basket errors are detected.  This stops the message from being displayed over and over as the
         // cart will be retrieved again from CS and the pipelines will be executed.
         var cartCache = CommerceTypeLoader.CreateInstance<CartCacheHelper>();
         cartCache.InvalidateCartCache(this.CurrentVisitorContext.GetCustomerId());
     }
 }