public async Task <Order> GetOrderWithWithStocksAndProductsById(int id) { var entityOrder = await _ctx.Orders .Where(x => x.Id == id) .Include(x => x.OrderStocks) .ThenInclude(x => x.Stock) .ThenInclude(x => x.Product) .SingleOrDefaultAsync(); if (entityOrder is null) { throw new ArgumentException("There is no such order."); } var order = Projections.EntityOrderToDomainOrder(entityOrder); order.OrderStocks = entityOrder.OrderStocks.Select(x => { var orderStock = new OrderStock { StockId = x.StockId, Qty = x.Qty, Stock = Projections.EntityStockToDomainStock(x.Stock), }; orderStock.Stock.Product = Projections.EntityProductToDomainProduct(x.Stock.Product); return(orderStock); }); return(order); }
public void SavesOrderStockToDatabase() { //Arrange var product = new Product { Name = "ProductName", Description = "ProductDescription", Value = 100, Stock = null }; var order = new Order { FirstName = "FirstName", LastName = "LastName", Address1 = "Address1", Address2 = "Address2", City = "City", Email = "*****@*****.**", OrderRef = "REF", OrderStocks = null, Status = 0, PhoneNumber = "8-800-555-35-35", PostCode = "123", StripeReference = "" }; var stock = new Stock { Description = "Description", Product = product, ProductID = 1, OrderStocks = null, Qty = 1 }; var orderStock = new OrderStock { Order = order, OrderID = 1, Qty = 1, Stock = stock, StockID = 1 }; //Act using (var ctx = CreateDbContext(nameof(SavesOrderStockToDatabase))) { ctx.OrderProducts.Add(orderStock); ctx.SaveChanges(); } //Assert using (var ctx = CreateDbContext(nameof(SavesOrderStockToDatabase))) { var savedOrderStock = ctx.OrderProducts.Single(); Assert.Equal(orderStock.OrderID, savedOrderStock.OrderID); } }
protected void OnRunReferenceItemDialog(object sender, Reference.RunReferenceItemDlgEventArgs e) { ResponseType Result; switch(e.TableName) { case "models": CarModelDlg ItemModel = new CarModelDlg(); if(e.NewItem) ItemModel.NewItem = true; else ItemModel.Fill(e.ItemId); ItemModel.Show(); Result = (ResponseType)ItemModel.Run(); ItemModel.Destroy(); break; case "status": Status StatusEdit = new Status(); if(e.NewItem) StatusEdit.NewItem = true; else StatusEdit.Fill(e.ItemId); StatusEdit.Show(); Result = (ResponseType)StatusEdit.Run(); StatusEdit.Destroy(); break; case "services": ServiceDlg ServiceEdit = new ServiceDlg(); if(e.NewItem) ServiceEdit.NewItem = true; else ServiceEdit.Fill(e.ItemId); ServiceEdit.Show(); Result = (ResponseType)ServiceEdit.Run(); ServiceEdit.Destroy(); break; case "stocks": OrderStock StocksEdit = new OrderStock(); if(e.NewItem) StocksEdit.NewItem = true; else StocksEdit.Fill(e.ItemId); StocksEdit.Show(); Result = (ResponseType)StocksEdit.Run(); StocksEdit.Destroy(); break; case "order_type": OrderTypeDlg OrderTypeEdit = e.NewItem ? new OrderTypeDlg() : new OrderTypeDlg(e.ItemId); OrderTypeEdit.Show(); Result = (ResponseType)OrderTypeEdit.Run(); OrderTypeEdit.Destroy(); break; default: Result = ResponseType.None; break; } e.Result = Result; }
public async Task AddOrderStockAsync(OrderStock entity) { var sql = "insert into \"OrderStocks\" (order_id, prod_id, curr_stocks, shop_id) values (" + entity.order_id + ", " + entity.prod_id + ", " + entity.curr_stocks + ", " + entity.shop_id + ")"; using (var db = new NpgsqlConnection(conn)) { db.Open(); await db.ExecuteAsync(sql); } }
public async Task UpdateOrderStockAsync(OrderStock entity) { var sql = "update \"OrderStocks\" set curr_stocks = " + isNotNull(entity.curr_stocks) + " where id = " + entity.id; using (var db = new NpgsqlConnection(conn)) { db.Open(); await db.ExecuteAsync(sql); } }
private async Task OrderStrategy(Order order) { foreach (var orderDetail in order.OrderDetails) { var orderStock = new OrderStock { order_id = orderDetail.id, prod_id = orderDetail.prod_id, curr_stocks = orderDetail.count, shop_id = order.shop_id }; await _orderStockRepo.AddOrderStockAsync(orderStock); await UpdateCostAndStocks(orderDetail.prod_id, order.shop_id); } }
private async Task OrderStrategyUow(Order order, IUnitOfWork uow) { _orderStockRepo = new OrderStockRepository(uow); foreach (var orderDetail in order.OrderDetails) { var orderStock = new OrderStock { order_id = orderDetail.id, prod_id = orderDetail.prod_id, curr_stocks = orderDetail.count, shop_id = order.shop_id }; await _orderStockRepo.InsertUow(orderStock); await UpdateCostAndStocksUow(orderDetail.prod_id, order.shop_id, uow); } }
private void RecordPurchasedBooksFromStocks(List <Tuple <Stock, OrderItem, int> > pConsumedStocks, BookStoreEntityModelContainer pContainer) { try { foreach (Tuple <Stock, OrderItem, int> consumedStock in pConsumedStocks) { OrderStock orderStock = new OrderStock() { Quantity = consumedStock.Item3, Stock = consumedStock.Item1, OrderItem = consumedStock.Item2 }; pContainer.OrderStocks.Add(orderStock); } } catch (Exception lException) { throw; } }
public void SwapToOrder(string x) { using (PersonDbContext context = new PersonDbContext()) { var DataGeneralStock = context.GeneralStock .FirstOrDefault(p => p.StockName == x); var DataOrders = context.Orders .ToList(); var DataPeople = context.People .ToList(); if (DataGeneralStock == null) { Console.WriteLine("Error! Item Not found!"); } else { Orders ords; int ordsOrderId; try { ordsOrderId = context.Orders.Max(o => o.OrderId) + 1; } catch (Exception) { ordsOrderId = 1; } if (MyOrderManager.GetCurrentOrder().GetItems().Count <= 1) { ords = new Orders() { OrderId = ordsOrderId, PersonId = context.People.First(p => p.Username == MyPersonManager.GetCurrentUser().GetName()).PersonId, Price = 0, OrderDate = DateTime.Now }; context.Orders.Add(ords); } else { var w = context.People.First(p => p.Username == MyPersonManager.GetCurrentUser().GetName()).PersonId; var e = context.Orders.Max(p => p.OrderId); ords = context.Orders.First(p => p.OrderId == e); } var count = (from orsto in context.OrderStock select orsto.OrderId).Count(); if (count == 0) { var q = context.StoreStock .First(p => p.StoreStockId == DataGeneralStock.StoreStockId); context.StoreStock.Remove(q); DataGeneralStock.StoreStockId = null; OrderStock ordsto = new OrderStock { OrderStockId = 1, OrderId = ords.OrderId }; DataGeneralStock.OrderStockId = ordsto.OrderStockId; context.OrderStock.Add(ordsto); } else { var q = context.StoreStock .First(p => p.StoreStockId == DataGeneralStock.StoreStockId); context.StoreStock.Remove(q); DataGeneralStock.StoreStockId = null; OrderStock ordsto = new OrderStock { OrderStockId = context.OrderStock.Max(stock => stock.OrderStockId) + 1, OrderId = ords.OrderId }; DataGeneralStock.OrderStockId = ordsto.OrderStockId; context.OrderStock.Add(ordsto); DataGeneralStock.OrderStockId = context.OrderStock.Max(order => order.OrderStockId) + 1; } double totalprice = 0; foreach (var val in MyOrderManager.GetCurrentOrder().GetItems()) { totalprice = totalprice + val.GetPrice(); } ords.Price = Convert.ToDecimal(totalprice); //context.OrderStock.Add(ords); try { context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } } } }
private void SaveOrderStock() { Dictionary <string, List <Order> > MyManagedOrders = MyOrderManager.GetManagedOrders(); using (PersonDbContext context = new PersonDbContext()) { var DataTopics = context.Topics; var DataOrderStock = context.OrderStock; var DataGeneralStock = context.GeneralStock .Include(p => p.OrderStock); var DataOrders = context.Orders; foreach (var val1 in MyManagedOrders) { List <Order> MyCurrentNamedOrder = val1.Value; foreach (var val2 in MyCurrentNamedOrder) { int added = 0; List <Stock> MyCurrentStock = val2.GetItems(); foreach (var val3 in MyCurrentStock) { var MyQuery = context.GeneralStock .FirstOrDefault(Stock => Stock.StockName == val3.GetName()); if (MyQuery == null) { GeneralStock gensto = new GeneralStock { StockId = context.GeneralStock.Max(stock => stock.StockId) + 1, TopicId = context.Topics.First(p => p.TopicName == val3.GetTopic()).TopicId, StockName = val3.GetName(), Price = Convert.ToDecimal(val3.GetPrice()), StockDescription = val3.GetDescription(), OrderStockId = context.OrderStock.Max(stock => stock.OrderStockId) + 1, StoreStockId = null }; Orders ords = new Orders() { OrderId = context.Orders.Max(o => o.OrderId) + 1 + added, PersonId = context.People.First(p => p.Username == val1.Key).PersonId, Price = Convert.ToDecimal(val2.GetPrice()), OrderDate = val2.GetDate() }; OrderStock ordsto = new OrderStock { OrderStockId = (int)gensto.OrderStockId, OrderId = ords.OrderId }; context.Orders.Add(ords); context.GeneralStock.Add(gensto); context.OrderStock.Add(ordsto); try { context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } } } } } } }
public async Task <bool> UpdateUow(OrderStock orderStock) { return(await _unitOfWork.Connection.UpdateAsync(orderStock, transaction : _unitOfWork.Transaction)); }
public async Task <int> InsertUow(OrderStock orderStock) { return(await _unitOfWork.Connection.InsertAsync(orderStock, transaction : _unitOfWork.Transaction)); }