private static void NMFRecordPrompt(Database.Database db) { Console.WriteLine("NMF Record Generator"); Console.WriteLine("1: Add new Orderable"); Console.WriteLine("2: Add new Order"); Console.WriteLine("3: Edit orderable database"); Console.WriteLine("4: Edit order"); Console.WriteLine("5: Receipt"); Console.WriteLine("6: Create Receipt Report"); switch (Console.ReadLine()) { case "1": // Add New Orderable Creation.OrderablePrompt(db); break; case "2": // Add New Order Creation.OrderPrompt(db); break; case "3": OrderableManagement.DisplayOrderables(db); break; case "4": Database.ExpenseOrder editOrderOrder = OrderManagement.ChooseOrder(db); if (editOrderOrder != null) { editOrderOrder = OrderManagement.EditOrder(editOrderOrder); db.OverwriteOrder(editOrderOrder); } break; case "5": Database.ExpenseOrder receiptOrder = OrderManagement.ChooseOrderResolved(db); if (receiptOrder != null) { receiptOrder = OrderManagement.ResolveOrder(receiptOrder); if (receiptOrder == null) { break; } db.OverwriteOrder(receiptOrder); } break; case "6": ReportGen.CreateNotReceiptReport(db, DateTime.Today); break; default: Console.WriteLine("Invalid Entry"); break; } }
public void SaveNewOrder(ExpenseOrder order) { BinaryFormatter formatter = new BinaryFormatter(); var newOrders = GetOrders().Append(order).ToArray(); File.Delete("orders.dat"); Stream ms = File.OpenWrite("orders.dat"); formatter.Serialize(ms, newOrders); ms.Flush(); ms.Close(); ms.Dispose(); }
public void OverwriteOrder(ExpenseOrder order) { if (order is null) { Console.WriteLine("No order selected!"); return; } var k = GetOrders(); if (!k.Any(x => order.OrderDate == x.OrderDate)) { throw new Exception("Overwrite order called without a matching order already in the database! " + order); } OverwriteOrders(k.Where(x => x.OrderDate != order.OrderDate).Append(order).ToArray()); }