public GenericPropertyCollection Clone() { var properties = new GenericPropertyCollection(); foreach (var item in this) { properties.Add(item.Clone()); } return(properties); }
public void CopyTo(GenericPropertyCollection properties) { foreach (var sourceProperty in this) { foreach (var targetProperty in properties) { if (sourceProperty.Equals(targetProperty)) { targetProperty.Value = sourceProperty.Value; break; } } } }
public static Dictionary <string, object> GetDictionaryFromCollection(GenericPropertyCollection collection) { var result = new Dictionary <string, object>(); foreach (var property in collection) { if (property.Value != property.DefaultValue) { result.Add(property.Name, property.Value); } } return(result); }
public GenericPropertyCollection GetPropertiesByScope(string scopeName) { var result = new GenericPropertyCollection(); foreach (var item in this) { if (item.ScopeName == scopeName) { result.Add(item); } } return(result); }
public static GenericPropertyCollection SetDictionaryIntoCollection(GenericPropertyCollection collection, Dictionary <string, object> dictionary) { var result = collection.Clone(); foreach (var key in dictionary.Keys) { if (result.Contains(key)) { result.Set(key, dictionary[key]); } } return(result); }
public static void DeserializePropertiesFromObject(GenericPropertyCollection propertyCollection, JObject jObject) { foreach (var property in propertyCollection) { if (jObject[property.Name] != null) { switch (property.Type) { case GenericPropertyType.String: case GenericPropertyType.Path: property.Value = JObjectHelper.GetString(jObject, property.Name); break; case GenericPropertyType.Integer: property.Value = JObjectHelper.GetInt32(jObject, property.Name); break; case GenericPropertyType.Decimal: property.Value = JObjectHelper.GetDouble(jObject, property.Name); break; case GenericPropertyType.Boolean: property.Value = JObjectHelper.GetBoolean(jObject, property.Name); break; case GenericPropertyType.Enumeration: property.Value = JObjectHelper.GetString(jObject, property.Name); break; case GenericPropertyType.Guid: property.Value = JObjectHelper.GetGuid(jObject, property.Name); break; case GenericPropertyType.Color: property.Value = JObjectHelper.GetColor(jObject, property.Name); break; case GenericPropertyType.Point: var x = JObjectHelper.GetInt32(jObject, "x"); var y = JObjectHelper.GetInt32(jObject, "y"); property.Value = new Point(x, y); break; case GenericPropertyType.Size: var width = JObjectHelper.GetInt32(jObject, "width"); var height = JObjectHelper.GetInt32(jObject, "height"); property.Value = new Size(width, height); break; case GenericPropertyType.Rectangle: var x_ = JObjectHelper.GetInt32(jObject, "x"); var y_ = JObjectHelper.GetInt32(jObject, "y"); var width_ = JObjectHelper.GetInt32(jObject, "width"); var height_ = JObjectHelper.GetInt32(jObject, "height"); property.Value = new Rectangle(x_, y_, width_, height_); break; case GenericPropertyType.DateTime: var valueStr = JObjectHelper.GetString(jObject, property.Name, DateTime.UtcNow.ToString("o")); property.Value = DateTime.Parse(valueStr); break; case GenericPropertyType.Version: var versionStr = JObjectHelper.GetString(jObject, property.Name); property.Value = new Version(versionStr); break; default: break; } } } }
public static JArray SerializeFromDictionaryToJArray(GenericPropertyCollection propertyCollection, Dictionary <string, object> dictionary) { var jArray = new JArray(); foreach (var property in propertyCollection) { if (dictionary.ContainsKey(property.Name)) { var jObject = new JObject(); jObject["name"] = property.Name; object value = dictionary[property.Name]; switch (property.Type) { case Enum.GenericPropertyType.String: case Enum.GenericPropertyType.Path: jObject["value"] = Convert.ToString(value); break; case Enum.GenericPropertyType.Integer: jObject["value"] = Convert.ToInt32(value); break; case Enum.GenericPropertyType.Decimal: jObject["value"] = Convert.ToDouble(value); break; case Enum.GenericPropertyType.Boolean: jObject["value"] = Convert.ToBoolean(value); break; case Enum.GenericPropertyType.Enumeration: jObject["value"] = Convert.ToString(value); break; case Enum.GenericPropertyType.Guid: jObject["value"] = Convert.ToString(value); break; case Enum.GenericPropertyType.Color: jObject["value"] = ColorHelper.ToHtml((Color)value, true); break; case Enum.GenericPropertyType.Point: var point = (Point)value; jObject["value"] = new JObject() { ["x"] = point.X, ["y"] = point.Y }; break; case Enum.GenericPropertyType.Size: var size = (Size)value; jObject["value"] = new JObject() { ["width"] = size.Width, ["height"] = size.Height }; break; case Enum.GenericPropertyType.Rectangle: var rectangle = (Rectangle)value; jObject["value"] = new JObject() { ["x"] = rectangle.X, ["y"] = rectangle.Y, ["width"] = rectangle.Width, ["height"] = rectangle.Height }; break; case Enum.GenericPropertyType.DateTime: var dateTime = (DateTime)value; var dateTimeUtc = dateTime.ToUniversalTime(); jObject["value"] = dateTimeUtc.ToString("o"); break; case Enum.GenericPropertyType.Version: var version = (Version)value; jObject["value"] = version.ToString(3); break; default: break; } jArray.Add(jObject); } } return(jArray); }
public static Dictionary <string, object> DeserializeFromJArrayToDictionary(GenericPropertyCollection propertyCollection, JArray jArray) { var result = new Dictionary <string, object>(); foreach (var property in propertyCollection) { foreach (JObject jObjectProperty in jArray) { var propertyName = JObjectHelper.GetString(jObjectProperty, "name"); if (!string.IsNullOrEmpty(propertyName) && propertyName == property.Name) { switch (property.Type) { case Enum.GenericPropertyType.String: case Enum.GenericPropertyType.Path: result.Add(propertyName, JObjectHelper.GetString(jObjectProperty, "value")); break; case Enum.GenericPropertyType.Integer: result.Add(propertyName, JObjectHelper.GetInt32(jObjectProperty, "value")); break; case Enum.GenericPropertyType.Decimal: result.Add(propertyName, JObjectHelper.GetDouble(jObjectProperty, "value")); break; case Enum.GenericPropertyType.Boolean: result.Add(propertyName, JObjectHelper.GetBoolean(jObjectProperty, "value")); break; case Enum.GenericPropertyType.Enumeration: result.Add(propertyName, JObjectHelper.GetString(jObjectProperty, "value")); break; case Enum.GenericPropertyType.Guid: result.Add(propertyName, JObjectHelper.GetGuid(jObjectProperty, "value")); break; case Enum.GenericPropertyType.Color: result.Add(propertyName, JObjectHelper.GetColor(jObjectProperty, "value")); break; case Enum.GenericPropertyType.Point: var x = JObjectHelper.GetInt32(jObjectProperty, "x"); var y = JObjectHelper.GetInt32(jObjectProperty, "y"); result.Add(propertyName, new Point(x, y)); break; case Enum.GenericPropertyType.Size: var width = JObjectHelper.GetInt32(jObjectProperty, "width"); var height = JObjectHelper.GetInt32(jObjectProperty, "height"); result.Add(propertyName, new Size(width, height)); break; case Enum.GenericPropertyType.Rectangle: var x_ = JObjectHelper.GetInt32(jObjectProperty, "x"); var y_ = JObjectHelper.GetInt32(jObjectProperty, "y"); var width_ = JObjectHelper.GetInt32(jObjectProperty, "width"); var height_ = JObjectHelper.GetInt32(jObjectProperty, "height"); result.Add(propertyName, new Rectangle(x_, y_, width_, height_)); break; case Enum.GenericPropertyType.DateTime: var valueStr = JObjectHelper.GetString(jObjectProperty, "value", DateTime.UtcNow.ToString("o")); result.Add(propertyName, DateTime.Parse(valueStr)); break; case Enum.GenericPropertyType.Version: var versionStr = JObjectHelper.GetString(jObjectProperty, "value"); result.Add(propertyName, new Version(versionStr)); break; default: break; } break; } } } return(result); }
public static JObject SerializePropertiesToObject(GenericPropertyCollection propertyCollection) { var jObject = new JObject(); foreach (var property in propertyCollection) { var propertyName = property.Name; switch (property.Type) { case GenericPropertyType.String: case GenericPropertyType.Path: jObject[propertyName] = Convert.ToString(property.Value); break; case GenericPropertyType.Integer: jObject[propertyName] = Convert.ToInt32(property.Value); break; case GenericPropertyType.Decimal: jObject[propertyName] = Convert.ToDouble(property.Value); break; case GenericPropertyType.Boolean: jObject[propertyName] = Convert.ToBoolean(property.Value); break; case GenericPropertyType.Enumeration: jObject[propertyName] = Convert.ToString(property.Value); break; case GenericPropertyType.Guid: jObject[propertyName] = Convert.ToString(property.Value); break; case GenericPropertyType.Color: jObject[propertyName] = ColorHelper.ToHtml((Color)property.Value, true); break; case GenericPropertyType.Point: var point = (Point)property.Value; jObject[propertyName] = new JObject() { ["x"] = point.X, ["y"] = point.Y }; break; case GenericPropertyType.Size: var size = (Size)property.Value; jObject[propertyName] = new JObject() { ["width"] = size.Width, ["height"] = size.Height }; break; case GenericPropertyType.Rectangle: var rectangle = (Rectangle)property.Value; jObject[propertyName] = new JObject() { ["x"] = rectangle.X, ["y"] = rectangle.Y, ["width"] = rectangle.Width, ["height"] = rectangle.Height }; break; case GenericPropertyType.DateTime: var dateTime = (DateTime)property.Value; var dateTimeUtc = dateTime.ToUniversalTime(); jObject[propertyName] = dateTimeUtc.ToString("o"); break; case GenericPropertyType.Version: var version = (Version)property.Value; jObject[propertyName] = version.ToString(3); break; default: break; } } return(jObject); }