public override void UpdatePlate(List <PlateBase> plates) { UIElementCollection children = GridPlate.Children; foreach (UIElement UIE in children) { if (UIE is ReagentTub) { ReagentTub tub = (ReagentTub)UIE; PlateBase tempPlate = plates.FirstOrDefault(P => P.Position == tub.Position && P.Grid == tub.Grid); if (tempPlate != null) { tub.Color = tempPlate.Color; tub.NeedVolume = tempPlate.NeedVolume; tub.FirstAddVolume = tempPlate.FirstAddVolume; tub.DisplayName = tempPlate.DisplayName; tub.ItemType = tempPlate.ItemType; tub.ChineseName = tempPlate.ChineseName; tub.RelatedControls = tempPlate.RelatedControls; tub.Correct = tempPlate.Correct; tub.ConfigurationItemID = tempPlate.ConfigurationItemID; } } } Plates = plates; }
public override void ShiningStop() { UIElementCollection children = GridPlate.Children; foreach (UIElement UIE in children) { if (UIE is ReagentTub) { ReagentTub plate = (ReagentTub)UIE; plate.ShiningStop(); } } }
/// <summary> /// Create plates and put plate on carrier /// </summary> /// <param name="reagentAndSupplies"></param> /// <param name="carriers"></param> /// <param name="flag">0 Need,1 Current</param> /// <returns></returns> public List <PlateBase> SetReagentPosition(List <ReagentAndSuppliesConfiguration> reagentAndSupplies, List <DataModel.Carrier> carriers, short flag) { List <PlateBase> plates = new List <PlateBase>(); double volume = 0; double actualSavedVolumn = 0; double currentActualVolumn = 0; foreach (ReagentAndSuppliesConfiguration reagent in reagentAndSupplies) { if (flag == 0) { volume = reagent.NeedVolume; if (reagent.ActualSavedVolume > 0) { actualSavedVolumn = reagent.ActualSavedVolume; } } else { volume = reagent.CurrentVolume; if (reagent.CurrentActualVolume > 0) { currentActualVolumn = reagent.CurrentActualVolume; } } if (volume <= 0) { continue; } Brush color = new SolidColorBrush((Color)ColorConverter.ConvertFromString(reagent.Color)); if (reagent.ItemType > 0 && reagent.ItemType < 100 && reagent.ItemType % 5 == 0) { PlateBase plate = new WanTai.View.Control.ReagentTub(); plate.DisplayName = reagent.DisplayName; plate.ChineseName = reagent.DisplayName; plate.EnglishName = reagent.EnglishName; plate.NeedVolume = reagent.NeedVolume; plate.CurrentVolume = reagent.CurrentVolume; plate.Grid = reagent.Grid; plate.Position = reagent.Position; plate.ContainerName = reagent.ContainerName; plate.CarrierGrid = (int)carriers.First(P => P.CarrierName == reagent.ContainerName).Grid; plate.Color = color; plate.ItemType = (short)reagent.ItemType; plate.BarcodePrefix = reagent.BarcodePrefix; plate.Barcode = reagent.BarcodePrefix; plate.ConfigurationItemID = reagent.ItemID; plate.Correct = reagent.Correct; plate.ConfigurationItemID = reagent.ItemID; plates.Add(plate); } else if (reagent.ItemType == 101)//DW 96 Plate { int position = reagent.Position; int grid = reagent.Grid; string containerName = reagent.ContainerName; for (int i = 0; i < volume; i++) { PlateBase plate = new WanTai.View.Control.Plate(); plate.DisplayName = reagent.DisplayName + " " + (i + 1).ToString(); plate.ChineseName = reagent.DisplayName; plate.EnglishName = reagent.EnglishName; plate.NeedVolume = i == 0 ? volume : 0; plate.CurrentVolume = reagent.CurrentVolume; plate.Grid = grid; plate.Position = position; plate.ContainerName = containerName; plate.CarrierGrid = (int)carriers.First(P => P.CarrierName == containerName).Grid; plate.Color = color; plate.ItemType = (short)reagent.ItemType; plate.BarcodePrefix = reagent.BarcodePrefix; plate.Barcode = reagent.BarcodePrefix; plate.ConfigurationItemID = reagent.ItemID; plate.Correct = reagent.Correct; plates.Add(plate); position--; if (i == 1) { containerName = "002"; position = 3; } if (i == 4) { break; } } } else if (reagent.ItemType == 103)//PCR Plate { int position = reagent.Position; int grid = reagent.Grid; string containerName = reagent.ContainerName; for (int i = 0; i < volume; i++) { PlateBase plate = new WanTai.View.Control.Plate(); plate.DisplayName = reagent.DisplayName + " " + (i + 1).ToString(); plate.ChineseName = reagent.DisplayName; plate.EnglishName = reagent.EnglishName; plate.NeedVolume = i == 0 ? volume : 0; plate.CurrentVolume = reagent.CurrentVolume; plate.Grid = grid; plate.Position = position; plate.ContainerName = containerName; plate.CarrierGrid = (int)carriers.First(P => P.CarrierName == containerName).Grid; plate.Color = color; plate.ItemType = (short)reagent.ItemType; plate.BarcodePrefix = reagent.BarcodePrefix; plate.Barcode = reagent.BarcodePrefix; plate.ConfigurationItemID = reagent.ItemID; plate.Correct = reagent.Correct; plates.Add(plate); position++; if (i == 0) { break; } } } else if (reagent.ItemType == 104)//1000 Diti { int position = reagent.Position; int grid = reagent.Grid; string containerName = reagent.ContainerName; for (int i = 0; i < volume; i++) { PlateBase plate = new WanTai.View.Control.Plate(); plate.DisplayName = reagent.DisplayName + " " + (i + 1).ToString(); plate.ChineseName = reagent.DisplayName; plate.EnglishName = reagent.EnglishName; plate.NeedVolume = i == 0 ? volume : 0; if (actualSavedVolumn > 0) { plate.ActualSavedVolume = i == 0 ? actualSavedVolumn : 0; } if (currentActualVolumn > 0) { plate.CurrentActualVolume = i == 0 ? currentActualVolumn : 0; } plate.Grid = grid; plate.Position = position; plate.ContainerName = containerName; plate.CarrierGrid = (int)carriers.First(P => P.CarrierName == containerName).Grid; plate.Color = color; plate.ItemType = (short)reagent.ItemType; plate.BarcodePrefix = reagent.BarcodePrefix; plate.Barcode = reagent.BarcodePrefix; plate.ConfigurationItemID = reagent.ItemID; plate.Correct = reagent.Correct; plates.Add(plate); position++; if (i == 1) { containerName = "006"; position = 2; } if (i == 5) { break; } } } else if (reagent.ItemType == 105)//200 Diti { int position = reagent.Position; int grid = reagent.Grid; string containerName = reagent.ContainerName; for (int i = 0; i < volume; i++) { PlateBase plate = new WanTai.View.Control.Plate(); plate.DisplayName = reagent.DisplayName + " " + (i + 1).ToString(); plate.ChineseName = reagent.DisplayName; plate.EnglishName = reagent.EnglishName; plate.NeedVolume = i == 0 ? volume : 0; if (actualSavedVolumn > 0) { plate.ActualSavedVolume = i == 0 ? actualSavedVolumn : 0; } if (currentActualVolumn > 0) { plate.CurrentActualVolume = i == 0 ? currentActualVolumn : 0; } plate.Grid = grid; plate.Position = position; plate.ContainerName = containerName; plate.CarrierGrid = (int)carriers.First(P => P.CarrierName == containerName).Grid; plate.Color = color; plate.ItemType = (short)reagent.ItemType; plate.BarcodePrefix = reagent.BarcodePrefix; plate.Barcode = reagent.BarcodePrefix; plate.ConfigurationItemID = reagent.ItemID; plate.Correct = reagent.Correct; plates.Add(plate); position++; if (i == 0) { containerName = "007"; position = 2; } if (i == 3) { break; } } } else if (reagent.ItemType < 200) { PlateBase plate = new WanTai.View.Control.Plate(); plate.DisplayName = reagent.DisplayName; plate.ChineseName = reagent.DisplayName; plate.EnglishName = reagent.EnglishName; plate.NeedVolume = reagent.NeedVolume; plate.CurrentVolume = reagent.CurrentVolume; plate.Grid = reagent.Grid; plate.Position = reagent.Position; plate.ContainerName = reagent.ContainerName; plate.CarrierGrid = (int)carriers.First(P => P.CarrierName == reagent.ContainerName).Grid; plate.Color = color; plate.ItemType = (short)reagent.ItemType; plate.BarcodePrefix = reagent.BarcodePrefix; plate.Barcode = reagent.BarcodePrefix; plate.ConfigurationItemID = reagent.ItemID; plate.Correct = reagent.Correct; plates.Add(plate); } } return(plates); }