Ejemplo n.º 1
0
        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";
            }
        }
Ejemplo n.º 2
0
 public static new InventoryEvent Create(Drug drug, int quantity, DateTime dateOfAction)
 {
     return new RestockEvent
     {
         Drug = drug,
         Quantity = quantity,
         DateOfAction = dateOfAction
     };
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
 public static Boolean HasOpenOrders(Drug drug, PharmacyContainer db)
 {
     return OpenOrdersFor(drug, db).Count() > 0;
 }
Ejemplo n.º 6
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);
 }
Ejemplo n.º 7
0
 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);
     }
 }
Ejemplo n.º 8
0
 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;
         }
     }
 }
Ejemplo n.º 9
0
 public static Drug UpdateDrug(Drug drug)
 {
     return UpdateDrug(drug, drug.Name, drug.Description, drug.MinimumInventoryLevel, drug.OptimalInventoryLevel);
 }
Ejemplo n.º 10
0
 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;
     }
 }
Ejemplo n.º 11
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;
     }
 }
Ejemplo n.º 12
0
 public static InventoryEvent Create(Drug drug, Int32 quantity, DateTime dateOfAction)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 13
0
 public static new InventoryEvent Create(Drug drug, int quantity, DateTime dateOfAction)
 {
     return new WithdrawEvent
     {
         Drug = drug,
         // negate quantity for withdrawal
         Quantity = -quantity,
         DateOfAction = dateOfAction
     };
 }
Ejemplo n.º 14
0
 public static InventoryEvent Create(Drug drug, Int32 quantity, DateTime dateOfAction)
 {
     throw new NotImplementedException();
 }