Example #1
0
 /// <summary>
 /// Generate extended fields for the specified storage.
 /// </summary>
 /// <param name="storage">Extended info <see cref="Message.ExtensionInfo"/> storage.</param>
 /// <returns>Extended fields.</returns>
 public static FieldMapping[] CreateExtendedFields(IExtendedInfoStorageItem storage)
 {
     return(storage
            .Fields
            .Select(t => (FieldMapping) new FieldMapping <SecurityMessage, object>($"{nameof(SecurityMessage.ExtensionInfo)}[{t.Item1}]", t.Item1, string.Empty, (s, v) => s.ExtensionInfo[t.Item1] = v, true))
            .ToArray());
 }
Example #2
0
        private IExtendedInfoStorageItem GetStorage()
        {
            if (_storage == null)
            {
                lock (_sync)
                {
                    if (_storage == null)
                    {
                        _storage = _extendedInfoStorage.Create(_storageName, _fields);
                    }
                }
            }

            return(_storage);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MessageAdapterWrapper"/>.
 /// </summary>
 /// <param name="innerAdapter">Underlying adapter.</param>
 /// <param name="storage">Extended info <see cref="Message.ExtensionInfo"/> storage.</param>
 public ExtendedInfoStorageMessageAdapter(IMessageAdapter innerAdapter, IExtendedInfoStorageItem storage)
     : base(innerAdapter)
 {
     Storage = storage;
 }