Beispiel #1
0
        /// <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;
                }
            }
        }
Beispiel #2
0
        /// <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);
        }
 public void AddConsumption(DataTable dt, short volumeType)
 {
     try
     {
         using (WanTaiEntities entities = new WanTaiEntities())
         {
             for (int i = 0; i < dt.Rows.Count; i++)
             {
                 if (((double)dt.Rows[i]["AddVolume"]) > 0)
                 {
                     ReagentsAndSuppliesConsumption consumption = new ReagentsAndSuppliesConsumption();
                     consumption.ItemID              = WanTaiObjectService.NewSequentialGuid();
                     consumption.Volume              = (double)dt.Rows[i]["AddVolume"];
                     consumption.UpdateTime          = DateTime.Now;
                     consumption.ReagentAndSupplieID = Guid.Parse(dt.Rows[i]["ReagentAndSuppolieID"].ToString());
                     consumption.ExperimentID        = SessionInfo.ExperimentID;
                     consumption.RotationID          = SessionInfo.PraperRotation.RotationID;
                     consumption.VolumeType          = volumeType;
                     entities.ReagentsAndSuppliesConsumptions.AddObject(consumption);
                 }
             }
             entities.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace;
         LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID);
     }
 }
Beispiel #4
0
        /// <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;
                }
            }
        }
 public void UpdateConsumption(ReagentsAndSuppliesConsumption consumption)
 {
     using (WanTaiEntities entities = new WanTaiEntities())
     {
         ReagentsAndSuppliesConsumption Result = entities.ReagentsAndSuppliesConsumptions.Where(Reagent => Reagent.VolumeType == 1 && Reagent.RotationID == consumption.RotationID && Reagent.ReagentAndSupplieID == consumption.ReagentAndSupplieID).FirstOrDefault();
         if (Result == null)
         {
             entities.ReagentsAndSuppliesConsumptions.AddObject(consumption);
         }
         else
         {
             Result.Volume     = consumption.Volume;
             Result.UpdateTime = DateTime.Now;
         }
         entities.SaveChanges();
     }
 }
Beispiel #6
0
        /// <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);
                    }
                }
            }
        }
 public void AddConsumption(Guid rotationID, Guid reagentAndSupplieID, double volume, short volumeType)
 {
     try
     {
         using (WanTaiEntities entities = new WanTaiEntities())
         {
             ReagentsAndSuppliesConsumption consumption = new ReagentsAndSuppliesConsumption();
             consumption.ItemID              = WanTaiObjectService.NewSequentialGuid();
             consumption.Volume              = volume;
             consumption.UpdateTime          = DateTime.Now;
             consumption.ReagentAndSupplieID = reagentAndSupplieID;
             consumption.ExperimentID        = SessionInfo.ExperimentID;
             consumption.RotationID          = rotationID;
             consumption.VolumeType          = volumeType;
             entities.ReagentsAndSuppliesConsumptions.AddObject(consumption);
             entities.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace;
         LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID);
     }
 }
Beispiel #8
0
        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("保存成功!", "系统提示");
        }
        public void AddConsumption(ReagentsAndSuppliesConsumption consumption)
        {
            using (WanTaiEntities entities = new WanTaiEntities())
            {
                //if (consumption.VolumeType == ConsumptionType.FirstAdd && entities.ReagentsAndSuppliesConsumptions.Where(P => P.VolumeType == ConsumptionType.FirstAdd && P.ReagentAndSupplieID == consumption.ReagentAndSupplieID).Count() != 0)
                //{
                //    //int  list = entities.ReagentsAndSuppliesConsumptions.Where(P => P.VolumeType == ConsumptionType.FirstAdd && P.ReagentAndSupplieID == consumption.ReagentAndSupplieID).Count();
                //    double volume = 0;
                //    List<ReagentsAndSuppliesConsumption> consumptions = entities.ReagentsAndSuppliesConsumptions.Where(P => P.ReagentAndSupplieID == consumption.ReagentAndSupplieID).ToList();
                //    foreach (ReagentsAndSuppliesConsumption c in consumptions)
                //    {
                //        if (c.VolumeType != ConsumptionType.Need)
                //        {
                //            volume += (double)c.Volume;
                //        }
                //    }
                //    consumption.Volume -= volume;
                //    if (consumption.Volume < 0)
                //        return;
                //    consumption.VolumeType = ConsumptionType.Add;
                //}
                //else if (consumption.VolumeType == ConsumptionType.FirstAdd)
                //{
                //    double volume = 0;
                //    ReagentAndSupply _reagent = entities.ReagentAndSupplies.Where(c => c.ItemID == consumption.ReagentAndSupplieID).FirstOrDefault();
                //    if (_reagent != null && _reagent.ItemType >= 100 && _reagent.ItemType < 200)
                //    {
                //        var allreagent = entities.ReagentAndSupplies.Where(c => c.ItemType == _reagent.ItemType && c.ExperimentID == consumption.ExperimentID);
                //        if (allreagent.Count() > 0)
                //        {
                //            List<Guid> ReagentAndSuppliesIdList = new List<Guid>();
                //            foreach (ReagentAndSupply reg in allreagent)
                //            {
                //                ReagentAndSuppliesIdList.Add(reg.ItemID);
                //            }

                //            if (entities.ReagentsAndSuppliesConsumptions.Where(P => ReagentAndSuppliesIdList.Contains<Guid>((Guid)P.ReagentAndSupplieID) && P.VolumeType == ConsumptionType.FirstAdd).Count() > 0)
                //            {
                //                List<ReagentsAndSuppliesConsumption> consumptions = entities.ReagentsAndSuppliesConsumptions.Where(P => ReagentAndSuppliesIdList.Contains<Guid>((Guid)P.ReagentAndSupplieID)).ToList();
                //                if (consumptions.Count > 0)
                //                {
                //                    foreach (ReagentsAndSuppliesConsumption c in consumptions)
                //                    {
                //                        if (c.VolumeType != ConsumptionType.Need)
                //                        {
                //                            volume += (double)c.Volume;
                //                        }
                //                    }
                //                    consumption.Volume -= volume;
                //                    if (consumption.Volume < 0)
                //                        return;
                //                    consumption.VolumeType = ConsumptionType.Add;
                //                }
                //            }
                //        }
                //    }
                //}
                entities.ReagentsAndSuppliesConsumptions.AddObject(consumption);
                entities.SaveChanges();
            }
        }