public static void UpdateActualDeliveryDate(Int32 id, DateTime actualDelivery) { using (PharmacyContainer db = new PharmacyContainer()) { ReplenishmentOrder order = GetOrder(id, db); order.ActualDelivery = actualDelivery; db.SaveChanges(); } }
internal static ReplenishmentOrder GetOrder(Int32 id, PharmacyContainer db) { ReplenishmentOrder result = (from o in db.ReplenishmentOrderSet where o.Id == id select o).FirstOrDefault(); if (result == default(ReplenishmentOrder)) { throw new ArgumentException(String.Format("Order with ID {0} not found", id.ToString())); } return(result); }
public static ReplenishmentOrder GetOrderWithPositions(Int32 id) { using (PharmacyContainer db = new PharmacyContainer()) { ReplenishmentOrder result = (from o in db.ReplenishmentOrderSet.Include("Positions") where o.Id == id select o).FirstOrDefault(); if (result == default(ReplenishmentOrder)) { throw new ArgumentException(String.Format("Order with ID {0} not found", id.ToString())); } return(result); } }
public static void Cancel(Int32 id) { using (PharmacyContainer db = new PharmacyContainer()) { ReplenishmentOrder order = GetOrder(id, db); order.State = order.State.Cancel(); foreach (Position p in order.Positions) { InitiateReplenishment(p.DrugPZN, p.Quantity, db); } // migrate all positions to new or existing open order db.SaveChanges(); } }
private static void ValidateOrderExists(Int32 orderId) { try { ReplenishmentOrder order = OrderService.GetOrder(orderId); if (order.State != OrderState.Finished) { throw new WebFaultException(System.Net.HttpStatusCode.NotFound); } } catch { throw new WebFaultException(System.Net.HttpStatusCode.NotFound); } }
public static void ProceedToNextState(Int32 id) { using (PharmacyContainer db = new PharmacyContainer()) { ReplenishmentOrder order = GetOrder(id, db); order.State = order.State.Next(); if (order.State == OrderState.Finished) { foreach (Position p in order.Positions) { DrugService.Replenish(p.Drug.PZN, p.Quantity, order.ActualDelivery, db); } } db.SaveChanges(); } }
private static String MarshalSingleForAll(ReplenishmentOrder order) { String marshalledResult = ""; marshalledResult += order.Id; marshalledResult += DELIMITER; marshalledResult += order.State.ToString().ToUpper(); if (order.State == OrderState.Ordered || order.State == OrderState.Finished) { marshalledResult += DELIMITER; marshalledResult += Format(order.ExpectedDelivery); } if (order.State == OrderState.Finished) { marshalledResult += DELIMITER; marshalledResult += Format(order.ActualDelivery); } return(marshalledResult); }
private static void CreatePositionOnOpenOrNewOrder(Drug drug, int quantity, PharmacyContainer db) { if (OpenOrdersAvailable(db)) { ReplenishmentOrder openOrder = GetOpenOrders(db).First(); openOrder.Positions.Add(new Position { Drug = drug, Order = openOrder, Quantity = quantity }); } else { ReplenishmentOrder newOrder = new ReplenishmentOrder(); newOrder.Positions.Add(new Position { Drug = drug, Order = newOrder, Quantity = quantity }); newOrder = db.ReplenishmentOrderSet.Add(newOrder); } }