/// <summary>
        /// Get required colour for the cell
        /// </summary>
        /// <param name="state">COBieAttributeState</param>
        /// <returns>string</returns>
        private string GetCellColour(COBieAttributeState state)
        {
            switch (state)
            {
            case COBieAttributeState.Required_PrimaryKey:
            case COBieAttributeState.Required_CompoundKeyPart:
            case COBieAttributeState.Required_Information:
                return("Yellow");

            case COBieAttributeState.Required_Multi_PrimaryKey:
            case COBieAttributeState.Required_Reference_PrimaryKey:
            case COBieAttributeState.Required_Reference_ForeignKey:
            case COBieAttributeState.Required_Reference_PickList:
                return("Puce");

            case COBieAttributeState.Required_PrimaryKey_IfSpecified:
            case COBieAttributeState.Required_System:
            case COBieAttributeState.Required_System_IfSpecified:
                return("Purple");

            case COBieAttributeState.Required_IfSpecified:
                return("Green");

            default:
                return("White");
            }
        }
Example #2
0
        /// <summary>
        /// Validate the row columns against the attributes set for each column
        /// </summary>
        public void ValidateFields(ICOBieSheetValidationTemplate SheetValidator)
        {
            int r = 0;

            foreach (T row in Rows)
            {
                r++;
                for (int col = 0; col < row.RowCount; col++)
                {
                    var cell = row[col];
                    COBieAttributeState state = cell.COBieColumn.AttributeState;
                    var errorLevel            = COBieError.ErrorLevels.Warning;

                    if (SheetValidator != null && SheetValidator.IsRequired.ContainsKey(col) && SheetValidator.IsRequired[col])
                    {
                        // Override required state based on validation template
                        if ((SheetValidator.IsRequired.ContainsKey(col) && SheetValidator.IsRequired[col]))
                        {
                            errorLevel = COBieError.ErrorLevels.Error;
                            switch (state)
                            {
                            case COBieAttributeState.Required_IfSpecified:
                                state = COBieAttributeState.Required_Information;
                                break;

                            case COBieAttributeState.Required_System_IfSpecified:
                                state = COBieAttributeState.Required_System;
                                break;

                            case COBieAttributeState.Required_PrimaryKey_IfSpecified:
                                state = COBieAttributeState.Required_PrimaryKey;
                                break;

                            default:
                                break;
                            }
                        }
                    }

                    COBieError errNull = GetCobieFieldNullError(row[col], state, errorLevel, SheetName, r, col, row.InitialRowHashValue);
                    if (errNull != null)
                    {
                        _errors.Add(errNull);
                    }
                    else //passed null check so check format
                    {
                        errNull = GetCOBieFieldOutOfBoundsError(row[col], state, errorLevel, SheetName, r, col, row.InitialRowHashValue);
                        if (errNull != null)
                        {
                            _errors.Add(errNull);
                        }
                        errNull = GetCOBieFieldFormatError(row[col], state, errorLevel, SheetName, r, col, row.InitialRowHashValue);
                        if (errNull != null)
                        {
                            _errors.Add(errNull);
                        }
                    }
                }
            }
        }
Example #3
0
 public COBieAttributes(int order, COBieKeyType keyType, string referenceColumnName, COBieAttributeState state, string columnName, int maxLength, COBieAllowedType allowedType, COBieCardinality cardinality = COBieCardinality.OneToMany)
 {
     _state = state;
     _maxLength = maxLength;
     _allowedType = allowedType;
     _order = order;
     _columnName = columnName;
     _keyType = keyType;
     _referenceColumnName = referenceColumnName;
     _cardinality = cardinality;
 }
Example #4
0
 public COBieAttributes(int order, COBieKeyType keyType, string referenceColumnName, COBieAttributeState state, string columnName, int maxLength, COBieAllowedType allowedType, COBieCardinality cardinality = COBieCardinality.OneToMany)
 {
     _state               = state;
     _maxLength           = maxLength;
     _allowedType         = allowedType;
     _order               = order;
     _columnName          = columnName;
     _keyType             = keyType;
     _referenceColumnName = referenceColumnName;
     _cardinality         = cardinality;
 }
Example #5
0
        /// <summary>
        /// Check for Field format length
        /// </summary>
        /// <param name="cell">COBieCell</param>
        /// <param name="sheetName">Sheet name</param>
        /// <param name="row">Row index</param>
        /// <param name="col">Column index</param>
        /// <param name="initialRowHash">Initial row hash value</param>
        /// <returns>COBieError or null</returns>
        public COBieError GetCOBieFieldOutOfBoundsError(COBieCell cell, COBieAttributeState state, COBieError.ErrorLevels errorLevel, string sheetName, int row, int col, string initialRowHash)
        {
            COBieError err = new COBieError(sheetName, cell.COBieColumn.ColumnName, "", COBieError.ErrorTypes.None, COBieError.ErrorLevels.None, initialRowHash, col, row);

            int maxLength = cell.COBieColumn.ColumnLength;

            if (cell.CellValue.Length > maxLength)
            {
                err.ErrorDescription = String.Format(ErrorDescription.Value_Out_of_Bounds, maxLength);
                err.ErrorType        = COBieError.ErrorTypes.Value_Out_of_Bounds;
                err.ErrorLevel       = errorLevel; // GetErroLevel(cell.COBieColumn.AttributeState);
                err.FieldValue       = cell.CellValue;
                return(err);
            }
            return(null);
        }
