Example #1
0
        public Order GetByName(string OrderNumber)
        {
            Order order = null;

            Con             = CreateConnection();
            Query           = "SelectOrder";
            Com.CommandText = Query;
            Com.Connection  = Con;
            Com.CommandType = CommandType.StoredProcedure;

            Com.Parameters.Clear();

            Com.Parameters.Add(new SqlParameter("@OrderNumber", OrderNumber));

            DataAdapter.SelectCommand = Com;

            DataTable dataTable = new DataTable();

            DataAdapter.Fill(dataTable);

            foreach (DataRow row in dataTable.Rows)
            {
                order = new Order.Builder()
                        .setCustomerNumber(row["customerID"].ToString())
                        .setOrderNumber(row["ordernumber"].ToString())
                        .setDate(Convert.ToDateTime(row["datecreated"].ToString()))
                        .Build();

                GetItemsAsync(OrderNumber).Result.ForEach(i => order.Products.Add(i));
            }

            return(order);
        }
        public IActionResult OnPost()
        {
            ICheckoutApi checkoutApi = client.CheckoutApi;

            try
            {
                // create line items for the order
                // This example assumes the order information is retrieved and hard coded
                // You can find different ways to retrieve order information and fill in the following lineItems object.
                List <OrderLineItem> lineItems = new List <OrderLineItem>();

                Money firstLineItemBasePriceMoney = new Money.Builder()
                                                    .Amount(500L)
                                                    .Currency("USD")
                                                    .Build();

                OrderLineItem firstLineItem = new OrderLineItem.Builder("1")
                                              .Name("Test Item A")
                                              .BasePriceMoney(firstLineItemBasePriceMoney)
                                              .Build();

                lineItems.Add(firstLineItem);

                Money secondLineItemBasePriceMoney = new Money.Builder()
                                                     .Amount(1000L)
                                                     .Currency("USD")
                                                     .Build();

                OrderLineItem secondLineItem = new OrderLineItem.Builder("3")
                                               .Name("Test Item B")
                                               .BasePriceMoney(secondLineItemBasePriceMoney)
                                               .Build();

                lineItems.Add(secondLineItem);

                // create Order object with line items
                Order order = new Order.Builder(locationId)
                              .LineItems(lineItems)
                              .Build();

                // create order request with order
                CreateOrderRequest orderRequest = new CreateOrderRequest.Builder()
                                                  .Order(order)
                                                  .Build();

                // create checkout request with the previously created order
                CreateCheckoutRequest createCheckoutRequest = new CreateCheckoutRequest.Builder(
                    Guid.NewGuid().ToString(),
                    orderRequest)
                                                              .Build();

                // create checkout response, and redirect to checkout page if successful
                CreateCheckoutResponse response = checkoutApi.CreateCheckout(locationId, createCheckoutRequest);
                return(Redirect(response.Checkout.CheckoutPageUrl));
            }
            catch (ApiException e)
            {
                return(RedirectToPage("Error", new { error = e.Message }));
            }
        }
 static void Main(string[] args)
 {
     Order order = new Order.Builder()
                   .WithFirstname("Marcin")
                   .WithLastname("Kowalski")
                   .WithEmail("*****@*****.**")
                   .WithCountry("Polska")
                   .WithCity("Krosno")
                   .WithAdress("Mickiewicza 45/5")
                   .WithZipCode("38-400")
                   .WithPhoneNumber("765231428")
                   .Build();
 }
Example #4
0
        public async Task <List <Order> > GetAllAsync()
        {
            List <Order> orders = new List <Order>();

            Con = CreateConnection();

            Query = "selectOrders";

            Com.CommandText = Query;
            Com.Connection  = Con;
            Com.CommandType = CommandType.StoredProcedure;

            DataAdapter.SelectCommand = Com;

            DataTable dataTable = new DataTable();

            DataAdapter.Fill(dataTable);

            foreach (DataRow row in dataTable.Rows)
            {
                Order order = new Order.Builder()
                              .setCustomerNumber(row["customerID"].ToString())
                              .setOrderNumber(row["ordernumber"].ToString())
                              .setDate(Convert.ToDateTime(row["datecreated"].ToString()))
                              .Build();

                var r = await GetItemsAsync(order.OrderNumber);

                r.ForEach(p =>
                {
                    order.Products.Add(p);
                });

                orders.Add(order);
            }

            Com.Dispose();

            Con.Close();

            return(orders);
        }
