Beispiel #1
0
        public static bool Compare(DbValue value1, DbValue value2, Comparison comparison)
        {
            var compResult = Compare((value1 != null) ? value1.Value : null, (value2 != null) ? value2.Value : null,
                                     comparison);

            switch (comparison)
            {
            case Comparison.Equal:
                return(compResult == 0);

            case Comparison.NotEqual:
                return(compResult != 0);

            case Comparison.GreaterThan:
                return(compResult > 0);

            case Comparison.GreaterThanOrEqual:
                return(compResult >= 0);

            case Comparison.LessThan:
                return(compResult < 0);

            case Comparison.LessThanOrEqual:
                return(compResult <= 0);

            default:
                throw new ArgumentException("Unknown ComparisonType member.", "comparison");
            }
        }
Beispiel #2
0
 public static object ToDb(this DbValue value)
 {
     return(value != null
         ? value.IsListType
             ? value.PackArray()
             : value.Value
         : null);
 }
Beispiel #3
0
        public static DbValue Sum(DbValue value1, DbValue value2)
        {
            if (value1 == null)
            {
                return(value2);
            }
            if (value2 == null)
            {
                return(value1);
            }

            object v1 = value1.Value, v2 = value2.Value;

            if (v1 is long && v2 is long)
            {
                return((long)value1 + (long)value2);
            }
            if (v1 is long && v2 is decimal)
            {
                return((long)value1 + (decimal)value2);
            }
            if (v1 is long && v2 is double)
            {
                return((long)value1 + (double)value2);
            }
            if (v1 is decimal && v2 is long)
            {
                return((long)value2 + (decimal)value1);
            }
            if (v1 is decimal && v2 is decimal)
            {
                return((decimal)value1 + (decimal)value2);
            }
            if (v1 is decimal && v2 is double)
            {
                return((double)(decimal)value1 + (double)value2);
            }
            if (v1 is double && v2 is long)
            {
                return((long)value2 + (double)value1);
            }
            if (v1 is double && v2 is decimal)
            {
                return((double)value1 + (double)(decimal)value2);
            }
            if (v1 is double && v2 is double)
            {
                return((double)value1 + (double)value2);
            }
            if (v1 is string && v2 is string)
            {
                return((string)value1 + (string)value2);
            }

            throw new InvalidTypeException(value2.Type, Resources.CannotSumTypes.FormatExt(value1.Type, value2.Type));
        }
Beispiel #4
0
 internal Cell(Row row, Column column, DbValue value)
 {
     if (row == null)
     {
         throw new ArgumentNullException("row");
     }
     Row        = row;
     Column     = column;
     ColumnName = Column.Name;
     _value     = value;
 }
Beispiel #5
0
 private void Update(DbValue newValue)
 {
     if (_value == newValue)
     {
         return;
     }
     if (Column != null)
     {
         CheckType(newValue);
     }
     if (Row != null && Row.IsAttached)
     {
         var sql = UpdateSql.FormatExt(Row.Table.Name, ColumnName, ParamName);
         Row.Table.Database.Connection.ExecuteNonQuery(sql, new SQLiteParameter(ColumnName, newValue.ToDb()),
                                                       new SQLiteParameter("RowId", Row.RowId));
     }
     _value = newValue;
 }
Beispiel #6
0
 private void CheckType(DbValue value)
 {
     if (value == null && Column.IsNullable == false)
     {
         throw new InvalidTypeException(null, Resources.CannotBeNull.FormatExt(Column.Name));
     }
     if (value != null)
     {
         if (Column.Quantity == ColumnQuantity.List && !value.IsListType)
         {
             throw new InvalidTypeException(value.Type,
                                            Resources.ShouldBeListType.FormatExt(Column.Name, value.Type));
         }
         if (Column.Quantity == ColumnQuantity.Single && value.IsListType)
         {
             throw new InvalidTypeException(value.Type,
                                            Resources.ShouldBeSingleType.FormatExt(Column.Name, value.Type));
         }
     }
 }
 public void Add(Column column, DbValue value)
 {
     Add(new Cell(column, value));
 }
 public void Add(string columnName, DbValue value)
 {
     Add(new Cell(columnName, value));
 }
Beispiel #9
0
 public Cell(string columnName, DbValue value) : this(columnName)
 {
     Value = value;
 }
Beispiel #10
0
 public Cell(Column column, DbValue value) : this(column)
 {
     Value = value;
 }
Beispiel #11
0
 internal void SetExistingValue(DbValue value)
 {
     _value = value;
 }