protected void SubmitBtn_Click(object sender, EventArgs e) { // because validation still invoke this method if (!Page.IsValid) { return; } try { // pzn is validated in form int pzn = Int32.Parse(PZNBox.Text); Pharmacy.BusinessLayer.Data.Drug result = Pharmacy.BusinessLayer.Logic.DrugService.CreateDrug(pzn, NameBox.Text, DescriptionBox.Text); ResultLabel.Text = String.Format("Drug '{0}' created.", result.PZN); ResultLabel.CssClass = "success"; PZNBox.Text = ""; NameBox.Text = ""; DescriptionBox.Text = ""; } catch (ArgumentException ex) { ResultLabel.Text = String.Format("Drug not created: {0}", ex.Message); ResultLabel.CssClass = "error"; } }
public static new InventoryEvent Create(Drug drug, int quantity, DateTime dateOfAction) { return new RestockEvent { Drug = drug, Quantity = quantity, DateOfAction = dateOfAction }; }
public static Drug CreateDrug(int pzn, string name, string description) { Util.ConvertEmptyToNull(ref description); Drug newDrug = new Drug { PZN = pzn, Name = name, Description = description }; return CreateDrug(newDrug); }
public static Drug UpdateDrug(Drug drug, String name, String description, int minimumInventoryLevel, int optimalInventoryLevel) { Util.ConvertEmptyToNull(ref description); using (PharmacyContainer db = new PharmacyContainer()) { Drug attachedDrug = GetDrug(drug.PZN, db); attachedDrug.Name = name; attachedDrug.Description = description; attachedDrug.MinimumInventoryLevel = minimumInventoryLevel; attachedDrug.OptimalInventoryLevel = optimalInventoryLevel; db.SaveChanges(); return attachedDrug; } }
public static Boolean HasOpenOrders(Drug drug, PharmacyContainer db) { return OpenOrdersFor(drug, db).Count() > 0; }
private static IQueryable<ReplenishmentOrder> OpenOrdersFor(Drug drug, PharmacyContainer db) { return (from o in db.ReplenishmentOrderSet where o.Positions.Where(p => p.DrugPZN == drug.PZN).Count() > 0 && o.State == OrderState.Open select o); }
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 }); db.ReplenishmentOrderSet.Add(newOrder); } }
private static void AdjustExistingOrderFor(Drug drug, int quantity, PharmacyContainer db) { foreach (Position p in GetPendingPositionsForDrug(drug.PZN)) { if (p.Order.State == OrderState.Open) { p.Quantity = p.Quantity + quantity; db.Entry(p).State = System.Data.EntityState.Modified; } } }
public static Drug UpdateDrug(Drug drug) { return UpdateDrug(drug, drug.Name, drug.Description, drug.MinimumInventoryLevel, drug.OptimalInventoryLevel); }
private static Int32 GetQuantityPending(Drug drug, PharmacyContainer db) { if (OrderService.PendingPositionsFor(drug.PZN, db).Count() > 0) { // would not work on empty position collections return OrderService.PendingPositionsFor(drug.PZN, db).Sum(p => p.Quantity); } else { return 0; } }
private static Drug CreateDrug(Drug newDrug) { using (PharmacyContainer db = new PharmacyContainer()) { var count = (from d in db.DrugSet where d.PZN == newDrug.PZN select d).Count(); if (count > 0) throw new ArgumentException(String.Format("Drug with PZN {0} already exists!", newDrug.PZN)); db.DrugSet.Add(newDrug); db.SaveChanges(); return newDrug; } }
public static InventoryEvent Create(Drug drug, Int32 quantity, DateTime dateOfAction) { throw new NotImplementedException(); }
public static new InventoryEvent Create(Drug drug, int quantity, DateTime dateOfAction) { return new WithdrawEvent { Drug = drug, // negate quantity for withdrawal Quantity = -quantity, DateOfAction = dateOfAction }; }