public static string UrlString(string title, MediumCategory category) { string baseUrl = "https://iffr.com/nl/" + AppDelegate.FestivalYear + "/" + FolderByCategory[category] + "/"; var quotes = @"['`""]"; var disposables = @"[./()?]"; var strippables = @"(" + quotes + @"+\s*)|" + disposables + @"+"; var reStrip = new Regex(strippables, RegexOptions.CultureInvariant); var strippedTitle = reStrip.Replace(title.ToLowerInvariant(), ""); var extraWordChars = @"[–★]"; var nonWords = @"[\W-" + extraWordChars + "]+"; var reReplace = new Regex(nonWords, RegexOptions.CultureInvariant); // space or connector punctuation. var result = baseUrl + reReplace.Replace(strippedTitle, "-"); return(result); }
public IActionResult Detail(string title) { MediumpageModels mediumpageModels = new MediumpageModels(); List <MediumModels> mediumModel = new List <MediumModels>(); List <MediumCategory> blogCategory = new List <MediumCategory>(); try { mediumpageModels.Mediumpage = _mediumpageDal.GetAll().Where(i => i.isApproved == true).FirstOrDefault(); } catch (Exception) { mediumpageModels.Mediumpage = null; } try { XNamespace content = "http://purl.org/rss/1.0/modules/content/"; string url = "https://medium.com/feed/@" + mediumpageModels.Mediumpage.MediumUsername; var httpClient = new HttpClient(); XDocument xDoc = new XDocument(); xDoc = XDocument.Load(url); var items = (from x in xDoc.Descendants("item") select new { title = x.Element("title").Value, link = x.Element("link").Value, pubDate = x.Element("pubDate").Value, content = x.Element(content + "encoded").Value, categories = x.Elements("category").ToList() }); foreach (var item in items) { MediumModels model = new MediumModels { Title = item.title, Link = item.link, Date = item.pubDate, Content = item.content, LinkProfile = xDoc.Descendants("link").FirstOrDefault().Value }; foreach (var a in item.categories) { MediumCategory category = new MediumCategory { Name = a.Value }; blogCategory.Add(category); } ; mediumpageModels.MediumCategories = blogCategory; mediumModel.Add(model); mediumpageModels.Medium = mediumModel.Where(i => EF.Functions.Like(i.Title, "%" + title + "%")).ToList(); } //ViewBag.image = getBetween(mediumModel.Where(i => EF.Functions.Like(i.Title, "%" + title + "%")).FirstOrDefault().Content, @"src=", @"/>"); return(View(mediumpageModels)); } catch (Exception) { mediumpageModels.MediumCategories = null; mediumModel = null; mediumpageModels.Medium = null; return(View(mediumpageModels)); } }