コード例 #1
0
 public void ToReplaceSafeHandlesAllValues(ColumnValueType value)
 {
     Assert.DoesNotThrow(() =>
     {
         value.ToReplaceSafe();
     });
 }
コード例 #2
0
        public static string ToReplaceSafe(this ColumnValueType valueType)
        {
            switch (valueType)
            {
            case ColumnValueType.String:
            case ColumnValueType.StringTrimmed:
                return("string");

            case ColumnValueType.Int:
                return("int");

            case ColumnValueType.Long:
                return("long");

            case ColumnValueType.Float:
                return("float");

            case ColumnValueType.Double:
                return("double");

            case ColumnValueType.Bool:
                return("bool");

            default:
                throw new ArgumentOutOfRangeException(nameof(valueType), valueType, null);
            }
        }
コード例 #3
0
        public void GetCellValueHandlesAllValues(ColumnValueType valueType)
        {
            Assert.DoesNotThrow(() =>
            {
                var cellType = GetCellType(valueType);
                var cell     = CreateCellMock(cellType);

                CellValueParser.GetCellValue(cell, valueType);
            });
        }
コード例 #4
0
        private static ICollection <Pair <IExpression, IAstNode> > GetExpressionSet(ColumnValueType map, object value)
        {
            if (map == null || map.IsEmpty())
            {
                return(new HashSet <Pair <IExpression, IAstNode> >());
            }

            var set = map.GetValue(value);

            return(set ?? new HashSet <Pair <IExpression, IAstNode> >());
        }
コード例 #5
0
        public static object GetCellValue(ICell cell, ColumnValueType cellType)
        {
            object cellValue = null;

            if (cell == null || cell.CellType == CellType.Blank)
            {
                throw new ArgumentException("Cell cannot be NULL or EMPTY");
            }

            switch (cellType)
            {
            case ColumnValueType.String:
                cellValue = cell.StringCellValue;
                break;

            case ColumnValueType.StringTrimmed:
                cellValue = cell.StringCellValue.Trim();
                break;

            case ColumnValueType.Int:
                cellValue = (int)cell.NumericCellValue;
                break;

            case ColumnValueType.Long:
                cellValue = (long)cell.NumericCellValue;
                break;

            case ColumnValueType.Float:
                cellValue = (float)ParseNumericValue(cell);
                break;

            case ColumnValueType.Double:
                cellValue = ParseNumericValue(cell);
                break;

            case ColumnValueType.Bool:
                cellValue = cell.BooleanCellValue;
                break;

            default:
                throw new ArgumentOutOfRangeException($"No operation defined for field type {cellType}");
            }

            if (cellValue == null)
            {
                throw new ArgumentException("Field cannot be NULL");
            }

            return(cellValue);
        }
コード例 #6
0
        private void AddIntoColumnValueIndex(ColumnValueType valMap,
                                             object value,
                                             IExpression expr,
                                             IAstNode parent)
        {
            var exprSet = value == null ? null : valMap.GetValue(value);

            if (exprSet == null)
            {
                exprSet = new HashSet <Pair <IExpression, IAstNode> >();
                valMap[value ?? Null_Alias_Key] = exprSet;
            }
            var pair = new Pair <IExpression, IAstNode>(expr, parent);

            exprSet.Add(pair);
        }
コード例 #7
0
 /// <summary>
 /// Returns the color hex value that represents the specified <paramref name="columnValueType"/>
 /// </summary>
 /// <param name="columnValueType">The column value type</param>
 /// <returns></returns>
 public static string ToColorHex(this ColumnValueType columnValueType)
 {
     if (columnValueType == ColumnValueType.Text)
     {
         return(Blue);
     }
     else if (columnValueType == ColumnValueType.Number)
     {
         return(Green);
     }
     else if (columnValueType == ColumnValueType.DateTime)
     {
         return(Red);
     }
     else
     {
         return(RoyalPurple);
     }
 }
コード例 #8
0
 /// <summary>
 /// Returns a localized string that represents the specified <paramref name="columnValueType"/>
 /// </summary>
 /// <param name="columnValueType">The column value type</param>
 /// <returns></returns>
 public static string ToLocalizedString(this ColumnValueType columnValueType)
 {
     if (columnValueType == ColumnValueType.Text)
     {
         return("Text");
     }
     else if (columnValueType == ColumnValueType.Number)
     {
         return("Number");
     }
     else if (columnValueType == ColumnValueType.DateTime)
     {
         return("Date time");
     }
     else
     {
         return("Other");
     }
 }
コード例 #9
0
        private CellType GetCellType(ColumnValueType valueType)
        {
            switch (valueType)
            {
            case ColumnValueType.String:
            case ColumnValueType.StringTrimmed:
                return(CellType.String);

            case ColumnValueType.Int:
            case ColumnValueType.Long:
            case ColumnValueType.Float:
            case ColumnValueType.Double:
                return(CellType.Numeric);

            case ColumnValueType.Bool:
                return(CellType.Boolean);

            default:
                throw new ArgumentOutOfRangeException(nameof(valueType), valueType, null);
            }
        }
コード例 #10
0
        public static IValueChecked Create(ColumnValueType valueType)
        {
            switch (valueType)
            {
            case ColumnValueType.Eval:
                return(EvalValueChecked.Instance);

            case ColumnValueType.IsIn:
                return(IsInValueChecked.Instance);

            case ColumnValueType.Equlas:
                return(EqualValueChecked.Instance);

            case ColumnValueType.LenChecked:
                return(LengthValueChecked.Instance);

            case ColumnValueType.MinMaxChecked:
                return(MinMaxValueChecked.Instance);
            }

            return(null);
        }
コード例 #11
0
 /// <summary>
 /// 构造一个布尔类型的列值。
 /// </summary>
 /// <param name="value"></param>
 public ColumnValue(bool value)
 {
     Type         = ColumnValueType.Boolean;
     BooleanValue = value;
 }
コード例 #12
0
 /// <summary>
 /// 构造一个二进制串类型的列值。
 /// </summary>
 /// <param name="value"></param>
 public ColumnValue(byte[] value)
 {
     Type        = ColumnValueType.Binary;
     BinaryValue = value;
 }
コード例 #13
0
 public ExcelColumn(string name, ColumnValueType type)
 {
     Name = name;
     Type = type;
 }
コード例 #14
0
 /// <summary>
 /// 构造一个整数类型的列值。
 /// </summary>
 /// <param name="value"></param>
 public ColumnValue(Int64 value)
 {
     Type         = ColumnValueType.Integer;
     IntegerValue = value;
 }
コード例 #15
0
 /// <summary>
 /// 构造一个浮点类型的列值。
 /// </summary>
 /// <param name="value"></param>
 public ColumnValue(double value)
 {
     Type        = ColumnValueType.Double;
     DoubleValue = value;
 }
コード例 #16
0
 public ColumnValue(ulong value)
 {
     Type         = ColumnValueType.Integer;
     IntegerValue = (Int64)value;
 }
コード例 #17
0
 /// <summary>
 /// 构造一个字符串类型的列值。
 /// </summary>
 /// <param name="value"></param>
 public ColumnValue(string value)
 {
     Type        = ColumnValueType.String;
     StringValue = value;
 }