Пример #1
0
                /// <summary>
                /// Признак актуальности даты/времени
                /// </summary>
                /// <param name="indxCell">Номер(индекс) столбца</param>
                /// <param name="dtChecked">Значение даты/времени для проверки</param>
                /// <returns>Признак актуальности</returns>
                protected override INDEX_CELL_STATE isRelevanceDateTime(int iColumn, DateTime dtChecked)
                {
                    INDEX_CELL       indxCell = (INDEX_CELL)iColumn;
                    INDEX_CELL_STATE stateRes = INDEX_CELL_STATE.OK;

                    TimeSpan tsDifference = SERVER_TIME - dtChecked;

                    if (tsDifference.TotalSeconds > 0)
                    {
                        switch (indxCell)
                        {
                        case INDEX_CELL.DATETIME_VALUE:
                        case INDEX_CELL.DATETIME_VERIFICATION:
                            stateRes = (tsDifference.TotalMinutes > 3) ?
                                       (tsDifference.TotalMinutes > 9) ?
                                       INDEX_CELL_STATE.ERROR :
                                       INDEX_CELL_STATE.WARNING :
                                       INDEX_CELL_STATE.OK;
                            break;

                        default:
                            break;
                        }
                    }
                    else
                    {
                        // оставить 'OK' (дата/время обновления новее, чем время сервера)
                        ;
                    }

                    return(stateRes);
                }
Пример #2
0
                /// <summary>
                /// Признак актуальности даты/времени
                /// </summary>
                /// <param name="indxCell">Номер(индекс) столбца</param>
                /// <param name="dtChecked">Значение даты/времени для проверки</param>
                /// <returns>Признак актуальности</returns>
                private INDEX_CELL_STATE isRelevanceDateTime(INDEX_CELL indxCell, DateTime dtChecked)
                {
                    INDEX_CELL_STATE stateRes = INDEX_CELL_STATE.ERROR;

                    TimeSpan tsDifference = SERVER_TIME - dtChecked;

                    if (tsDifference.TotalSeconds > 0)
                    {
                        switch (indxCell)
                        {
                        case INDEX_CELL.DATETIME_VALUE:
                        case INDEX_CELL.DATETIME_VERIFICATION:
                            stateRes = (tsDifference.TotalMinutes > 3) ?
                                       (tsDifference.TotalMinutes > 9) ?
                                       INDEX_CELL_STATE.ERROR :
                                       INDEX_CELL_STATE.WARNING :
                                       INDEX_CELL_STATE.OK;
                            break;

                        default:
                            break;
                        }
                    }
                    else
                    {
                        // оставить 'ERROR'
                        ;
                    }

                    return(stateRes);
                }
Пример #3
0
                    /// <summary>
                    /// Признак актуальности даты/времени
                    /// </summary>
                    /// <param name="indxCell">Номер(индекс) столбца</param>
                    /// <param name="dtChecked">Значение даты/времени для проверки</param>
                    /// <returns>Признак актуальности</returns>
                    protected override INDEX_CELL_STATE isRelevanceDateTime(int iColumn, DateTime dtChecked)
                    {
                        INDEX_CELL indxCell = (INDEX_CELL)iColumn;
                        INDEX_CELL_STATE stateRes = INDEX_CELL_STATE.OK;

                        TimeSpan tsDifference = SERVER_TIME - dtChecked;

                        if (tsDifference.TotalSeconds > 0)
                            switch (indxCell)
                            {
                                case INDEX_CELL.DATETIME_VALUE:
                                    stateRes = (tsDifference.TotalMinutes > 76) ?
                                        (tsDifference.TotalMinutes > 121) ?
                                            INDEX_CELL_STATE.ERROR :
                                                INDEX_CELL_STATE.WARNING :
                                                    INDEX_CELL_STATE.OK;
                                    break;
                                case INDEX_CELL.DATETIME_VERIFICATION:
                                    stateRes = (tsDifference.TotalMinutes > 3) ?
                                        (tsDifference.TotalMinutes > 9) ?
                                            INDEX_CELL_STATE.ERROR :
                                                INDEX_CELL_STATE.WARNING :
                                                    INDEX_CELL_STATE.OK;
                                    break;
                                default:
                                    break;
                            }
                        else
                            // оставить 'OK'
                            ;

                        return stateRes;
                    }
Пример #4
0
 /// <summary>
 /// Конструктор основной (без параметров)
 /// </summary>
 public DataGridViewDiagnosticTaskRow() : base()
 {
     //_states = new CELL_STATES((int)INDEX_CELL.COUNT);
     m_cell_states = new INDEX_CELL_STATE[(int)INDEX_CELL.COUNT];
 }