Example #6
0
        /// <summary>
        /// Get ErrorLevel base on the COBieAttributeState Attribute
        /// </summary>
        /// <param name="state">COBieAttributeState</param>
        /// <returns>COBieError.ErrorLevels enumeration</returns>
        public COBieError.ErrorLevels GetErrorLevel(COBieAttributeState state)
        {
            switch (state)
            {
            case COBieAttributeState.Required_PrimaryKey:
            case COBieAttributeState.Required_CompoundKeyPart:
            case COBieAttributeState.Required_Reference_ForeignKey:
            case COBieAttributeState.Required_Reference_PrimaryKey:
            case COBieAttributeState.Required_Reference_PickList:
            case COBieAttributeState.Required_Information:
                return(COBieError.ErrorLevels.Error);

            case COBieAttributeState.Required_System:
            case COBieAttributeState.Required_IfSpecified:
            case COBieAttributeState.Required_System_IfSpecified:
            case COBieAttributeState.Required_PrimaryKey_IfSpecified:
                return(COBieError.ErrorLevels.Warning);

            default:
                break;
            }
            return(COBieError.ErrorLevels.None);
        }
Example #7
0
        /// <summary>
        /// check for Field format Error in passed cell
        /// </summary>
        /// <param name="cell">COBieCell</param>
        /// <param name="sheetName">Sheet name</param>
        /// <param name="row">Row index</param>
        /// <param name="col">Column index</param>
        /// <param name="initialRowHash">Initial row hash value</param>
        /// <returns>COBieError or null</returns>
        public COBieError GetCOBieFieldFormatError(COBieCell cell, COBieAttributeState state, COBieError.ErrorLevels errorLevel, string sheetName, int row, int col, string initialRowHash)
        {
            COBieError err = new COBieError(sheetName, cell.COBieColumn.ColumnName, "", COBieError.ErrorTypes.None, COBieError.ErrorLevels.None, initialRowHash, col, row);


            int maxLength = cell.COBieColumn.ColumnLength;
            COBieAllowedType allowedType = cell.COBieColumn.AllowedType;

            if ((state == COBieAttributeState.Required_IfSpecified) ||
                (state == COBieAttributeState.Required_System) ||
                (state == COBieAttributeState.Required_System_IfSpecified)
                ) //if a required value but marked as n/a then do not class as error
            {
                if (cell.CellValue == Constants.DEFAULT_STRING)
                {
                    return(null);
                }
            }

            //check cell.COBieColumn.AllowedType for format errors
            switch (allowedType)
            {
            case COBieAllowedType.AlphaNumeric:
                if (!cell.IsAlphaNumeric())
                {
                    err.ErrorDescription = ErrorDescription.AlphaNumeric_Value_Expected;
                    err.ErrorType        = COBieError.ErrorTypes.AlphaNumeric_Value_Expected;
                }
                break;

            case COBieAllowedType.Email:
                if (!cell.IsEmailAddress())
                {
                    err.ErrorDescription = ErrorDescription.ISODate_Value_Expected;
                    err.ErrorType        = COBieError.ErrorTypes.ISODate_Value_Expected;
                }
                break;

            case COBieAllowedType.ISODate:
            case COBieAllowedType.ISODateTime:
                if (!cell.IsDateTime())
                {
                    err.ErrorDescription = ErrorDescription.ISODate_Value_Expected;
                    err.ErrorType        = COBieError.ErrorTypes.ISODate_Value_Expected;
                }
                break;

            case COBieAllowedType.Numeric:
                if (!cell.IsNumeric())
                {
                    err.ErrorDescription = ErrorDescription.Numeric_Value_Expected;
                    err.ErrorType        = COBieError.ErrorTypes.Numeric_Value_Expected;
                }
                break;

            case COBieAllowedType.AnyType:
            case COBieAllowedType.Text:
                if (!cell.IsText())
                {
                    err.ErrorDescription = ErrorDescription.Text_Value_Expected;
                    err.ErrorType        = COBieError.ErrorTypes.Text_Value_Expected;
                }
                break;

            default:
                break;
            }
            if (err.ErrorType != COBieError.ErrorTypes.None)
            {
                err.FieldValue = cell.CellValue;
                if (err.ErrorLevel == COBieError.ErrorLevels.None) //if set above, just in case we do set above
                {
                    err.ErrorLevel = errorLevel;
                }
                return(err);
            }
            return(null);
        }
