public async Task <IActionResult> Index() { ViewData["Title"] = "Welcome!"; var pagedResult = await _publicationManager.GetPublications(); var categories = _publicationManager.GetCategories(); var model = new StaticPagedList <PublicationViewModel>(pagedResult.Select(o => new PublicationViewModel(o, Settings.Current.WebSiteUrl, categories)), pagedResult); return(View(model)); }
public async Task <IActionResult> GetSitemap() { var page = 1; var key = "sitemap"; IPagedList <Publication> pagedResult; var xml = _cache.Get(key)?.ToString(); if (string.IsNullOrEmpty(xml)) { var sitemap = new Sitemap(); sitemap.Add(CreateUrl(Settings.Current.WebSiteUrl)); sitemap.Add(CreateUrl(Settings.Current.WebSiteUrl + "partners/")); do { pagedResult = await _manager.GetPublications(page); page++; foreach (var p in pagedResult) { var publication = new PublicationViewModel(p, Settings.Current.WebSiteUrl); sitemap.Add(CreateUrl(publication.ShareUrl)); } }while (pagedResult.HasNextPage); xml = sitemap.ToXml(); _cache.Set(key, xml, TimeSpan.FromMinutes(10)); } return(Content(xml, Sitemap.MimeType)); }
public async Task <IActionResult> GetRssFeed() { var key = "rss"; var xml = _cache.Get(key)?.ToString(); if (string.IsNullOrEmpty(xml)) { int?categoryId = null; var pagedResult = await _manager.GetPublications(categoryId, 1, 50); var lastUpdateDate = pagedResult.Select(o => o.DateTime).DefaultIfEmpty().Max(); var rss = new RssDocument { Channel = new RssChannel { Copyright = Settings.Current.WebSiteTitle, Description = Settings.Current.DefaultDescription, SkipDays = new List <Day>(), SkipHours = new List <Hour>(), AtomLink = new RssLink(Settings.Current.RssFeedUrl), Image = new RssImage { Description = Settings.Current.WebSiteTitle, Height = 100, Width = 100, Link = new RssUrl(Settings.Current.FacebookImage), Title = Settings.Current.WebSiteTitle, Url = new RssUrl(Settings.Current.FacebookImage) }, Language = new CultureInfo("ru"), LastBuildDate = lastUpdateDate, Link = new RssUrl(Settings.Current.RssFeedUrl), ManagingEditor = new RssPerson("Andrew G.", Settings.Current.SupportEmail), PubDate = lastUpdateDate, Title = Settings.Current.WebSiteTitle, TTL = 10, WebMaster = new RssPerson("Andrew G.", Settings.Current.SupportEmail), Items = new List <RssItem> { } } }; foreach (var p in pagedResult) { rss.Channel.Items.Add(CreateRssItem(p)); } xml = rss.ToXml(); _cache.Set(key, xml, TimeSpan.FromMinutes(10)); } return(Content(xml, RssDocument.MimeType)); }
public async Task <IActionResult> GetSitemap() { var page = 1; var key = "sitemap"; var xml = _cache.Get(key)?.ToString(); if (string.IsNullOrEmpty(xml)) { IPagedList <Publication> publications; IPagedList <Vacancy> vacancies; var sitemap = new Sitemap(); sitemap.Add(CreateUrl(Settings.Current.WebSiteUrl)); sitemap.Add(CreateUrl(Settings.Current.WebSiteUrl + "partners/")); page = 1; do { publications = await _publicationManager.GetPublications(null, page); page++; foreach (var p in publications) { var publication = new PublicationViewModel(p, Settings.Current.WebSiteUrl); sitemap.Add(CreateUrl(publication.ShareUrl)); } }while (publications.HasNextPage); page = 1; do { vacancies = await _vacancyManager.GetVacancies(page); page++; foreach (var v in vacancies) { var vacancy = new VacancyViewModel(v, Settings.Current.WebSiteUrl); sitemap.Add(CreateUrl(vacancy.ShareUrl)); } }while (vacancies.HasNextPage); xml = sitemap.ToXml(); _cache.Set(key, xml, TimeSpan.FromMinutes(10)); } return(Content(xml, Sitemap.MimeType)); }