From 650af0554b902837f8e146d690aca24e4f60ec29 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 31 Dec 2018 14:15:49 +0200 Subject: Removed Default configuration from machine version. Implemented custom ToJson for observables. Implemented Apply & Create prototype machine for machine version. --- .../Visual_Studio/Tango.BL/ObservableEntity.cs | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'Software/Visual_Studio/Tango.BL/ObservableEntity.cs') diff --git a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs index 52ecbbbc5..8ec0b30d6 100644 --- a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs +++ b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs @@ -23,6 +23,8 @@ using System.Xml.Serialization; using Newtonsoft.Json; using Tango.Logging; using System.ComponentModel; +using Tango.Core.Json; +using Newtonsoft.Json.Converters; namespace Tango.BL { @@ -376,6 +378,47 @@ Maybe you have deleted an entity that was no yet inserted into database?", LogCa { return GetDbContextFromEntity(this); } + + public virtual List GetIgnoreProperties() + { + return new List() + { + nameof(this.HasErrors), + nameof(this.Parameters), + nameof(this.DesignMode), + nameof(this.LogManager), + nameof(this.ObjectType), + nameof(this.TemporaryManager), + nameof(this.ValidateOnPropertyChanged), + nameof(this.ValidationErrors), + nameof(this.LastUpdated), + nameof(this.ID), + nameof(this.Guid), + "_entityWrapper", + }; + } + + public static T FromJson(String json) + { + var settings = new JsonSerializerSettings() + { + ContractResolver = new SerializationControllerContractResolver(), + }; + settings.Converters.Add(new StringEnumConverter { CamelCaseText = false }); + return JsonConvert.DeserializeObject(json, settings); + } + + public String ToJson() + { + var settings = new JsonSerializerSettings() + { + ContractResolver = new SerializationControllerContractResolver(), + }; + settings.Converters.Add(new StringEnumConverter { CamelCaseText = false }); + String json = JsonConvert.SerializeObject(this, Formatting.Indented, settings); + return json; + } + #endregion #region Private Methods -- cgit v1.3.1