/// <summary> /// Проверить контракт после сериализации. /// </summary> /// <param name="obj">Исходный объект.</param> /// <returns>Проверенный объект.</returns> public override T ValidateAfterDeserialize(T obj) { obj = base.ValidateAfterDeserialize(obj); if (obj != null) { obj.Thumbnail = ModuleProvider.ValidateAfterDeserialize <PostMediaBase, IPostMediaWithSize, PostMediaExternalContract>(obj.ThumbnailContract); obj.ThumbnailContract = null; } return(obj); }
/// <summary> /// Проверить контракт после сериализации. /// </summary> /// <param name="obj">Исходный объект.</param> /// <returns>Проверенный объект.</returns> public override PostDocument ValidateAfterDeserialize(PostDocument obj) { IPostNode Validate(PostNodeBase n) { return(ModuleProvider.ValidateAfterDeserialize <PostNodeBase, IPostNode, PostNodeExternalContract>(n)); } obj = base.ValidateAfterDeserialize(obj); if (obj != null) { obj.Nodes = obj.NodesContract?.Select(Validate)?.ToList(); obj.NodesContract = null; } return(obj); }
/// <summary> /// Проверить контракт после сериализации. /// </summary> /// <param name="obj">Исходный объект.</param> /// <returns>Проверенный объект.</returns> public override CompositePostNode ValidateAfterDeserialize(CompositePostNode obj) { IPostNode ValidateNode(PostNodeBase node) { return(ModuleProvider.ValidateAfterDeserialize <PostNodeBase, IPostNode, PostNodeExternalContract>(node)); } obj = base.ValidateAfterDeserialize(obj); if (obj != null) { obj.Attribute = ModuleProvider.ValidateAfterDeserialize <PostAttributeBase, IPostAttribute, PostAttributeExternalContract>(obj.AttributeContract); obj.AttributeContract = null; obj.Children = obj.ChildrenContracts?.Select(ValidateNode)?.ToList(); obj.ChildrenContracts = null; } return(obj); }