Ejemplo n.º 1
0
        /// <summary>
        /// Parses the key/value pair from a node, and adds them to the result.
        /// </summary>
        /// <param name="elem">Element to get info from.</param>
        /// <param name="res">Result object to extract data to.</param>
        private void AddDataToResult(IDomElement elem, OpenGraphData res)
        {
            var key = ParseKeyFromNode(elem);

            if (!res.ContainsKey(key))
            {
                res.Add(key, ParseValueFromNode(elem));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Parses the Open Graph parameters inside the passed html document.
        /// </summary>
        /// <param name="dom">CQ dom.</param>
        /// <returns>OpenGraph data.</returns>
        public OpenGraphData ParseDocument(CQ dom)
        {
            var ret = new OpenGraphData();

            foreach (var elem in this.GetOGElements(dom))
            {
                this.AddDataToResult(elem, ret);
            }

            return(ret);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Maps an EF PageVersion record from the db into an OpenGraphData
        /// object.
        /// </summary>
        /// <param name="dbPageVersion">PageVersion record from the database, must include the OpenGraphImageAsset property.</param>
        public virtual OpenGraphData Map(PageVersion dbPageVersion)
        {
            var result = new OpenGraphData()
            {
                Description = dbPageVersion.OpenGraphDescription,
                Title       = dbPageVersion.OpenGraphTitle
            };

            if (dbPageVersion.OpenGraphImageId.HasValue && dbPageVersion.OpenGraphImageAsset == null)
            {
                throw new Exception($"{nameof(PageVersion)}.{nameof(dbPageVersion.OpenGraphImageAsset)} must be included in the EF query if using {nameof(OpenGraphDataMapper)}. ");
            }

            if (dbPageVersion.OpenGraphImageAsset != null)
            {
                result.Image = _imageAssetRenderDetailsMapper.Map(dbPageVersion.OpenGraphImageAsset);
            }

            return(result);
        }