public IActionResult Post(JObject objData)
        {
            List <OrderProductsModel> lstItemDetails = new List <OrderProductsModel>();

            dynamic jsonData        = objData;
            JObject orderJson       = jsonData.cartModel;
            JArray  itemDetailsJson = jsonData.orderDetails;
            var     Order           = orderJson.ToObject <cartModel>();


            var seller = _context.SellerModels.FirstOrDefault(seller => seller.Name == Order.cartItems);

            seller.TotalReveniue = seller.TotalReveniue + float.Parse(Order.totalPrice);
            seller.TotalOrders   = seller.TotalOrders + 1;

            _context.SaveChanges();



            foreach (var item in itemDetailsJson)
            {
                lstItemDetails.Add(item.ToObject <OrderProductsModel>());
            }
            _context.cartModels.Add(Order);

            foreach (OrderProductsModel itemDetail in lstItemDetails)
            {
                OrderProductsModel cartname = new OrderProductsModel();
                itemDetail.OrderNumber = Order.cartItems;
                _context.OrderProductsModels.Add(itemDetail);
            }
            _context.SaveChanges();
            return(Ok());
        }
示例#2
0
        public List <OrderProductsModel> GetOrderProducts(int ParOrderId)
        {
            List <OrderProductsModel> OrderProducts = new List <OrderProductsModel>();

            this.getDBConnection();

            myConn.Open();
            myCmd             = new SqlCommand("sp_GetOrderProducts", myConn);
            myCmd.CommandType = CommandType.StoredProcedure;
            myCmd.Parameters.AddWithValue("ParOrderId", ParOrderId);

            myReader = myCmd.ExecuteReader();

            if (myReader.HasRows)
            {
                while (myReader.Read())
                {
                    OrderProductsModel op = new OrderProductsModel();

                    op.ProductId    = (int)myReader["ProductId"];
                    op.Quantity     = (int)myReader["Quantity"];
                    op.ProductName  = (string)myReader["ProductName"];
                    op.SKU          = (string)myReader["SKU"];
                    op.CategoryName = (string)myReader["CategoryName"];

                    OrderProducts.Add(op);
                }
            }

            return(OrderProducts);
        }
示例#3
0
        public async Task <IActionResult> Order()
        {
            Cart cart = HttpContext.Session.Get <Cart>("Cart");

            OrderModel order = new OrderModel();

            order.Id            = Guid.NewGuid().ToString();
            order.OrderProducts = new List <OrderProductsModel>();
            order.Date          = System.DateTime.Now;
            order.User_Id       = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            foreach (CartLine line in cart.Lines)
            {
                var product          = dataContext.Products.Find(line.Product_Id);
                OrderProductsModel p = new OrderProductsModel();
                p.Product_Id = line.Product_Id;
                p.Quontity   = line.Quantity;
                order.OrderProducts.Add(p);
            }

            dataContext.Orders.Add(order);
            await dataContext.SaveChangesAsync();

            dataContext.Orders.Include(x => x.User).First(x => x.User_Id == order.User_Id);
            await EmailService.SendEmailAsync(User.FindFirst(ClaimTypes.Email).Value, $"Заказ №{order.Id}", await renderService.RenderToStringAsync("_EmailOrder", order));

            return(Ok());
        }
        public async Task ProcessOrder(OrderProductsModel order)
        {
            // This method process the order and accepts it or declines it. Also special discounts and other rates are processed here
            // If a order is accepted then it is saved in the db

            // Replace with correct logic later
            _db.OrderProductsModels.Add(order);
            await _db.SaveChangesAsync();
        }
