public static async void InitDb() { var db = new VacancyContext(); var vacanciesRequestResult = await HhApiHelper.GetVacancies("", 0, 50); if (vacanciesRequestResult != null) { foreach (var vacancy in vacanciesRequestResult.Vacancies) { var vacancyInDb = db.Vacancies.Find(vacancy.Id); if (vacancyInDb == null) { db.Vacancies.Add(vacancy); } else { vacancyInDb.Salary = vacancy.Salary; vacancyInDb.Title = vacancy.Title; vacancyInDb.Url = vacancy.Url; vacancyInDb.Description = vacancy.Description; vacancyInDb.EmployerName = vacancy.EmployerName; } } await db.SaveChangesAsync(); } }
public async Task <VacanciesRequestResult> GetVacancies(string searchText = "", int startPage = 0) { if (startPage < 0) { startPage = 0; } var vacanciesRequestResult = await HhApiHelper.GetVacancies(searchText, startPage, vacancyPerPage); if (vacanciesRequestResult == null) { var vacanciesFromDb = db.Vacancies.Select(t => t); if (!String.IsNullOrEmpty(searchText)) { vacanciesFromDb = vacanciesFromDb .Where(t => t.Description.Contains(searchText) || t.Title.Contains(searchText)); } int pagesTotal = (int)Math.Ceiling(vacanciesFromDb.Count() / (double)vacancyPerPage); vacanciesFromDb = vacanciesFromDb .OrderBy(t => t.Id) .Skip(vacancyPerPage * startPage) .Take(vacancyPerPage); return(new VacanciesRequestResult { Vacancies = vacanciesFromDb.ToArray(), HasMorePages = startPage < pagesTotal - 1 }); } else { return(vacanciesRequestResult); } }