/// <summary>
 /// Проверить контракт перед сериализацией.
 /// </summary>
 /// <param name="obj">Исходный объект.</param>
 /// <returns>Проверенный объект.</returns>
 public override T ValidateContract(T obj)
 {
     obj = base.ValidateContract(obj);
     if (obj != null)
     {
         obj.ThumbnailContract = ModuleProvider.ValidateBeforeSerialize <IPostMediaWithSize, PostMediaBase, PostMediaExternalContract>(obj.Thumbnail);
     }
     return(obj);
 }
예제 #2
0
        /// <summary>
        /// Проверить контракт перед сериализацией.
        /// </summary>
        /// <param name="obj">Исходный объект.</param>
        /// <returns>Проверенный объект.</returns>
        public override PostDocument ValidateContract(PostDocument obj)
        {
            PostNodeBase Validate(IPostNode n)
            {
                return(ModuleProvider.ValidateBeforeSerialize <IPostNode, PostNodeBase, PostNodeExternalContract>(n));
            }

            obj = base.ValidateContract(obj);
            if (obj != null)
            {
                obj.NodesContract = obj.Nodes?.Select(Validate)?.ToList();
            }
            return(obj);
        }
예제 #3
0
        /// <summary>
        /// Проверить контракт перед сериализацией.
        /// </summary>
        /// <param name="obj">Исходный объект.</param>
        /// <returns>Проверенный объект.</returns>
        public override CompositePostNode ValidateContract(CompositePostNode obj)
        {
            PostNodeBase ValidateNode(IPostNode node)
            {
                return(ModuleProvider.ValidateBeforeSerialize <IPostNode, PostNodeBase, PostNodeExternalContract>(node));
            }

            obj = base.ValidateContract(obj);
            if (obj != null)
            {
                obj.ChildrenContracts = obj.Children?.Select(ValidateNode)?.ToList();
                obj.AttributeContract = ModuleProvider.ValidateBeforeSerialize <IPostAttribute, PostAttributeBase, PostAttributeExternalContract>(obj.Attribute);
            }
            return(obj);
        }