Example #5
0
            public async Task ShouldIncludeDeliveryFeesAsAnItem()
            {
                var product = new Product("CatalogId", "HC20W-003", "The Trickster", TestData.NextString(), 11.00m);

                this.GivenInventoryServiceSetUpWithProduct(product);
                var order = new Order.Builder("Location")
                            .LineItems(new List <OrderLineItem>
                {
                    new OrderLineItem.Builder("1")
                    .CatalogObjectId("CatalogId")
                    .Name("[HC20W-003] The Trickster")
                    .BasePriceMoney(new Money(1100, "GBP"))
                    .TotalMoney(new Money(1100, "GBP"))
                    .Build(),
                })
                            .ServiceCharges(new List <OrderServiceCharge>
                {
                    new OrderServiceCharge.Builder()
                    .Name("Shipping")
                    .AmountMoney(new Money(500, "GBP"))
                    .TotalMoney(new Money(500, "GBP"))
                    .Build(),
                })
                            .CreatedAt(this.orderDate.ToString("O"))
                            .TotalMoney(new Money(1600, "GBP"))
                            .Build();

                var transactions = await this.Subject.MapToTransaction(order).ToList().ToTask();

                transactions.Should().HaveCount(1);
                transactions[0].TotalAmount.Should().Be(16.00m);
                transactions[0].Subtransactions.Should().HaveCount(2);
                transactions[0].Subtransactions[0].Quantity.Should().Be(1);
                transactions[0].Subtransactions[0].TransactionUnitPrice.Should().Be(11.00m);
                transactions[0].Subtransactions[0].Subtotal.Should().Be(11.00m);
                transactions[0].Subtransactions[1].Quantity.Should().Be(500);
                transactions[0].Subtransactions[1].TransactionUnitPrice.Should().Be(0.01m);
                transactions[0].Subtransactions[1].Subtotal.Should().Be(5.00m);
            }
        private async Task SaveOrderToDatabase(string orderId, List <ShoppingCartItem> listOfProducts, ApplicationUser user, decimal price)
        {
            List <OrderedProduct> orderedProducts = new List <OrderedProduct>();

            foreach (var item in listOfProducts)
            {
                var            product        = _context.Products.Where(x => x.Id == item.Product.Id).Include(c => c.Sizes).First();
                OrderedProduct orderedProduct = new OrderedProduct(product, (SizeOfPruduct)Convert.ToInt32(item.Size), item.Quantity);

                foreach (var itema in product.Sizes)
                {
                    if (itema.SizeOfPruduct == item.Size)
                    {
                        itema.Quantity = itema.Quantity - item.Quantity;
                        _context.Update(itema);
                    }
                }
                orderedProducts.Add(orderedProduct);
            }

            Order order = new Order.Builder()
                          .DateOfOrder(DateTime.Now)
                          .OrderId(orderId)
                          .Products(orderedProducts)
                          .Status(ShopFilip.Helpers.Status.New)
                          .Price(price)
                          .Build();

            List <Order> orderList = new List <Order>();

            orderList.Add(order);
            if (user.OrdersList == null)
            {
                user.OrdersList = new List <Order>();
            }
            user.OrdersList.Add(order);
            await _userManager.UpdateAsync(user);
        }
        public IActionResult OnPost()
        {
            ICheckoutApi checkoutApi = client.CheckoutApi;

            try
            {
                var rand  = new Random();
                int rand1 = rand.Next(100000, 999999);
                int id    = HttpContext.Session.GetInt32("logID").GetValueOrDefault();
                DropShipModels.User CurrUser = dbContext.Users
                                               .FirstOrDefault(user => user.UserId == id);
                if (CurrUser != null)
                {
                    var RetrievedCart = dbContext.Carts.Where(c => c.UserId == CurrUser.UserId)
                                        .Include(carts => carts.P)
                                        .ToList();
                    string OrderNumberTemp       = id.ToString() + '-' + rand1.ToString();
                    string ProductBoughtListTemp = "";

                    List <OrderLineItem> lineItems = new List <OrderLineItem>();
                    foreach (var j in RetrievedCart)
                    {
                        Money ItemPrice = new Money.Builder()
                                          .Amount(j.P.ProductPrice * 100)
                                          .Currency("USD")
                                          .Build();

                        OrderLineItem LineItem = new OrderLineItem.Builder(j.Quantity.ToString())
                                                 .Name(j.P.ProductName)
                                                 .BasePriceMoney(ItemPrice)
                                                 .Note("Order Number     " + OrderNumberTemp)
                                                 .Build();

                        lineItems.Add(LineItem);
                        dbContext.Carts.Remove(j);
                        dbContext.SaveChanges();
                        ProductBoughtListTemp += j.P.ProductName + " x " + j.Quantity + ", ";
                    }
                    ProductBoughtListTemp = ProductBoughtListTemp.Remove(ProductBoughtListTemp.Length - 1, 1);
                    ProductBoughtListTemp = ProductBoughtListTemp.Remove(ProductBoughtListTemp.Length - 1, 1);
                    DropShipModels.Order newOrder = new DropShipModels.Order();
                    newOrder.UserId            = id;
                    newOrder.OrderNumber       = OrderNumberTemp.ToString();
                    newOrder.ProductBoughtList = ProductBoughtListTemp;
                    newOrder.Filled            = false;
                    newOrder.ShippingMethod    = "Standard";
                    dbContext.Orders.Add(newOrder);
                    dbContext.SaveChanges();
                    // create line items for the order.

                    // create Order object with line items
                    Order order = new Order.Builder(locationId)
                                  .LineItems(lineItems)
                                  .Build();

                    // create order request with order
                    CreateOrderRequest orderRequest = new CreateOrderRequest.Builder()
                                                      .Order(order)
                                                      .Build();

                    // create checkout request with the previously created order
                    CreateCheckoutRequest createCheckoutRequest = new CreateCheckoutRequest.Builder(
                        Guid.NewGuid().ToString(),
                        orderRequest)
                                                                  .AskForShippingAddress(true)
                                                                  // .RedirectUrl("www.google.com")
                                                                  .PrePopulateBuyerEmail(CurrUser.Email)
                                                                  .MerchantSupportEmail("*****@*****.**")
                                                                  .Build();
                    // create checkout response, and redirect to checkout page if successful
                    CreateCheckoutResponse response = checkoutApi.CreateCheckout(locationId, createCheckoutRequest);
                    return(Redirect(response.Checkout.CheckoutPageUrl));
                }

                else
                {
                    if (HttpContext.Session.GetString("TempCart") != null)
                    {
                        var cartStr = HttpContext.Session.GetString("TempCart");
                        List <List <int> > cart1                 = JsonConvert.DeserializeObject <List <List <int> > >(cartStr);
                        string             OrderNumberTemp       = "0-" + rand1.ToString();
                        string             ProductBoughtListTemp = "";

                        List <OrderLineItem> lineItems = new List <OrderLineItem>();
                        foreach (var k in cart1)
                        {
                            string ProdName  = dbContext.Products.FirstOrDefault(p => p.ProductId == k[0]).ProductName;
                            Money  ItemPrice = new Money.Builder()
                                               .Amount(dbContext.Products.FirstOrDefault(p => p.ProductId == k[0]).ProductPrice * 100)
                                               .Currency("USD")
                                               .Build();

                            OrderLineItem LineItem = new OrderLineItem.Builder(k[1].ToString())
                                                     .Name(ProdName)
                                                     .BasePriceMoney(ItemPrice)
                                                     .Note("Order Number     " + OrderNumberTemp)
                                                     .Build();

                            lineItems.Add(LineItem);
                            ProductBoughtListTemp += ProdName + " x " + k[1].ToString() + ", ";
                        }
                        DropShipModels.User tempUser = dbContext.Users.FirstOrDefault(user => user.Password == "Temp");
                        ProductBoughtListTemp = ProductBoughtListTemp.Remove(ProductBoughtListTemp.Length - 1, 1);
                        ProductBoughtListTemp = ProductBoughtListTemp.Remove(ProductBoughtListTemp.Length - 1, 1);
                        DropShipModels.Order newOrder = new DropShipModels.Order();
                        newOrder.UserId            = tempUser.UserId;
                        newOrder.OrderNumber       = OrderNumberTemp.ToString();
                        newOrder.ProductBoughtList = ProductBoughtListTemp;
                        newOrder.Filled            = false;
                        newOrder.ShippingMethod    = "Standard";
                        dbContext.Orders.Add(newOrder);
                        dbContext.SaveChanges();
                        // create line items for the order
                        // This example assumes the order information is retrieved and hard coded
                        // You can find different ways to retrieve order information and fill in the following lineItems object.

                        // create Order object with line items
                        Order order = new Order.Builder(locationId)
                                      .LineItems(lineItems)
                                      .Build();

                        // create order request with order
                        CreateOrderRequest orderRequest = new CreateOrderRequest.Builder()
                                                          .Order(order)
                                                          .Build();
                        // create checkout request with the previously created order
                        // var tempPerson = new Person();
                        CreateCheckoutRequest createCheckoutRequest = new CreateCheckoutRequest.Builder(
                            Guid.NewGuid().ToString(),
                            orderRequest)
                                                                      .AskForShippingAddress(true)
                                                                      .MerchantSupportEmail("*****@*****.**")
                                                                      .Build();
                        // create checkout response, and redirect to checkout page if successful
                        CreateCheckoutResponse response = checkoutApi.CreateCheckout(locationId, createCheckoutRequest);
                        return(Redirect(response.Checkout.CheckoutPageUrl));
                    }
                    else
                    {
                        return(Redirect("/"));
                    }
                }
            }
            catch (ApiException e)
            {
                return(RedirectToPage("Error", new { error = e.Message }));
            }
        }