Beispiel #1
0
        /// <summary>
        /// Creates the order.
        /// </summary>
        /// <param name="runtimeManager">The runtime manager.</param>
        /// <param name="writer">The writer.</param>
        /// <returns>True if the order was created, false otherwise</returns>
        private static bool CreateOrder(DynamicsRuntimeManager runtimeManager, CombinedWriter writer)
        {
            var status = true;

            // create cart
            var cart = runtimeManager.CreateCart();

            if (cart == null)
            {
                writer.Write("Failed to Add Items to cart");
                return(false);
            }

            writer.Write("Shopping cart with one line item has been created");

            // set OrderDeliveryOption
            var deliveryAddress = new Address()
            {
                StreetNumber             = "123",
                Street                   = "Main",
                City                     = "Redmond",
                State                    = "WA",
                ZipCode                  = "98052",
                ThreeLetterISORegionName = "USA",
                Email                    = "*****@*****.**",
                AddressTypeValue         = (int)AddressType.None,
                Name                     = "Home"
            };

            cart = runtimeManager.OrderManager.UpdateCartShippingAddress(cart.Id, runtimeManager.Customer.AccountNumber, deliveryAddress, "99", CalculationModes.All, string.Empty);

            if (cart == null)
            {
                writer.Write("Failed to update cart ShippingAddress");
                status = false;
            }
            else
            {
                var paymentCard = new PaymentCard
                {
                    Address1        = "12 street",
                    City            = "Orlando",
                    Zip             = "32822",
                    Country         = "USA",
                    CardNumber      = "4111111111111111",
                    CardTypes       = "Visa",
                    CCID            = "123",
                    ExpirationMonth = 11,
                    ExpirationYear  = 2020,
                    NameOnCard      = "john doe",
                };

                // add payment
                var channelConfiguration             = runtimeManager.ChannelManager.GetChannelConfiguration();
                IEnumerable <TenderType> tenderTypes = runtimeManager.ChannelManager.GetChannelTenderTypes(new QueryResultSettings()).Results;
                if (!tenderTypes.Any())
                {
                    writer.Write("No ChannelTenderTypes defined for the channel");
                    status = false;
                }

                IEnumerable <TenderType> creditCardTenderTypes = tenderTypes.Where(t => t.OperationId == (int)RetailOperation.PayCard);
                if (!creditCardTenderTypes.Any())
                {
                    writer.Write("No CreditCard TenderTypes defined for the channel");
                    status = false;
                }

                var creditCardTenderTypeId = creditCardTenderTypes.Single().TenderTypeId;

                var cartTenderline = new CartTenderLine
                {
                    Currency     = channelConfiguration.Currency,
                    TenderTypeId = creditCardTenderTypeId,
                    PaymentCard  = paymentCard
                };
                cartTenderline.CardTypeId = cartTenderline.PaymentCard.CardTypes;
                cartTenderline.Amount     = cart.TotalAmount;

                var random = new Random();
                cart.OrderNumber = random.Next(1000, 9999).ToString(CultureInfo.InvariantCulture);
                runtimeManager.OrderManager.CreateOrUpdateCart(cart, CalculationModes.None);

                // create order
                var order = runtimeManager.OrderManager.CreateOrderFromCart(cart.Id, runtimeManager.Customer.AccountNumber, new List <CartTenderLine> {
                    cartTenderline
                }, runtimeManager.Customer.Email);
                if (order == null || order.Id == string.Empty)
                {
                    writer.Write("Failed to create Sales Order");
                    status = false;
                }
                else
                {
                    writer.Write(string.Format(CultureInfo.InvariantCulture, "Sales Order with ChannelReferenceId {0} has been successfully created.", order.ChannelReferenceId));
                }
            }

            return(status);
        }
Beispiel #2
0
 public Task <Cart> AddTenderLine(string id, CartTenderLine cartTenderLine)
 {
     return(Task.Run(() => OrderManager.Create(CommerceRuntimeManager.Runtime).AddTenderLine(id, cartTenderLine)));
 }