public virtual int Sign(object value) { StorageType storageType = DataStorageHelper.GetStorageType(value.GetType()); if (!DataStorageHelper.IsInteger(storageType)) { if (!DataStorageHelper.IsNumeric(storageType)) { throw InvalidExpressionException.ArgumentTypeInteger(nameof(Sign), 1); } try { return(Math.Sign((Decimal)value)); } catch (Exception ex) { return(Math.Sign((double)value)); } } else { try { return(Math.Sign((int)value)); } catch (Exception ex) { return(Math.Sign((long)value)); } } }
public virtual object Min(object value1, object value2) { StorageType storageType1 = DataStorageHelper.GetStorageType(value1.GetType()); StorageType storageType2 = DataStorageHelper.GetStorageType(value2.GetType()); if (DataStorageHelper.IsInteger(storageType1)) { if (DataStorageHelper.IsInteger(storageType2)) { try { return((object)Math.Min((int)value1, (int)value2)); } catch (Exception ex) { return((object)Math.Min((long)value1, (long)value2)); } } } if (DataStorageHelper.IsNumeric(storageType1)) { if (DataStorageHelper.IsNumeric(storageType2)) { try { return((object)Math.Min((Decimal)value1, (Decimal)value2)); } catch (Exception ex) { return((object)Math.Min((double)value1, (double)value2)); } } } throw InvalidExpressionException.ArgumentTypeInteger(nameof(Min), 1); }
public virtual object Min(object value1, object value2) { StorageType storageType1 = DataStorageHelper.GetStorageType(value1.GetType()); StorageType storageType2 = DataStorageHelper.GetStorageType(value2.GetType()); if (!(DataStorageHelper.IsInteger(storageType1) && DataStorageHelper.IsInteger(storageType2))) { if (!(DataStorageHelper.IsNumeric(storageType1) && DataStorageHelper.IsNumeric(storageType2))) { throw InvalidExpressionException.ArgumentTypeInteger("Min", 1); } try { return(Math.Min((decimal)value1, (decimal)value2)); } catch (Exception) { return(Math.Min((double)value1, (double)value2)); } } try { return(Math.Min((int)value1, (int)value2)); } catch (Exception) { return(Math.Min((long)value1, (long)value2)); } }
public virtual object Abs(object value) { if (value == null || DBNull.Value == value) { return((object)null); } StorageType storageType = DataStorageHelper.GetStorageType(value.GetType()); if (!DataStorageHelper.IsInteger(storageType)) { if (!DataStorageHelper.IsNumeric(storageType)) { throw InvalidExpressionException.ArgumentTypeInteger(nameof(Abs), 1); } try { return((object)Math.Abs((Decimal)value)); } catch (Exception ex) { return((object)Math.Abs((double)value)); } } else { try { return((object)Math.Abs((int)value)); } catch (Exception ex) { return((object)Math.Abs((long)value)); } } }
public virtual object Abs(object value) { if (null == value || DBNull.Value == value) { return(null); } StorageType storageType = DataStorageHelper.GetStorageType(value.GetType()); if (!DataStorageHelper.IsInteger(storageType)) { if (!DataStorageHelper.IsNumeric(storageType)) { throw InvalidExpressionException.ArgumentTypeInteger("Abs", 1); } try { return(Math.Abs((decimal)value)); } catch (Exception /*e*/) { return(Math.Abs((double)value)); } } try { return(Math.Abs((int)value)); } catch (Exception /*e*/) { return(Math.Abs((long)value)); } }