diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-01-07 16:06:38 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-01-07 16:06:38 +0200 |
| commit | e111c33bc87acf40202f9e5423e21b087a366f07 (patch) | |
| tree | fac6d85ec3589620b1daea9a9f740a2120b0ca10 /Software/Visual_Studio/Tango.BL/ObservableEntity.cs | |
| parent | 6da42fd28ffbb680d85bb9e695520713ff51022a (diff) | |
| download | Tango-e111c33bc87acf40202f9e5423e21b087a366f07.tar.gz Tango-e111c33bc87acf40202f9e5423e21b087a366f07.zip | |
Added new events !!!
Diffstat (limited to 'Software/Visual_Studio/Tango.BL/ObservableEntity.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.BL/ObservableEntity.cs | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs index bee94552e..b59ba8925 100644 --- a/Software/Visual_Studio/Tango.BL/ObservableEntity.cs +++ b/Software/Visual_Studio/Tango.BL/ObservableEntity.cs @@ -381,6 +381,10 @@ Maybe you have deleted an entity that was no yet inserted into database?", LogCa return GetDbContextFromEntity(this); } + #endregion + + #region Serialization + public virtual EntitySerializationStrategy GetDefaultSerializationStrategy(EntitySerializationFlags flags) { EntitySerializationStrategy st = new EntitySerializationStrategy(); @@ -474,35 +478,26 @@ Maybe you have deleted an entity that was no yet inserted into database?", LogCa return ToJson(new EntitySerializationStrategy(), EntitySerializationFlags.IgnoreReferenceTypes | EntitySerializationFlags.Indented); } - public void PopulateFromJson(string json) + public void PopulateFromJson(string json, EntitySerializationStrategy serializationStrategy, EntitySerializationFlags flags) { - //JsonCobnve - - //JObject from = JObject.Parse(json); - //JObject entity = new JObject(this); - //from.Merge() - - //Person p = new Person() - //{ - // Age = 30, - // Name = "Roy", - //}; + var settings = new JsonSerializerSettings() + { + ContractResolver = new SerializableEntityContractResolver(serializationStrategy, flags), + }; - //Person p2 = new Person(); - //p2.Adderess = new Address() - //{ - // City = "Gan Yavne", - // Street = "Yohanan" - //}; + if (flags.HasFlag(EntitySerializationFlags.PreserveReferencesHandling)) + { + settings.PreserveReferencesHandling = PreserveReferencesHandling.All; + } - //String j1 = JsonConvert.SerializeObject(p); - //String j2 = JsonConvert.SerializeObject(p2); + settings.Converters.Add(new StringEnumConverter { CamelCaseText = false }); - //JsonConvert.PopulateObject(j2, p, new JsonSerializerSettings() - //{ - // NullValueHandling = NullValueHandling.Ignore, + JsonConvert.PopulateObject(json, this, settings); + } - //}); + public void PopulateFromJson(string json) + { + PopulateFromJson(json, new EntitySerializationStrategy(), EntitySerializationFlags.PreserveReferencesHandling); } #endregion |
