public JsonResult GetVacanciesFromDb()
        {
            var vacancies = vacancyService.GetVacancies().ToList();

            try
            {
                var reqVacs = HhRequestApiHelper.GetVacanciesFromHh();
                foreach (var item in reqVacs)
                {
                    if (vacancies.All(v => v.Id != item.Id))
                    {
                        vacancyService.InsertVacancy(item);
                        vacancies.Add(item);
                    }
                }
            }
            catch (WebException e)
            {
                return(Json(vacancies));
            }
            catch (Exception e)
            {
                Console.WriteLine("\nThe following Exception was raised : {0}", e.Message);
            }
            return(Json(vacancies));
        }
    public async Task <IPagedList <VacancyViewModel> > GetVacancies(int page)
    {
        var vacancies = await _vacancyService.GetVacancies(page);

        var subset = vacancies.Select(o => new VacancyViewModel(o, _settings.WebSiteUrl));

        return(new StaticPagedList <VacancyViewModel>(subset, vacancies));
    }
Example #3
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();

            var events = GetCustomPages();

            foreach (var url in events)
            {
                sitemap.Add(CreateUrl(url));
            }

            page = 1;

            do
            {
                publications = await _publicationService.GetPublications(null, page);

                page++;

                foreach (var p in publications)
                {
                    var publication = new PublicationViewModel(p, _settings.WebSiteUrl);
                    sitemap.Add(CreateUrl(publication.ShareUrl.ToString()));
                }
            }while (publications.HasNextPage);

            page = 1;

            do
            {
                vacancies = await _vacancyService.GetVacancies(page);

                page++;

                foreach (var v in vacancies)
                {
                    var vacancy = new VacancyViewModel(v, _settings.WebSiteUrl);
                    sitemap.Add(CreateUrl(vacancy.ShareUrl.ToString()));
                }
            }while (vacancies.HasNextPage);

            xml = sitemap.ToXml();
            _cache.Set(key, xml, TimeSpan.FromMinutes(10));
        }


        return(Content(xml, "application/xml"));
    }
Example #4
0
        public async Task <IActionResult> Vacancies(int page = 1)
        {
            ViewData["Title"] = "Job";

            var pagedResult = await _vacancyService.GetVacancies(page);

            var model = new StaticPagedList <VacancyViewModel>(pagedResult.Select(o => new VacancyViewModel(o, _settings.WebSiteUrl)), pagedResult);

            return(View("~/Views/Home/Vacancies.cshtml", model));
        }
 public async Task OnGetAsync()
 {
     Vacancies = await _vacancyService.GetVacancies();
 }
Example #6
0
        public async Task <List <HHVacancyModel> > GetVacanciesAsync(string name, string region = "")
        {
            var vacs = await _vacancyService.GetVacancies(name, region);

            return(vacs); // TODO: думаю тут сделать ответ о том что данные получены и можно строить графики
        }