Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }