Exemple #1
0
        private void PaintComputersForShedulerGrid(DataGridView sender)
        {
            DataGridViewRow[] rows = sender.Rows.OfType <DataGridViewRow>().ToArray();
            foreach (DataGridViewRow dr in rows)
            {
                if (LastAgentVersionChecker.CompareVersions(Convert.ToString(dr.Cells["MagicUpdaterVersion"].Value)) == VersionCompareResult.Before)
                {
                    dr.Cells["MagicUpdaterVersion"].Style.BackColor = Color.Pink;
                }

                if (LastAgentVersionChecker.CompareVersions(Convert.ToString(dr.Cells["MagicUpdaterVersion"].Value)) == VersionCompareResult.Equal)
                {
                    dr.Cells["MagicUpdaterVersion"].Style.BackColor = Color.LightGreen;
                }

                if (LastAgentVersionChecker.CompareVersions(Convert.ToString(dr.Cells["MagicUpdaterVersion"].Value)) == VersionCompareResult.Subsequent)
                {
                    dr.Cells["MagicUpdaterVersion"].Style.BackColor = Color.DeepSkyBlue;
                }

                if (Convert.ToInt32(dr.Cells["ComputerId"].Value) < 0)
                {
                    dr.Cells["Selected"].ReadOnly = true;
                    foreach (DataGridViewCell cell in dr.Cells)
                    {
                        cell.Style.BackColor = Color.LightGray;
                    }
                }

                //Включен или нет
                if (Convert.ToInt32(dr.Cells["IsOn"].Value) == 1)
                {
                    dr.Cells["IsOn"].Style.BackColor = Color.Green;
                }
                else
                {
                    dr.Cells["IsOn"].Style.BackColor = Color.Red;
                }

                //Ошибка обмена
                if (Convert.ToBoolean(dr.Cells["ExchangeError"].Value) &&
                    string.IsNullOrEmpty(Convert.ToString(dr.Cells["OperState"].Value)) &&
                    Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                {
                    dr.Cells["ShopName"].Style.BackColor =
                        dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                            dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                dr.Cells["OperationTypeRu"].Style.BackColor           =
                                    dr.Cells["OperationCreationDate"].Style.BackColor =
                                        dr.Cells["OperState"].Style.BackColor         = Color.PaleVioletRed;
                }

                //Статусы операций
                #region OperStates
                if (Convert.ToString(dr.Cells["OperState"].Value) == "Завершена с ошибкой" && Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                {
                    dr.Cells["ShopName"].Style.BackColor =
                        dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                            dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                dr.Cells["OperationTypeRu"].Style.BackColor           =
                                    dr.Cells["OperationCreationDate"].Style.BackColor =
                                        dr.Cells["OperState"].Style.BackColor         = Color.PaleVioletRed;
                }
                else if (Convert.ToString(dr.Cells["OperState"].Value) == "Выполняется" && Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                {
                    dr.Cells["ShopName"].Style.BackColor =
                        dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                            dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                dr.Cells["OperationTypeRu"].Style.BackColor           =
                                    dr.Cells["OperationCreationDate"].Style.BackColor =
                                        dr.Cells["OperState"].Style.BackColor         = Color.LightYellow;
                }
                else if (Convert.ToString(dr.Cells["OperState"].Value) == "Завершена успешно" && Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                {
                    dr.Cells["ShopName"].Style.BackColor =
                        dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                            dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                dr.Cells["OperationTypeRu"].Style.BackColor           =
                                    dr.Cells["OperationCreationDate"].Style.BackColor =
                                        dr.Cells["OperState"].Style.BackColor         = Color.FromArgb(215, 255, 220);
                }
                #endregion OperStates

                //Заливаем белым
                if (!Convert.ToBoolean(dr.Cells["ExchangeError"].Value) &&
                    string.IsNullOrEmpty(Convert.ToString(dr.Cells["OperState"].Value)) &&
                    Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                {
                    dr.Cells["ShopName"].Style.BackColor =
                        dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                            dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                dr.Cells["OperationTypeRu"].Style.BackColor           =
                                    dr.Cells["OperationCreationDate"].Style.BackColor =
                                        dr.Cells["OperState"].Style.BackColor         = Color.White;
                }
            }
        }
Exemple #2
0
        private async Task InitComputersListGridAsync()
        {
            rgvComputersList.KeyField = "ComputerId";

            rgvComputersList.PaintCells += (sender) =>
            {
                #region PaintCells
                DataGridViewRow[] rows = sender.Rows.OfType <DataGridViewRow>().ToArray();
                foreach (DataGridViewRow dr in rows)
                {
                    if (LastAgentVersionChecker.CompareVersions(Convert.ToString(dr.Cells["MagicUpdaterVersion"].Value)) == VersionCompareResult.Before)
                    {
                        dr.Cells["MagicUpdaterVersion"].Style.BackColor = Color.Pink;
                    }

                    if (LastAgentVersionChecker.CompareVersions(Convert.ToString(dr.Cells["MagicUpdaterVersion"].Value)) == VersionCompareResult.Equal)
                    {
                        dr.Cells["MagicUpdaterVersion"].Style.BackColor = Color.LightGreen;
                    }

                    if (LastAgentVersionChecker.CompareVersions(Convert.ToString(dr.Cells["MagicUpdaterVersion"].Value)) == VersionCompareResult.Subsequent)
                    {
                        dr.Cells["MagicUpdaterVersion"].Style.BackColor = Color.DeepSkyBlue;
                    }

                    if (Convert.ToInt32(dr.Cells["ComputerId"].Value) < 0)
                    {
                        dr.Cells["Selected"].ReadOnly = true;
                        foreach (DataGridViewCell cell in dr.Cells)
                        {
                            cell.Style.BackColor = Color.LightGray;
                        }
                    }

                    //Включен или нет
                    if (Convert.ToInt32(dr.Cells["IsOn"].Value) == 1)
                    {
                        dr.Cells["IsOn"].Style.BackColor = Color.Green;
                    }
                    else
                    {
                        dr.Cells["IsOn"].Style.BackColor = Color.Red;
                    }

                    //Ошибка обмена
                    if (Convert.ToBoolean(dr.Cells["ExchangeError"].Value) &&
                        string.IsNullOrEmpty(Convert.ToString(dr.Cells["OperState"].Value)) &&
                        Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                    {
                        dr.Cells["ShopName"].Style.BackColor =
                            dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                                dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                    dr.Cells["OperationTypeRu"].Style.BackColor           =
                                        dr.Cells["OperationCreationDate"].Style.BackColor =
                                            dr.Cells["OperState"].Style.BackColor         = Color.PaleVioletRed;
                    }

                    //Статусы операций
                    #region OperStates
                    if (Convert.ToString(dr.Cells["OperState"].Value) == "Завершена с ошибкой" && Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                    {
                        dr.Cells["ShopName"].Style.BackColor =
                            dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                                dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                    dr.Cells["OperationTypeRu"].Style.BackColor           =
                                        dr.Cells["OperationCreationDate"].Style.BackColor =
                                            dr.Cells["OperState"].Style.BackColor         = Color.PaleVioletRed;
                    }
                    else if (Convert.ToString(dr.Cells["OperState"].Value) == "Выполняется" && Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                    {
                        dr.Cells["ShopName"].Style.BackColor =
                            dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                                dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                    dr.Cells["OperationTypeRu"].Style.BackColor           =
                                        dr.Cells["OperationCreationDate"].Style.BackColor =
                                            dr.Cells["OperState"].Style.BackColor         = Color.LightYellow;
                    }
                    else if (Convert.ToString(dr.Cells["OperState"].Value) == "Завершена успешно" && Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                    {
                        dr.Cells["ShopName"].Style.BackColor =
                            dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                                dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                    dr.Cells["OperationTypeRu"].Style.BackColor           =
                                        dr.Cells["OperationCreationDate"].Style.BackColor =
                                            dr.Cells["OperState"].Style.BackColor         = Color.FromArgb(215, 255, 220);
                    }
                    #endregion OperStates

                    //Заливаем белым
                    if (!Convert.ToBoolean(dr.Cells["ExchangeError"].Value) &&
                        string.IsNullOrEmpty(Convert.ToString(dr.Cells["OperState"].Value)) &&
                        Convert.ToInt32(dr.Cells["ComputerId"].Value) > 0)
                    {
                        dr.Cells["ShopName"].Style.BackColor =
                            dr.Cells["LastSuccessfulReceive"].Style.BackColor             =
                                dr.Cells["LastSuccessfulUpload"].Style.BackColor          =
                                    dr.Cells["OperationTypeRu"].Style.BackColor           =
                                        dr.Cells["OperationCreationDate"].Style.BackColor =
                                            dr.Cells["OperState"].Style.BackColor         = Color.White;
                    }
                }
                #endregion
            };
            rgvComputersList.dataGridView.CellPainting += (sender, e) =>
            {
                #region CellPainting
                DataGridView dgv = sender as DataGridView;
                if (dgv == null)
                {
                    return;
                }

                if (e.ColumnIndex == 0 && e.RowIndex > -1)
                {
                    if (Convert.ToInt32(dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value) == 1)
                    {
                        foreach (DataGridViewCell cell in dgv.Rows[e.RowIndex].Cells)
                        {
                            cell.Style.Font = new Font(SystemFonts.DefaultFont, FontStyle.Bold);
                        }
                    }
                    else
                    {
                        foreach (DataGridViewCell cell in dgv.Rows[e.RowIndex].Cells)
                        {
                            cell.Style.Font = new Font(SystemFonts.DefaultFont, FontStyle.Regular);
                        }
                    }
                }
                #endregion
            };


            rgvComputersList.MappingColumns = Mapping.ComputersGridColMap;
            rgvComputersList.DataSource     = await MQueryCommand.SelectShopComputersServerViewGridAsync();

            rgvComputersList.BaseFilter = "IsClosed = false";
            rgvComputersList.dataGridView.RowHeadersVisible = false;
            //rgvComputersList.HideColumns("Is1CServer", "IsMainCashbox", "IsClosed");

            rgvComputersList.HideColumns("Is1CServer"
                                         , "IsMainCashbox"
                                         , "IsClosed"
                                         , "External_IP"
                                         , "LastSuccessfulUpload"
                                         , "LastSuccessfulReceive"
                                         , "OperationTypeRu"
                                         , "OperState"
                                         , "LastErrorString"
                                         , "MagicUpdaterVersion"
                                         , "OperationCreationDate");

            rgvComputersList.dataGridView.Columns["Selected"].Width   = 50;
            rgvComputersList.dataGridView.Columns["IsOnBitmap"].Width = 50;

            #region rgvComputersListContextMenuAdd
            //Показать/скрыть дополнительные поля
            const string SHOW_ADDITIONAL_COLUMNS = "Показать дополнительные столбцы";
            const string HIDE_ADDITIONAL_COLUMNS = "Скрыть дополнительные столбцы";
            string[]     additionalColumns       = new string[]
            {
                "ComputerId",
                "LastError",
                "External_IP",
                "ComputerName"
            };
            rgvComputersList.HideColumns(additionalColumns);
            var miShowHideColumns = new ToolStripMenuItem();
            miShowHideColumns.Name   = "miShowHideColumns";
            miShowHideColumns.Text   = SHOW_ADDITIONAL_COLUMNS;
            miShowHideColumns.Image  = Images.plus;
            miShowHideColumns.Click += (sender, e) =>
            {
                if (miShowHideColumns.Text == SHOW_ADDITIONAL_COLUMNS)
                {
                    miShowHideColumns.Text = HIDE_ADDITIONAL_COLUMNS;
                    rgvComputersList.ShowColumns(additionalColumns);
                    miShowHideColumns.Image = Images.minus;
                }
                else
                {
                    miShowHideColumns.Text = SHOW_ADDITIONAL_COLUMNS;
                    rgvComputersList.HideColumns(additionalColumns);
                    miShowHideColumns.Image = Images.plus;
                }
            };
            rgvComputersList.AddMenuItem(miShowHideColumns);
            #endregion rgvComputersListContextMenuAdd

            rgvComputersList.CbSelectAllVisible = true;

            if (_taskId > 0)
            {
                List <int> computersId = _shedulerTask.ShedulerTasksComputersLists.Select(s => s.ComputerId).ToList();

                if (rgvComputersList.dataGridView.Columns["Selected"].Visible)
                {
                    foreach (DataGridViewRow row in rgvComputersList.dataGridView.Rows)
                    {
                        if (computersId.Contains(Convert.ToInt32(row.Cells[rgvComputersList.KeyField].Value)))
                        {
                            row.Cells["Selected"].Value = true;
                        }
                    }
                }
            }
        }