public ActionResult Index() { HhDataModel model = _service.GetVacancies(defaultBigSalary, defaultLowSalary); return(View(model)); }
public HhDataModel GetVacancies(int bigSalary, int lowSalary) { HhDataModel model = new HhDataModel(bigSalary, lowSalary); IRestResponse response = RequestVacancies(VacanciesFirstPage); int pagesCount = (int)JObject.Parse(response.Content)["pages"]; JArray vacancies = JObject.Parse(response.Content)["items"] as JArray; for (int i = VacanciesFirstPage; i < pagesCount; i++) { foreach (JToken vacancy in vacancies) { if (vacancy["salary"].Type == JTokenType.Null) { continue; } JToken salaryFrom = vacancy["salary"]["from"]; JToken salaryTo = vacancy["salary"]["to"]; JToken salaryCurr = vacancy["salary"]["currency"]; JTokenType salaryFromType = salaryFrom.Type; JTokenType salaryToType = salaryTo.Type; double salary = -1D; if ((string)salaryCurr != "RUR") { continue; } else if (salaryFromType != JTokenType.Null && salaryToType != JTokenType.Null) { salary = ((double)salaryFrom + (double)salaryTo) / 2; } else if (salaryFromType == JTokenType.Null && salaryToType != JTokenType.Null) { salary = (double)salaryTo; } else if (salaryFromType != JTokenType.Null && salaryToType == JTokenType.Null) { salary = (double)salaryFrom; } if (salary > bigSalary) { model.ProfessionsWithBigSalary.Add((string)vacancy["name"]); JToken vacancyDetails = JObject.Parse(RequestVacancyDetails((string)vacancy["id"]).Content); JArray keySkills = vacancyDetails["key_skills"] as JArray; if (keySkills.HasValues) { foreach (JToken keySkill in keySkills) { model.SkillsForBigSalary.Add((string)keySkill["name"]); } } } else if (salary > 0 && salary < lowSalary) { model.ProfessionsWithLowSalary.Add((string)vacancy["name"]); JToken vacancyDetails = JObject.Parse(RequestVacancyDetails((string)vacancy["id"]).Content); JArray keySkills = vacancyDetails["key_skills"] as JArray; if (keySkills.HasValues) { foreach (JToken keySkill in keySkills) { model.SkillsForLowSalary.Add((string)keySkill["name"]); } } } } response = RequestVacancies(VacanciesFirstPage + i + 1); vacancies = JObject.Parse(response.Content)["items"] as JArray; } return(model); }