17 using System.Collections.Generic;
19 using System.Linq.Expressions;
20 using System.Reflection;
32 private static readonly MethodInfo SetPropertyMethodInfo = typeof(
DynamicData).GetMethod(
"SetProperty");
33 private static readonly MethodInfo GetPropertyMethodInfo = typeof(
DynamicData).GetMethod(
"GetProperty");
35 private readonly IDictionary<string, object> _storage =
new Dictionary<string, object>();
53 name = name.LazyToLower();
57 if (value is PyObject pyobject)
59 Time = pyobject.As<DateTime>();
63 Time = (DateTime)value;
66 else if (name ==
"endtime" || name ==
"end_time")
68 if (value is PyObject pyobject)
70 EndTime = pyobject.As<DateTime>();
77 else if (name ==
"value")
79 if (value is PyObject pyobject)
81 Value = pyobject.As<decimal>();
85 Value = (decimal)value;
88 else if (name ==
"symbol")
96 if (value is PyObject pyobject)
107 _storage[name] = value;
118 name = name.ToLowerInvariant();
125 if (name ==
"endtime")
133 if (name ==
"symbol")
143 if (!_storage.TryGetValue(name, out value))
146 throw new KeyNotFoundException(
147 $
"Property with name \'{name}\' does not exist. Properties: Time, Symbol, Value {string.Join(",
", _storage.Keys)}"
162 return _storage.ContainsKey(name.ToLowerInvariant());
185 foreach (var kvp
in _storage)
188 clone._storage.Add(kvp);