Пример #1
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);
        }
Пример #2
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;
                }
            }
        }
Пример #3
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;
                }
            }
        }
Пример #4
0
        public ReagentAndSuppliesList(Guid experimentID)
        {
            InitializeComponent();

            reagentConfigController = new ReagentSuppliesConfigurationController();
            reagentController       = new ReagentAndSuppliesController();

            DataTable dt = new DataTable();

            dt.Columns.Add("BarCode", typeof(string));
            dt.Columns.Add("DisplayName", typeof(string));
            dt.Columns.Add("Volume", typeof(double));
            dt.Columns.Add("Unit", typeof(string));
            dt.Columns.Add("ItemType", typeof(string));
            List <ReagentAndSuppliesConfiguration> reagentConfigs = reagentConfigController.GetAll();

            reagentConfigController.UpdateExperimentVolume(experimentID, ref reagentConfigs, new short[] {
                ConsumptionType.consume
            }, ReagentAndSuppliesConfiguration.CurrentVolumeFieldName);
            reagentConfigController.UpdateExperimentVolume(experimentID, ref reagentConfigs, new short[] {
                ConsumptionType.Need
            }, ReagentAndSuppliesConfiguration.NeedVolumeFieldName);
            List <ReagentAndSupply> reagents = reagentController.GetAll(experimentID);
            List <DataModel.Configuration.ReagentSuppliesType> reagentType = Common.Configuration.GetReagentSuppliesTypes();

            foreach (ReagentAndSuppliesConfiguration r in reagentConfigs)
            {
                string itemTypeName = string.Empty;
                string barCode      = string.Empty;
                DataModel.Configuration.ReagentSuppliesType rType = reagentType.FirstOrDefault(P => P.TypeId == r.ItemType.ToString());
                if (rType != null)
                {
                    itemTypeName = rType.TypeName;
                }
                ReagentAndSupply reagent = reagents.FirstOrDefault(P => P.ConfigurationItemID == r.ItemID);
                if (reagent != null)
                {
                    barCode = reagent.BarCode;
                }
                if (r.ItemType == 104 || r.ItemType == 105)
                {
                    dt.Rows.Add(barCode, r.DisplayName, Math.Abs(r.CurrentVolume), r.Unit, itemTypeName);
                }
                else
                {
                    dt.Rows.Add(barCode, r.DisplayName, Math.Abs(r.CurrentVolume), r.Unit, itemTypeName);
                }
            }
            dgReagentSupplies.DataContext = dt.DefaultView;
        }
Пример #5
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);
                    }
                }
            }
        }