Example #8
0
        /// <summary>
        /// Validating of the column COBieAttributeState attributes for null or n/a values
        /// </summary>
        /// <param name="cell">COBieCell</param>
        /// <param name="sheetName">Sheet name</param>
        /// <param name="row">Row index</param>
        /// <param name="col">Column index</param>
        /// <param name="initialRowHash">Initial row hash value</param>
        /// <returns>COBieError or null</returns>
        private COBieError GetCobieFieldNullError(COBieCell cell, COBieAttributeState state, COBieError.ErrorLevels errorLevel, string sheetName, int row, int col, string initialRowHash)
        {
            COBieError err = new COBieError(sheetName, cell.COBieColumn.ColumnName, "", COBieError.ErrorTypes.None, COBieError.ErrorLevels.None, initialRowHash, col, row);

            if ((string.IsNullOrEmpty(cell.CellValue)) ||
                (cell.CellValue == Constants.DEFAULT_STRING)
                )
            {
                switch (state)
                {
                case COBieAttributeState.Required_PrimaryKey:
                case COBieAttributeState.Required_CompoundKeyPart:
                    err.ErrorDescription = ErrorDescription.PrimaryKey_Violation;
                    err.ErrorType        = COBieError.ErrorTypes.PrimaryKey_Violation;
                    err.ErrorLevel       = errorLevel;
                    break;

                case COBieAttributeState.Required_Information:
                case COBieAttributeState.Required_System:
                    switch (cell.COBieColumn.AllowedType)
                    {
                    case COBieAllowedType.AlphaNumeric:
                        err.ErrorDescription = ErrorDescription.AlphaNumeric_Value_Expected;
                        err.ErrorType        = COBieError.ErrorTypes.AlphaNumeric_Value_Expected;
                        break;

                    case COBieAllowedType.Email:
                        err.ErrorDescription = ErrorDescription.Email_Value_Expected;
                        err.ErrorType        = COBieError.ErrorTypes.Email_Value_Expected;
                        break;

                    case COBieAllowedType.ISODateTime:
                    case COBieAllowedType.ISODate:
                        err.ErrorDescription = ErrorDescription.ISODate_Value_Expected;
                        err.ErrorType        = COBieError.ErrorTypes.ISODate_Value_Expected;
                        break;

                    case COBieAllowedType.Numeric:
                        err.ErrorDescription = ErrorDescription.Numeric_Value_Expected;
                        err.ErrorType        = COBieError.ErrorTypes.Numeric_Value_Expected;
                        break;

                    case COBieAllowedType.AnyType:
                    case COBieAllowedType.Text:
                        err.ErrorDescription = ErrorDescription.Text_Value_Expected;
                        err.ErrorType        = COBieError.ErrorTypes.Text_Value_Expected;
                        break;

                    default:
                        err.ErrorDescription = ErrorDescription.Text_Value_Expected;
                        err.ErrorType        = COBieError.ErrorTypes.Text_Value_Expected;
                        break;
                    }
                    err.ErrorLevel = errorLevel;
                    //err.ErrorLevel = COBieError.ErrorLevels.Warning; //set as a warning
                    break;

                case COBieAttributeState.Required_Reference_PrimaryKey:
                case COBieAttributeState.Required_Reference_PickList:
                case COBieAttributeState.Required_Reference_ForeignKey:
                    err.ErrorDescription = ErrorDescription.Null_ForeignKey_Value;
                    err.ErrorType        = COBieError.ErrorTypes.Null_ForeignKey_Value;
                    err.ErrorLevel       = errorLevel;
                    break;

                case COBieAttributeState.Required_IfSpecified:
                case COBieAttributeState.Required_System_IfSpecified:
                case COBieAttributeState.Required_PrimaryKey_IfSpecified:
                    if (cell.CellValue == Constants.DEFAULT_STRING)
                    {
                        return(null);    //if a required value but not required in validation template then do not class as error
                    }
                    break;

                default:
                    return(null);
                }
                if (err.ErrorType != COBieError.ErrorTypes.None)
                {
                    err.FieldValue = cell.CellValue;
                    return(err);
                }
            }
            return(null);
        }
 /// <summary>
 /// Get required colour for the cell
 /// </summary>
 /// <param name="state">COBieAttributeState</param>
 /// <returns>string</returns>
 private string GetCellColour(COBieAttributeState state)
 {
     switch (state)
     {
         case COBieAttributeState.Required_PrimaryKey:
         case COBieAttributeState.Required_CompoundKeyPart:
         case COBieAttributeState.Required_Information:
             return "Yellow";
         case COBieAttributeState.Required_Multi_PrimaryKey:
         case COBieAttributeState.Required_Reference_PrimaryKey:
         case COBieAttributeState.Required_Reference_ForeignKey:
         case COBieAttributeState.Required_Reference_PickList:
             return "Puce";
         case COBieAttributeState.Required_PrimaryKey_IfSpecified:
         case COBieAttributeState.Required_System:
         case COBieAttributeState.Required_System_IfSpecified:
             return "Purple";
         case COBieAttributeState.Required_IfSpecified:
             return "Green";
         default:
             return "White";
     }
     
 }
Example #10
0
 public COBieAttributes(COBieAttributeState state)
 {
     _state = state;
 }
Example #11
0
 public COBieAttributes(COBieAttributeState state)
 {
     _state = state;
 }