Exemple #1
0
        public void DrawDeskTopInGrid()
        {
            reagentAndSupplies.Clear();

            RotationInfo firstRotation = new ConfigRotationController().GetCurrentRotationInfos(SessionInfo.ExperimentID).FirstOrDefault();

            if (firstRotation == null)
            {
                return;
            }

            isFirstRotation = firstRotation.RotationID == SessionInfo.PraperRotation.RotationID;

            //Binding DataGrid
            Dictionary <short, bool> operationOrders = new OperationController().GetOperationOrders(SessionInfo.PraperRotation.OperationID);

            ReagentSuppliesConfigurationController configController = new ReagentSuppliesConfigurationController();

            reagentAndSupplies = configController.GetReagentAndSuppliesNeeded(operationOrders, SessionInfo.RotationFormulaParameters[SessionInfo.PraperRotation.RotationID]);
            if (!isFirstRotation)
            {
                configController.UpdateExperimentVolume(SessionInfo.ExperimentID, ref reagentAndSupplies, new short[] { ConsumptionType.FirstAdd, ConsumptionType.Add,
                                                                                                                        ConsumptionType.consume }, ReagentAndSuppliesConfiguration.CurrentVolumeFieldName);
                configController.UpdateExperimentTotalNeedConsumptionVolume(SessionInfo.ExperimentID, ref reagentAndSupplies);
                foreach (DataGrid dg in dataGridDictionary.Values)
                {
                    dg.Columns[2].Visibility = Visibility.Visible;
                    dg.Columns[5].Visibility = Visibility.Hidden;
                }
            }

            else
            {
                foreach (DataGrid dg in dataGridDictionary.Values)
                {
                    dg.Columns[2].Visibility = Visibility.Hidden;
                    dg.Columns[5].Visibility = Visibility.Hidden;
                }
            }

            dgSupplies.ItemsSource = reagentAndSupplies.Where(P => (short)P.ItemType >= 100 && (short)P.ItemType < 200).ToList();
            dgReagent.ItemsSource  = reagentAndSupplies.Where(P => (short)P.ItemType == 0).ToList();
            List <ReagentSuppliesType> reagentSuppliesType = Common.Configuration.GetReagentSuppliesTypes();

            foreach (ReagentSuppliesType reagentType in reagentSuppliesType)
            {
                short typeid = Convert.ToInt16(reagentType.TypeId);
                if (0 != typeid && typeid < 100 && typeid % 5 == 0 && dataGridDictionary.ContainsKey(reagentType.TypeName))
                {
                    dataGridDictionary[reagentType.TypeName].ItemsSource = reagentAndSupplies.Where(P => (short)P.ItemType == typeid).OrderByDescending(P => P.Grid);
                }
            }

            //Binding UserControl
            Services.DeskTopService deskTopService = new DeskTopService();
            ViewPlates.Clear();
            ViewPlates = deskTopService.SetReagentPosition(reagentAndSupplies, new CarrierController().GetCarrier(), 0);//create plates

            List <CarrierBase> carriers = deskTopService.GetCarriers(lengthUnit, cooPoint);

            foreach (CarrierBase c in carriers)
            {
                c.UpdatePlate(ViewPlates.FindAll(P => P.ContainerName == c.CarrierName));
                if (c.CarrierName == "001" && !isFirstRotation)
                {
                    List <PlateBase> greenPlate = ViewPlates.FindAll(P => P.ItemType == 101 && (P.DisplayName.Contains("1") || P.DisplayName.Contains("2")));
                    string[]         plateNames = new string[greenPlate.Count];
                    int index = 0;
                    foreach (PlateBase plate in greenPlate)
                    {
                        plateNames[index] = plate.DisplayName;

                        index++;
                    }
                    c.ShiningWithGreen(plateNames);
                }
                if (c.CarrierName == "006")
                {     //labelRotationName.ActualWidth 40       labDiTi1000.ActualWidth 50
                    labDiTi1000.Margin = new Thickness(c.Margin.Left + c.Width / 2 - 50 / 2 - 40 - 10, 0, 0, 0);
                }
                if (c.CarrierName == "007")
                {
                    labDiTi200.Margin = new Thickness(c.Margin.Left + c.Width / 6 * 4 / 2 - 50 / 2 - 10 - labDiTi1000.Margin.Left - 50 - 50, 0, 0, 0);
                }
                DeskTopWithGrid.Children.Add(c);
            }
        }