//This method ensures that anything which is added to the inventory //will actually appear on the list. This method is tightly coupled to the model //and if new IInventoryItems are created it will be necessary to rewrite this model. private void InventoryItem_ItemSaved(object sender, EventArgs e) { //throw new NotImplementedException(); if ((sender as IDataStoreItem).ID == 0) { InventoryItems.Add(sender as IDataStoreItem); } if (sender is Generator) { Generator g = sender as Generator; if (g.Elutions.Where(x => x.ID == 0).Any()) { foreach (Elution t in g.Elutions.Where(x => x.ID == 0)) { InventoryItems.Add(t); } } } if (sender is BaseBulkDose) { BaseBulkDose bd = sender as BaseBulkDose; foreach (BaseUnitDose ud in bd.UnitDoses.Where(x => x.ID == 0)) { InventoryItems.Add(ud); } } resetView(); (sender as IDataStoreItem).ItemSaving -= InventoryItem_ItemSaved; }
protected override void _whiteboard_SelectionChanged(object sender, EventArgs e) { if (Whiteboard.SelectedAppointment != null) { Appointment a = Whiteboard.SelectedAppointment as Appointment; if (a.Completed) { Available = false; return; } if (a.Cancelled) { Available = false; return; } if (a.Tasks.Where(x => x.Deleted == false && x.IsCancelled == false && x.Completed == false && x is DoseAdministrationTask).Where(y => (y as DoseAdministrationTask).UnitDose == null).Any()) { //do we have a bulk dose to draw from? //Get the next dose administration task dat = a.Tasks.Where(x => x.Deleted == false && x.IsCancelled == false && x.Completed == false && x is DoseAdministrationTask).Where(y => (y as DoseAdministrationTask).UnitDose == null).OrderBy(y => y.SchedulingTime).First() as DoseAdministrationTask; //Get the list of bulk doses which are not expired and have the right radiopharmaceuical RetrievalCriteria rc1 = new RetrievalCriteria("Expired", CriteraType.Equals, false); RetrievalCriteria rc2 = new RetrievalCriteria("Radiopharmaceutical", CriteraType.Equals, dat.PrescribedRadioPharmaceutical); RetrievalCriteria rc3 = new RetrievalCriteria("IsDisposed", CriteraType.Equals, false); List <RetrievalCriteria> rcList = new List <RetrievalCriteria>(); rcList.Add(rc1); rcList.Add(rc2); rcList.Add(rc3); var bulkDoses = DesktopApplication.Librarian.DataRetriever.RetrieveItems(typeof(BaseBulkDose), rcList); if (bulkDoses.Any()) { bulkDose = bulkDoses.First() as BaseBulkDose; Available = true; } else { Available = false; } } else { Available = false; } } else { Available = false; } }