示例#5
0
        public void When_Create_Order_With_Cart_Should_Be_Return_Order()
        {
            var _productContext = new DatabaseProductDummy().productContext;

            OrdersContext _orderContext = generateOrderContext("create_order_orders_2");

            CartsContext _cartContext = generateCartContext("create_order_carts_detail_2");

            OrdersModel ordersModel = new OrdersModel {
                cartId         = 1,
                userId         = 1,
                subtotal       = (Decimal)12.95,
                total          = (Decimal)62.95,
                shippingMethod = "Cash on Delivery",
                shippingFee    = 50,
                fullname       = "Chonnikan Tobunrueang",
                address1       = "3 อาคารพร้อมพันธ์ 3 ห้อง 1001",
                address2       = "จอมพล",
                city           = "จตุจักร",
                province       = "กรุงเทพ",
                postcode       = "10900",
                createDatetime = DateTime.Now,
            };

            OrderProductsModel orderProductsModel = new OrderProductsModel {
                orderId           = 1,
                productId         = 2,
                quantity          = 1,
                name              = "43 Piece dinner Set",
                price             = (Decimal)12.95,
                availability      = "InStock",
                stockAvailability = 10,
                age    = "3_to_5",
                gender = "FEMALE",
                brand  = "CoolKidz"
            };

            OrderDetailOutput expectedResult = new OrderDetailOutput {
                order    = ordersModel,
                products = new ProductsListOutput {
                    total = 1,
                    data  = new List <OrderProductsModel>()
                    {
                        orderProductsModel
                    },
                }
            };

            OrdersService          ordersService = new OrdersService(_cartContext, _productContext, _orderContext);
            CreateOrderOutputModel order         = ordersService.create(1, 1);

            var actual = ordersService.get(order.id);

            Assert.Equal(order.id, actual.order.id);
            Assert.Equal(expectedResult.order.subtotal, actual.order.subtotal);
            Assert.Equal(expectedResult.order.total, actual.order.total);
            Assert.Equal(expectedResult.order.shippingMethod, actual.order.shippingMethod);
            Assert.Equal(expectedResult.order.shippingFee, actual.order.shippingFee);
            Assert.Equal(expectedResult.order.fullname, actual.order.fullname);
            Assert.Equal(expectedResult.order.address1, actual.order.address1);
            Assert.Equal(expectedResult.products.data, actual.products.data);


            _productContext.Database.EnsureDeleted();
            _cartContext.Database.EnsureDeleted();
            _orderContext.Database.EnsureDeleted();
        }
        public void When_Get_Order_Id_1_Should_Be_Return_Only_This_Order()
        {
            var _orderOptions = new DbContextOptionsBuilder <OrdersContext>().UseInMemoryDatabase("create_order_orders_detail_2").Options;
            var _orderContext = new OrdersContext(_orderOptions);

            var _cartOptions = new DbContextOptionsBuilder <CartsContext>().UseInMemoryDatabase("create_order_carts_detail_2").Options;
            var _cartContext = new CartsContext(_cartOptions);

            var _productOptions = new DbContextOptionsBuilder <ProductsContext>().UseInMemoryDatabase("create_order_carts_products_detail_2").Options;
            var _productContext = new ProductsContext(_productOptions);

            OrdersModel ordersModel = new OrdersModel {
                cartId         = 1,
                userId         = 1,
                subtotal       = (Decimal)25.90,
                total          = (Decimal)75.90,
                shippingMethod = "Cash on Delivery",
                shippingFee    = 50,
                fullname       = "Chonnikan Tobunrueang",
                address1       = "3 อาคารพร้อมพันธ์ 3 ห้อง 1001",
                address2       = "จอมพล",
                city           = "จตุจักร",
                province       = "กรุงเทพ",
                postcode       = "10900",
                createDatetime = DateTime.Now,
            };

            _orderContext.Orders.Add(ordersModel);

            OrderProductsModel orderProductsModel = new OrderProductsModel {
                orderId           = 1,
                productId         = 2,
                quantity          = 2,
                name              = "43 Piece dinner Set",
                price             = (Decimal)12.95,
                availability      = "InStock",
                stockAvailability = 10,
                age    = "3_to_5",
                gender = "FEMALE",
                brand  = "CoolKidz"
            };

            _orderContext.OrderProducts.Add(orderProductsModel);

            _orderContext.SaveChanges();

            OrderDetailOutput expectedResult = new OrderDetailOutput {
                order    = ordersModel,
                products = new ProductsListOutput {
                    total = 1,
                    data  = new List <OrderProductsModel>()
                    {
                        orderProductsModel
                    },
                }
            };

            OrdersService ordersService = new OrdersService(_cartContext, _productContext, _orderContext);
            var           actual        = ordersService.get(1);

            Assert.Equal(expectedResult.order.id, actual.order.id);

            using (var context = new ProductsContext(_productOptions))
            {
                _productContext.Database.EnsureDeleted();
            }
            using (var context = new CartsContext(_cartOptions))
            {
                _cartContext.Database.EnsureDeleted();
            }
            using (var context = new OrdersContext(_orderOptions))
            {
                _orderContext.Database.EnsureDeleted();
            }
        }