/// <summary> /// Volume of one rotation /// </summary> /// <param name="list">0 need,1 consumption,2 add,3 firstAdd</param> public List <ReagentAndSuppliesConfiguration> GetRotationVolume(Guid experimentID, Guid rotationID, short[] volumeType, string volumeFiled) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetRotationVolume(rotationID, volumeType); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(experimentID); ReagentSuppliesConfigurationController configurationController = new ReagentSuppliesConfigurationController(); List <ReagentAndSuppliesConfiguration> list = configurationController.GetAllActived(); foreach (ReagentAndSuppliesConfiguration config in list) { double volume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { volume += (double)consumption.Volume; } } } Type type = typeof(ReagentAndSuppliesConfiguration); FieldInfo fieldInfo = type.GetField(volumeFiled, BindingFlags.NonPublic | BindingFlags.Instance); if (fieldInfo != null) { fieldInfo.SetValue(config, volume); } } return(list); }
/// <summary> /// NeededVolume of Processing rotations /// </summary> /// <param name="list"></param> public void NeededVolumeofProcessingRotations(ref List <ReagentAndSuppliesConfiguration> list) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetProcessingRotationsVolume(); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(SessionInfo.ExperimentID); foreach (ReagentAndSuppliesConfiguration config in list) { double neededVolume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { neededVolume += (double)consumption.Volume; } } config.NeedVolume = neededVolume; } } }
/// <summary> /// volume of experiment /// </summary> /// <param name="list"></param> /// <param name="list">0 need,1 consumption,2 add,3 firstAdd</param> /// <param name="volumeFiled">the filed to update</param> public void UpdateExperimentTotalNeedConsumptionVolume(Guid experimentID, ref List <ReagentAndSuppliesConfiguration> list) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetExperimentVolume(experimentID, new short[] { ConsumptionType.Need, ConsumptionType.consume }); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(experimentID); foreach (ReagentAndSuppliesConfiguration config in list) { double volume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { volume += (double)consumption.Volume; } } if (config.ItemType == DiTiType.DiTi200 || config.ItemType == DiTiType.DiTi1000) { volume = volume / 96; volume = Math.Ceiling(volume * 10) / 10; } config.TotalNeedValueAndConsumption = volume; } } }
private void btnSave_Click(object sender, RoutedEventArgs e) { for (int i = 0; i < dtReagent.Rows.Count; i++) { if (!(bool)dtReagent.Rows[i]["Correct"]) { MessageBox.Show("请确认试剂" + dtReagent.Rows[i]["DisplayName"].ToString() + "。", "系统提示"); return; } } ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); consumptionController.AddConsumption(dtReagent, 2); this.DialogResult = true; this.Close(); }
/// <summary> /// volume of experiment /// </summary> /// <param name="list"></param> /// <param name="list">0 need,1 consumption,2 add,3 firstAdd</param> /// <param name="volumeFiled">the filed to update</param> public void UpdateExperimentVolume(Guid experimentID, ref List <ReagentAndSuppliesConfiguration> list, short[] volumeType, string volumeFiled) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetExperimentVolume(experimentID, volumeType); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(experimentID); foreach (ReagentAndSuppliesConfiguration config in list) { double volume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { volume += (double)consumption.Volume; } } if (config.ItemType == DiTiType.DiTi200 || config.ItemType == DiTiType.DiTi1000) { config.CurrentActualVolume = volume; volume = volume / 96; volume = Math.Ceiling(volume * 10) / 10; } //if (volume < 0) // volume = 0.0; Type type = typeof(ReagentAndSuppliesConfiguration); FieldInfo filedInfo = type.GetField(volumeFiled, BindingFlags.NonPublic | BindingFlags.Instance); if (filedInfo != null) { filedInfo.SetValue(config, volume); } } } }
private void btnSave_Click(object sender, RoutedEventArgs e) { //MessageBoxResult msResult = MessageBox.Show("确认保存么", "系统提示", MessageBoxButton.YesNo, MessageBoxImage.Information); //if (msResult == MessageBoxResult.No) //{ // return; //} ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); PlateController plateController = new PlateController(); foreach (PlateBase plate in ViewPlates) { if (plate.ItemType == 101 && (plate.DisplayName.EndsWith("1") || plate.DisplayName.EndsWith("2"))) { string plateName = ""; if (plate.DisplayName.EndsWith("1")) { plateName = PlateName.DWPlate1; } if (plate.DisplayName.EndsWith("2")) { plateName = PlateName.DWPlate2; } plateController.UpdateBarcode(plateName, 0, SessionInfo.PraperRotation.RotationID, plate.Barcode); } ReagentAndSupply reagent = new ReagentAndSupply(); if ((isFirstRotation) || (!isFirstRotation && (plate.ItemType >= 100 && plate.ItemType < 200))) { reagent.ItemID = WanTaiObjectService.NewSequentialGuid(); reagent.BarCode = plate.Barcode; reagent.ItemType = plate.ItemType; reagent.ExperimentID = SessionInfo.ExperimentID; reagent.ConfigurationItemID = plate.ConfigurationItemID; reagentController.AddReagentAndSupplies(reagent); } else { reagent.ItemID = new ReagentAndSuppliesController().GetReagentID(SessionInfo.ExperimentID, plate.BarcodePrefix); if (reagent.ItemID == Guid.Empty) { reagent.ItemID = WanTaiObjectService.NewSequentialGuid(); reagent.BarCode = plate.Barcode; reagent.ItemType = plate.ItemType; reagent.ExperimentID = SessionInfo.ExperimentID; reagent.ConfigurationItemID = plate.ConfigurationItemID; reagentController.AddReagentAndSupplies(reagent); } } ReagentsAndSuppliesConsumption calcReagentConsumption = new ReagentsAndSuppliesConsumption(); calcReagentConsumption.ItemID = WanTaiObjectService.NewSequentialGuid(); if (plate.ActualSavedVolume > 0) { calcReagentConsumption.Volume = plate.ActualSavedVolume; } else { calcReagentConsumption.Volume = plate.NeedVolume; } calcReagentConsumption.UpdateTime = DateTime.Now; calcReagentConsumption.ExperimentID = SessionInfo.ExperimentID; calcReagentConsumption.RotationID = SessionInfo.PraperRotation.RotationID; calcReagentConsumption.VolumeType = ConsumptionType.Need; calcReagentConsumption.ReagentAndSupplieID = reagent.ItemID; consumptionController.AddConsumption(calcReagentConsumption); ReagentsAndSuppliesConsumption scanReagentConsumption = new ReagentsAndSuppliesConsumption(); scanReagentConsumption.ItemID = WanTaiObjectService.NewSequentialGuid(); scanReagentConsumption.UpdateTime = DateTime.Now; scanReagentConsumption.ExperimentID = SessionInfo.ExperimentID; scanReagentConsumption.RotationID = SessionInfo.PraperRotation.RotationID; scanReagentConsumption.VolumeType = ConsumptionType.FirstAdd; if (reagent.ItemType == DiTiType.DiTi200 || reagent.ItemType == DiTiType.DiTi1000) { scanReagentConsumption.Volume = plate.FirstAddVolume * 96; } else { scanReagentConsumption.Volume = plate.FirstAddVolume; } scanReagentConsumption.ReagentAndSupplieID = reagent.ItemID; consumptionController.AddConsumption(scanReagentConsumption); } btnScan.IsEnabled = false; btnManual.IsEnabled = false; btnSave.IsEnabled = false; btnNext.IsEnabled = true; btnSupplies.IsEnabled = false; btnReagent.IsEnabled = false; btnTestItem.IsEnabled = false; SessionInfo.NextButIndex = 3; ////MessageBox.Show("保存成功!", "系统提示"); }