Пример #1
0
 /// <summary>
 /// Process each element from <see cref="Elements"/>.
 /// </summary>
 /// <param name="context">Context for processing elements.</param>
 public void Process(ColumnValuesIteratorContext context)
 {
     foreach (var element in Elements)
     {
         element.Process(context);
     }
 }
Пример #2
0
 protected override object InternalTryBoxValue(ColumnValue columnValue,
                                               ColumnValuesIteratorContext context)
 {
     if (bool.TryParse(columnValue.Value?.ToString(), out var boolValue))
     {
         return(boolValue);
     }
     return(null);
 }
Пример #3
0
 protected override object InternalTryBoxValue(ColumnValue columnValue,
                                               ColumnValuesIteratorContext context)
 {
     if (Guid.TryParse(columnValue.Value?.ToString(), out var guidValue) && !Guid.Empty.Equals(guidValue))
     {
         return(guidValue);
     }
     return(null);
 }
Пример #4
0
 public object TryBoxValue(ColumnValue columnValue, ColumnValuesIteratorContext context)
 {
     if (CanProcess(columnValue, context))
     {
         return(InternalTryBoxValue(columnValue, context));
     }
     if (Next != null)
     {
         return(Next.TryBoxValue(columnValue, context));
     }
     return(null);
 }
Пример #5
0
 protected override object InternalTryBoxValue(ColumnValue columnValue,
                                               ColumnValuesIteratorContext context)
 {
     if (!DateTime.TryParse(columnValue.Value?.ToString(), out var dateTimeValue) ||
         dateTimeValue.Equals(DateTime.MinValue))
     {
         return(null);
     }
     if (columnValue.DataValueType is DateTimeDataValueType dateTimeType)
     {
         return(GetValueForDateTimeDataValueType(dateTimeValue, dateTimeType.Kind, context.TimeZoneOffset));
     }
     return(dateTimeValue);
 }
Пример #6
0
 /// <summary>
 /// Deserializes column values from string to typed value boxing in object.
 /// </summary>
 /// <param name="context">Context for processing elements.</param>
 public override void Process(ColumnValuesIteratorContext context)
 {
     foreach (var columnValue in context.ColumnValues)
     {
         if (columnValue.HasMacrosValue)
         {
             continue;
         }
         var boxedResult = Deserializers.TryBoxValue(columnValue, context);
         var result      = new ColumnValueResult(columnValue.ColumnUId)
         {
             Value = boxedResult
         };
         context.Results.Add(columnValue.ColumnUId, result);
     }
 }
Пример #7
0
        /// <summary>
        /// Replaces macro with value in columns.
        /// </summary>
        /// <param name="context"></param>
        public override void Process(ColumnValuesIteratorContext context)
        {
            if (!context.MacrosValues.Any())
            {
                return;
            }
            var columnValues = context.ColumnValues.Where(c => c.HasMacrosValue && !c.IsTextColumn);

            foreach (var columnValue in columnValues)
            {
                var result = new ColumnValueResult(columnValue.ColumnUId);
                if (!string.IsNullOrWhiteSpace(columnValue.Value?.ToString()))
                {
                    var macroValue = context.MacrosValues
                                     .FirstOrDefault(x => x.Alias == columnValue.Value.ToString()).Value;
                    result.Value = macroValue;
                }
                context.Results.Add(columnValue.ColumnUId, result);
            }
        }
        /// <summary>
        /// Replaces macros with values in columns.
        /// </summary>
        /// <param name="context"></param>
        public override void Process(ColumnValuesIteratorContext context)
        {
            if (!context.MacrosValues.Any())
            {
                return;
            }
            var columnValues = context.ColumnValues.Where(c => c.HasMacrosValue && c.IsTextColumn);

            foreach (var columnValue in columnValues)
            {
                var result = new ColumnValueResult(columnValue.ColumnUId);
                if (!string.IsNullOrWhiteSpace(columnValue.Value?.ToString()))
                {
                    var stringBuilder = new StringBuilder(columnValue.Value.ToString());
                    context.MacrosValues
                    .ForEach(macro => {
                        stringBuilder.Replace(macro.Alias, macro.StringValue);
                    });
                    result.Value = stringBuilder.ToString();
                }
                context.Results.Add(columnValue.ColumnUId, result);
            }
        }
Пример #9
0
 protected override bool CanProcess(ColumnValue columnValue, ColumnValuesIteratorContext context)
 => columnValue.IsDateTimeColumn;
Пример #10
0
 protected abstract object InternalTryBoxValue(ColumnValue columnValue, ColumnValuesIteratorContext context);
Пример #11
0
 protected virtual bool CanProcess(ColumnValue columnValue, ColumnValuesIteratorContext context) => false;
Пример #12
0
 protected override object InternalTryBoxValue(ColumnValue columnValue, ColumnValuesIteratorContext context)
 => columnValue.Value?.ToString();