Пример #5
0
                public void SetValueCells(object [] values)
                {
                    object           value;
                    INDEX_CELL_STATE indxState           = INDEX_CELL_STATE.ERROR;
                    Color            clrCell             = Color.Empty;
                    bool             enableValuePrevious = Enabled;

                    foreach (INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL)))
                    {
                        try {
                            if (((int)i < values.Length) &&
                                (!(values[(int)i] == null))
                                //&& (string.IsNullOrEmpty((string)values[(int)i]) == false)
                                )
                            {
                                indxState = INDEX_CELL_STATE.ERROR;
                                clrCell   = s_CellState[(int)INDEX_CELL_STATE.OK].m_Color;

                                switch (i)
                                {
                                case INDEX_CELL.COUNT:
                                    continue;

                                case INDEX_CELL.NAME:
                                    value = null;
                                    break;

                                //case INDEX_CELL.STATE:
                                //    indxState = ((string)values[(int)i])?.Equals(1.ToString()) == true ?
                                //        INDEX_CELL_STATE.OK :
                                //            INDEX_CELL_STATE.ERROR;
                                //    value = s_CellState[(int)indxState].m_Text;
                                //    clrCell = s_CellState[(int)indxState].m_Color;
                                //    break;
                                //case INDEX_CELL.DATETIME_VALUE:
                                case INDEX_CELL.DATETIME_VERIFICATION:
                                    value = values[(int)i] is DateTime?
                                            formatDateTime((DateTime)values[(int)i]) :
                                                values[(int)i];

                                    clrCell = s_CellState[(int)isRelevanceDateTime((int)i, (DateTime)values[(int)i])].m_Color;
                                    break;

                                case INDEX_CELL.VALUE:
                                    value   = values[(int)i];
                                    clrCell = s_CellState[(int)isRelevanceValue((int)i, (double)values[(int)i])].m_Color;
                                    break;

                                default:
                                    indxState = /*((string)values[(int)i])?.Equals(EtalonPBR) ==*/ true ?
                                                INDEX_CELL_STATE.OK :
                                                INDEX_CELL_STATE.ERROR;
                                    value = values[(int)i];
                                    break;
                                }

                                if (!(value == null))
                                {
                                    Cells [(int)i].Value = value;
                                }
                                else
                                {
                                    ;
                                }

                                // изменить цвет ячейки
                                SetStyleCell((int)i, clrCell);
                            }
                            else
                            {
                                ; // значение == null
                            }
                        } catch (Exception e) {
                            Logging.Logg().Exception(e, @"PanelTask.DataGridViewDbRow::SetValueCells () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                        }
                    } // INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL))
                }
Пример #6
0
                    /// <summary>
                    /// Установить значения в ячейках
                    /// </summary>
                    /// <param name="values">Значения</param>
                    public void SetValueCells(object[] values)
                    {
                        object           value;
                        INDEX_CELL_STATE indxState = INDEX_CELL_STATE.ERROR;
                        Color            clrCell   = Color.Empty;
                        //Доступно предыдущее значение
                        bool enableValuePrevious = Enabled
                                                   // Признак необходимости замены значения в ячейке
                        , bCellValueChanged;

                        //Для каждого параметра (столбца) в перечислении INDEX_CELL
                        foreach (INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL)))
                        {
                            try {
                                if (((int)i < values.Length) &&
                                    (!(values[(int)i] == null))
                                    //&& (string.IsNullOrEmpty((string)values[(int)i]) == false)
                                    )
                                {
                                    bCellValueChanged = true;
                                    //Связь=ошибка, цвет ячейки=пусто
                                    indxState = INDEX_CELL_STATE.ERROR;
                                    clrCell   = s_CellState[(int)INDEX_CELL_STATE.OK].m_Color;

                                    switch (i)
                                    {
                                    case INDEX_CELL.NAME_GTP:
                                    case INDEX_CELL.COUNT:
                                        bCellValueChanged = false;
                                        value             = null;
                                        break;

                                    case INDEX_CELL.STATE:
                                        // ???Если значение равно строковому типу, то статус ОК, иначе ERROR
                                        indxState = ((string)values[(int)i])?.Equals(1.ToString()) == true ?
                                                    INDEX_CELL_STATE.OK :
                                                    INDEX_CELL_STATE.ERROR;
                                        value   = s_CellState[(int)indxState].m_Text;
                                        clrCell = s_CellState[(int)indxState].m_Color;
                                        break;

                                    case INDEX_CELL.DATETIME_VALUE:
                                    case INDEX_CELL.DATETIME_VERIFICATION:
                                        value = values[(int)i] is DateTime?
                                                formatDateTime((DateTime)values[(int)i]) :
                                                    values[(int)i];

                                        clrCell = s_CellState[(int)isRelevanceDateTime((int)i, (DateTime)values[(int)i])].m_Color;
                                        break;

                                    case INDEX_CELL.VALUE:     //Крайнее значение (ПБРномер)
                                        // Если значение равно эталонному ПБР (на текущее время), то статус ОК, иначе ERROR
                                        value     = values[(int)i];
                                        indxState = (TecViewStandard.GetValidatePBR((string)value) == true) ?
                                                    INDEX_CELL_STATE.OK :
                                                    INDEX_CELL_STATE.ERROR;
                                        clrCell = s_CellState [(int)indxState].m_Color;
                                        break;

                                    default:
                                        value = values[(int)i];
                                        break;
                                    }

                                    if (bCellValueChanged == true)
                                    {
                                        Cells [(int)i].Value = value;
                                    }
                                    else
                                    {
                                        ;
                                    }

                                    // изменить цвет ячейки
                                    SetStyleCell((int)i, clrCell);
                                }
                                else
                                {
                                    ; // значение == null
                                }
                                //Если возникнет исключение, обработчик исключений установит сообщение "Не установлено"
                            } catch (Exception e) {
                                Logging.Logg().Exception(e, @"PanelContainerModes.PanelModes.DataGridViewGTPRow::SetValueCells () - ...", Logging.INDEX_MESSAGE.NOT_SET);
                            }
                        } // INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL))
                    }