Example #1
0
        public ContentResult RSS()
        {
            MetaTagModel mtaTagModel = new MetaTagModel();

            mtaTagModel = _optionService.GetByCulterMetaTag();

            var items = GetRssFeed();
            var rss   = new XDocument(new XDeclaration("1.0", "utf-8", "yes"),
                                      new XElement("rss",
                                                   new XAttribute("version", "2.0"),
                                                   new XElement("channel",
                                                                new XElement("title", string.Format("آخرین مطالب {0}", mtaTagModel.Title)),
                                                                new XElement("link", "http://" + Request.Url.Host + "/rss"),
                                                                new XElement("description", string.Format("آخرین مطالب {0}", mtaTagModel.Title)),
                                                                new XElement(string.Format("copyright", "(c)" + DateTime.Now.Year + ", {0} .تمامی حقوق محفوظ است", mtaTagModel.Title)),
                                                                from item in items
                                                                select
                                                                new XElement("item",
                                                                             new XElement("title", item.title),
                                                                             new XElement("description", item.description),
                                                                             new XElement("link", item.link),
                                                                             new XElement("pubDate", item.pubDate.ToUniversalTime().ToString("r"))
                                                                             )
                                                                )
                                                   )
                                      );

            return(Content(rss.ToString(), "text/xml"));
        }
Example #2
0
        public static MetaTagModel MergeViewWithModelMetaTag(MetaTagModel model, MetaTagView view)
        {
            model.Content = view.Content;
            model.Name    = view.Name;

            return(model);
        }
        public HttpResponseMessage AddMetaTagToTitle(MetaTagModel metaTagModel)
        {
            if (metaTagModel.MetaTagType != 7 && metaTagModel.MetaTagType != 8 && metaTagModel.MetaTagType != 9)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              "Invalid Metatag Type. Please check the Documentation and try again"));
            }
            Guid output;
            var  isValid = Guid.TryParse(metaTagModel.TitleId, out output);

            if (!isValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              "Invalid Title Id."));
            }
            var title = _titleService.GetById(output);

            if (title == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound,
                                              "Title not Found"));
            }
            var tag = new TitleMetaValue
            {
                TitleId     = title.Id,
                Value       = metaTagModel.Value,
                ValueTypeId = metaTagModel.MetaTagType
            };

            _titleMetaValueService.Create(tag);

            return(Request.CreateResponse(HttpStatusCode.Created,
                                          "Success."));
        }
        public virtual ActionResult MetaTag()
        {
            MetaTagModel mtaTagModel = new MetaTagModel();

            mtaTagModel = _optionService.GetByCulterMetaTag();

            return(PartialView("MetaTag", mtaTagModel));
        }
Example #5
0
        public static MetaTagView ConvertToViewMetaTag(MetaTagModel result)
        {
            var metaTagView = new MetaTagView
            {
                Name    = result.Name,
                Content = result.Content
            };

            return(metaTagView);
        }
Example #6
0
        public static MetaTagModel ConvertToModelMetaTag(MetaTagView result)
        {
            var metaTagModel = new MetaTagModel
            {
                Name    = result.Name,
                Content = result.Content
            };

            return(metaTagModel);
        }
Example #7
0
        public MetaTagModel GetByCulterMetaTag()
        {
            var option = _option.ToList();

            MetaTagModel metaTagModel = new MetaTagModel();
            string       cultur       = CultureHelper.GetCurrentNeutralCulture();

            if (option.Where(x => x.Name == "MetaTag").Any())
            {
                metaTagModel.MetaDescription = option.Where(x => x.Name == "MetaTag").FirstOrDefault().Value;
            }

            switch (cultur)
            {
            case "fa":
                if (option.Where(x => x.Name == "WebSiteNameFa").Any())
                {
                    metaTagModel.Title = option.Where(x => x.Name == "WebSiteNameFa").FirstOrDefault().Value;
                }
                break;

            case "en":
                if (option.Where(x => x.Name == "WebSiteNameFa").Any())
                {
                    metaTagModel.Title = option.Where(x => x.Name == "WebSiteNameFa").FirstOrDefault().Value;
                }
                break;

            case "ar":
                if (option.Where(x => x.Name == "WebSiteNameFa").Any())
                {
                    metaTagModel.Title = option.Where(x => x.Name == "WebSiteNameFa").FirstOrDefault().Value;
                }
                break;

            case "ru":
                if (option.Where(x => x.Name == "WebSiteNameFa").Any())
                {
                    metaTagModel.Title = option.Where(x => x.Name == "WebSiteNameFa").FirstOrDefault().Value;
                }
                break;
            }

            return(metaTagModel);
        }
Example #8
0
        private static MetadataModel GetMetadata(IDocument htmlDocument)
        {
            var metadataModel = new MetadataModel();

            if (htmlDocument == null)
            {
                return(metadataModel);
            }

            var metaTags = htmlDocument.GetElementsByTagName("meta");

            foreach (var metaTag in metaTags)
            {
                var metaTagModel = new MetaTagModel
                {
                    Html       = metaTag.OuterHtml,
                    Attributes = metaTag.Attributes.ToDictionary(x => x.Name, x => x.Value)
                };

                metadataModel.MetaTags.Add(metaTagModel);

                // Check Property Value

                var propertyValue =
                    metaTag
                    .Attributes
                    .FirstOrDefault(x => x.Name.ToLowerInvariant() == "property")
                    ?.Value;

                // Check Name Value

                var nameValue =
                    metaTag
                    .Attributes
                    .FirstOrDefault(x => x.Name.ToLowerInvariant() == "name")
                    ?.Value;

                if (string.IsNullOrWhiteSpace(propertyValue) && string.IsNullOrWhiteSpace(nameValue))
                {
                    continue;
                }

                var contentValue = metaTag
                                   .Attributes
                                   .FirstOrDefault(x => x.Name.ToLowerInvariant() == "content")
                                   ?.Value;

                switch (propertyValue ?? nameValue)
                {
                case "og:url":
                {
                    metadataModel.Url = contentValue;
                    break;
                }

                case "og:title":
                {
                    metadataModel.Title = contentValue;
                    break;
                }

                case "og:description":
                {
                    metadataModel.Description = contentValue;
                    break;
                }

                case "og:image":
                {
                    metadataModel.Image = contentValue;
                    break;
                }

                case "og:video":
                {
                    metadataModel.Image = contentValue;
                    break;
                }

                case "og:type":
                {
                    metadataModel.Type = contentValue;
                    break;
                }

                case "og:locale":
                {
                    metadataModel.Locale = contentValue;
                    break;
                }

                case "og:site_name":
                {
                    metadataModel.SiteName = contentValue;
                    break;
                }

                case "author":
                {
                    metadataModel.Author = contentValue;
                    break;
                }
                }
            }

            metadataModel.Title = string.IsNullOrWhiteSpace(metadataModel.Title)
                ? htmlDocument.Title
                : metadataModel.Title;

            metadataModel.Url = string.IsNullOrWhiteSpace(metadataModel.Url)
                ? htmlDocument.Url
                : metadataModel.Url;

            return(metadataModel);
        }
Example #9
0
        public async Task <bool> CreateMetaTag(MetaTagModel metaTag)
        {
            await _context.MetaTags.AddAsync(metaTag);

            return(await _context.SaveChangesAsync() > 0);
        }
Example #10
0
 public async Task <bool> UpdateMetaTag(MetaTagModel metaTag)
 {
     _context.MetaTags.Update(metaTag);
     return(await _context.SaveChangesAsync() > 0);
 }