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()); }
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); }
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(); }
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(); } }