/// <summary> /// Method to send a queued order /// </summary> /// <param name="queuedOrder">Object of a queued order</param> public async Task SendOrder(QueuedOrder queuedOrder) { var product = FindProduct(queuedOrder.Merchandise.ItemName); if (product.Qty - queuedOrder.Merchandise.Qty >= 0) { RemoveFromStock(product, queuedOrder.Merchandise.Qty); // Remove from collection, the collection starts at 0 // but IDs at 1 so ID - 1 gets you the correct number _app.QueuedOrders.RemoveAt(queuedOrder.QueueID - 1); // Update the remaining objects with a new qID foreach (var item in _app.QueuedOrders) { if (item.QueueID > 1) { item.QueueID -= 1; } else { continue; } } _app.GetDefaultCustomerOrdersList().Add(queuedOrder.ConvertFromQueued()); await MessageToUser("Order sent!"); } else { await MessageToUser("Not enough in stock to send order!"); } }
/// <summary> /// Overload to create a queued order. /// </summary> /// <param name="customer">A customer object, preferably of the customer who placed the order.</param> /// <param name="merch">The merchandise to be shipped</param> /// <param name="queueID">What place in line to place the order, generate from querying the ObsColl</param> public void CreateOrder(CustomerClass customer, StockClass merch, int amount, int queueID) { // Define CultureInfo CultureInfo cultureInfo = new CultureInfo("sv-SV"); DateTime dateTimeOfOrder = DateTime.UtcNow; QueuedOrder order = new QueuedOrder(customer, new StockClass(merch.ItemName, merch.Supplier, amount), dateTimeOfOrder, queueID); _app.QueuedOrders.Add(order); }
/// <summary> /// Locate a queued order /// </summary> /// <param name="name">Name of customer</param> /// <returns></returns> public QueuedOrder FindQueued(string name) { QueuedOrder queuedOrder = null; foreach (var item in _app.QueuedOrders) { if (item.Customer.CustomerName == name) { queuedOrder = item; } } return(queuedOrder); }