public virtual bool CurrencyRateSavingTaskExecute(ProcessExecutingContext context) { var changedColumns = Entity.GetChangedColumnValues(); if (changedColumns.Any(c => c.Name == "Rate")) { EntitySchemaColumn rateColumn = Entity.Schema.Columns.FindByName("Rate"); FloatDataValueType dataValueType = rateColumn.DataValueType as FloatDataValueType; decimal currencyRate = Entity.GetTypedColumnValue <decimal>("Rate"); string mantissa = CurrencyRateHelper.GetRateMantissa(currencyRate); Entity.SetColumnValue("RateMantissa", mantissa); Entity.SetColumnValue("Rate", Math.Round(currencyRate, dataValueType.DBPrecision, MidpointRounding.AwayFromZero)); } return(true); }
protected virtual string GetDecimalFormat(FloatDataValueType colType) { var precision = colType.Precision; return(_decimalMaskMajor.PadRight(_decimalMaskMajor.Length + precision, _decimalMaskMinor)); }