public virtual IOperationContext Create(object initialValues)
        {
            var context = new OperationContext();

            StructuredDataHelper.FillDictionaryWithValuesFromObject(initialValues, context.AddOrUpdate);
            if (initialValues != null)
            {
                foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(initialValues))
                {
                    var value = property.GetValue(initialValues);
                    context.AddOrUpdate(property.Name, value);
                }
            }

            return(context);
        }
 public virtual Dictionary <string, object> ToDictionary()
 {
     return(StructuredDataHelper.ObjectToDictionary(this));
 }