Exemple #1
0
 private async void RefreshComputersTimerCallback(object state)
 {
     try
     {
         await rgvComputersList.RefreshDataSourceAsync(await MQueryCommand.SelectShopComputersServerViewGridAsync());
     }
     catch (Exception ex)
     {
         MLogger.Error($"Ошибка обновления таблицы rgvComputersList в таймере RefreshComputersTimer. Original: {ex.ToString()}");
     }
     finally
     {
         _refreshComputersTimer.Change(GRIDS_REFRESH_TIMEOUT, System.Threading.Timeout.Infinite);
     }
 }
Exemple #2
0
        private async void btnRefreshGrid_Click(object sender, EventArgs e)
        {
            var button = sender as Button;

            button.Enabled = false;
            rgvComputersForSheduler.ShowLoading(true);
            try
            {
                await rgvComputersForSheduler.RefreshDataSourceAsync(await MQueryCommand.SelectShopComputersServerViewGridAsync());
            }
            finally
            {
                button.Enabled = true;
                rgvComputersForSheduler.ShowLoading(false);
            }
        }
Exemple #3
0
        private async Task InitComputersShedulerGridAsync()
        {
            await rgvComputersForSheduler.ShowLoading(true);

            try
            {
                rgvComputersForSheduler.KeyField    = "ComputerId";
                rgvComputersForSheduler.PaintCells += PaintComputersForShedulerGrid;
                rgvComputersForSheduler.dataGridView.CellPainting += DataGridView_CellPainting;

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

                rgvComputersForSheduler.HideColumns("Phone",
                                                    "AddressToConnect",
                                                    "LastSuccessfulReceive",
                                                    "LastSuccessfulUpload",
                                                    "ExchangeError",
                                                    "IsMainCashbox",
                                                    "OperationTypeRu",
                                                    "OperationCreationDate",
                                                    "OperState");

                rgvComputersForSheduler.HideColumns("Is1CServer", "IsMainCashbox", "IsClosed");

                const string SHOW_ADDITIONAL_COLUMNS = "Показать дополнительные столбцы";
                const string HIDE_ADDITIONAL_COLUMNS = "Скрыть дополнительные столбцы";
                string[]     additionalColumns       = new string[]
                {
                    "LastError",
                    "External_IP"
                };
                rgvComputersForSheduler.HideColumns(additionalColumns);
                var miShowHideColumns = new ToolStripMenuItem();
                miShowHideColumns.Name   = "miShowHideColumns";
                miShowHideColumns.Text   = SHOW_ADDITIONAL_COLUMNS;
                miShowHideColumns.Click += (sender, e) =>
                {
                    if (miShowHideColumns.Text == SHOW_ADDITIONAL_COLUMNS)
                    {
                        miShowHideColumns.Text = HIDE_ADDITIONAL_COLUMNS;
                        rgvComputersForSheduler.ShowColumns(additionalColumns);
                    }
                    else
                    {
                        miShowHideColumns.Text = SHOW_ADDITIONAL_COLUMNS;
                        rgvComputersForSheduler.HideColumns(additionalColumns);
                    }
                };
                rgvComputersForSheduler.AddMenuItem(miShowHideColumns);

                this.rgvComputersForSheduler.CbSelectAllVisible = true;

                rgvComputersForSheduler.dataGridView.Columns["ShopName"].Width = 150;
                rgvComputersForSheduler.dataGridView.Columns["Selected"].Width = 70;
                rgvComputersForSheduler.dataGridView.Columns["IsOn"].Width     = 70;

                btnRefreshGrid.Enabled = true;
            }
            finally
            {
                await rgvComputersForSheduler.ShowLoading(false);
            }
        }
Exemple #4
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;
                        }
                    }
                }
            }
        }