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); } }