Exemplo n.º 1
0
        public void SetDynamicMeta(MetaInfo objMeta, JsonLDBaseInfo jsonLDInfo, IHttpContextAccessor _httpContextAccessor)
        {
            string     MetaHtml   = CreateMetaTagsHtml(objMeta);
            string     JSONLD     = CreateJsonLD(jsonLDInfo);
            string     metatags   = MetaHtml + JSONLD;
            CoreHelper coreHelper = new CoreHelper();

            coreHelper.SetHttpContextItem(HttpContextKey.SEOMeta, metatags, _httpContextAccessor);
        }
Exemplo n.º 2
0
        private string CreateJsonLD(JsonLDBaseInfo jsonLD)
        {
            var settings = new JsonSerializerSettings
            {
                NullValueHandling     = NullValueHandling.Ignore,
                MissingMemberHandling = MissingMemberHandling.Ignore
            };
            string        JsonVal = JsonConvert.SerializeObject(jsonLD, settings);
            StringBuilder sbLd    = new StringBuilder();

            sbLd.Append("<script type='application/ld+json'>");
            sbLd.Append(JsonVal);
            sbLd.Append("</script>");
            return(sbLd.ToString());
        }
Exemplo n.º 3
0
        public async Task <int> SaveSEOMetaTag(string pageID, List <SEOMetaValues> objTagValue, string userName, string hostUrl)
        {
            SEOProvider provider = new SEOProvider();
            DataTable   tagTable = new DataTable();

            tagTable.Columns.Add("RowNum");
            tagTable.Columns.Add("SEOMetaTagTypeID");
            tagTable.Columns.Add("MetaTagContent");
            JsonLDBaseInfo jsonLDBaseInfo = new JsonLDBaseInfo();

            if (objTagValue.Count > 0)
            {
                int count = 1;


                foreach (SEOMetaValues item in objTagValue)
                {
                    DataRow dr = tagTable.NewRow();
                    dr["RowNum"]           = count;
                    dr["SEOMetaTagTypeID"] = item.SEOMetaTagTypeID;
                    dr["MetaTagContent"]   = item.MetaTagContent;
                    tagTable.Rows.Add(dr);
                    // creating LD+JSON
                    switch (item.SEOMetaTagTypeID)
                    {
                    case 1:    //@type
                        jsonLDBaseInfo.Type = item.MetaTagContent;
                        break;

                    case 2:    //Title
                        jsonLDBaseInfo.Title = item.MetaTagContent;
                        break;

                    case 3:    //Image
                        jsonLDBaseInfo.Image = new string[] { item.MetaTagContent };
                        break;

                    case 4:    //Description
                        jsonLDBaseInfo.Description = item.MetaTagContent;
                        break;
                    }
                    count++;
                }
            }
            string JsonLDValue             = CreateJsonLD(jsonLDBaseInfo);
            string seoValue                = string.Empty;
            string pageTitle               = string.Empty;
            IList <SEOMetaType> seoTagList = await provider.GetSeoTags() as IList <SEOMetaType>;

            List <SEOAttribute> objSeoAttributeList = new List <SEOAttribute>();

            foreach (SEOMetaValues objseoMeta in objTagValue)
            {
                foreach (SEOMetaType seoMetaType in seoTagList)
                {
                    if (seoMetaType.TagTypeID == objseoMeta.SEOMetaTagTypeID)
                    {
                        string contentValue = seoMetaType.TagName;

                        switch (seoMetaType.CrawlerName)
                        {
                        case "facebook":
                            objSeoAttributeList.Add(new SEOAttribute("meta", "property", contentValue, "content", objseoMeta.MetaTagContent));
                            break;

                        case "twitter":
                            objSeoAttributeList.Add(new SEOAttribute("meta", "name", contentValue, "content", objseoMeta.MetaTagContent));
                            break;

                        case "google":
                            objSeoAttributeList.Add(new SEOAttribute("meta", "name", contentValue, "content", objseoMeta.MetaTagContent));
                            break;
                        }
                    }
                }
                if (objseoMeta.SEOMetaTagTypeID == 2)
                {
                    pageTitle = objseoMeta.MetaTagContent;
                }
            }
            pageTitle = Environment.NewLine + "<title>" + pageTitle + "</title>" + Environment.NewLine;
            string metaTagHtml = pageTitle + SEOHelper.BuildSEOTags(objSeoAttributeList) + AddAdditionalSEO() + JsonLDValue;

            metaTagHtml = metaTagHtml.Replace(hostUrl, "#{HostURL}#");
            return(await provider.SaveSEOMetaTag(pageID, tagTable, metaTagHtml, userName));
        }