internal LogicTransactionObjectParam[] AddParams(IBaseObject obj, LogValueType recordType, BaseContext context)
 {
     return(obj.EnumerateObjectParams(context)
            .Select(p =>
     {
         p.RecordType = recordType;
         return AddParam(p);
     })
            .ToArray());
 }
        IEnumerable <LogicTransactionObjectParam> EnumerateParams(IBaseObject obj, LogValueType recordType, BaseContext context)
        {
            var rtc = recordType.GetFirstLetter();

            return(obj.EnumerateObjectParams(context)
                   .Select(p =>
            {
                p.RecordType = recordType;
                return p;
            }));
        }
 internal void AddNewParams(IBaseObject obj, BaseContext context)
 {
     foreach (var newParam in obj.EnumerateObjectParams(null))
     {
         var oldParam = Params.FirstOrDefault(p => p.RecordTypeChar.Equals(oldParamChar) && p.ParamName.Equals(newParam.ParamName, StringComparison.Ordinal));
         if (oldParam != null && oldParam.ValueEquals(newParam))
         {
             this.Params.Remove(oldParam);
         }
         else
         {
             newParam.RecordType = LogValueType.New;
             this.Params.Add(newParam);
         }
     }
     FixParamsIid(context);
 }