internal static void DisplayVacancyId(ResultsPerId vacancy) { if (vacancy != null) { Console.WriteLine("vacancy.id: " + vacancy.id); Console.WriteLine("_totalCounter: " + _totalCounter++); Console.WriteLine("END-------------------------"); } }
private ResultsPerId SerializeToObject(string contentString) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(ResultsPerId)); ResultsPerId vacancyJson = null; using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(contentString))) { try { vacancyJson = (ResultsPerId)serializer.ReadObject(ms); } catch (SerializationException ex) { Console.WriteLine("SerializationException on: "); //Todo - filter vacany id out of contentString and include to message } catch (Exception) { } } return(vacancyJson); }
public ResultsPerId GetVacById(int id) { string url = string.Format(BaseUrlId, id); ResultsPerId vacancyJson = null; try { var contentString = ConsumeJson(url); // Create the Json serializer and parse the response vacancyJson = SerializeToObject(contentString); Helper.DisplayVacancyId(vacancyJson); } catch (WebException wex) { HandleWebException(wex); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return(vacancyJson); }
private static void Main(string[] args) { //HeadHunterApiClient.GetVacById(14187125); //new HeadHunterApiClient().GetVacBySearchField("?text", "Врач", 10); HeadHunterApiClient hhApiClient = new HeadHunterApiClient(); //Get all searchresults by ID _vacancyIds = hhApiClient.GetAllVacanciesByName("?text=", "Врач", "&page=", 0, "&per_page=", 100); Console.WriteLine(Environment.NewLine); //Demonstrate (print) all records foreach (string vacancyId in _vacancyIds) { Console.WriteLine("Recorded string.ID: " + vacancyId); } Console.WriteLine(Environment.NewLine); Console.WriteLine("Pop all vacancies over API using collected id's."); Console.WriteLine("Reset totalCounter..."); Helper.TotalCounter = 0; _terapevts = new List <ResultsPerId>(); _chirurgs = new List <ResultsPerId>(); _oftalmologs = new List <ResultsPerId>(); _stomatologs = new List <ResultsPerId>(); _pediators = new List <ResultsPerId>(); _notForDoctors = new List <ResultsPerId>(); _noSpecializations = new List <ResultsPerId>(); //Serialize all Vacancies into files foreach (var vacancyId in _vacancyIds) { //1.getvacancy by ID as object ResultsPerId vacancy = hhApiClient.GetVacById(Int32.Parse(vacancyId)); _noSpecializations = new List <ResultsPerId>(); //2.filter by rules into (own collection)? //use String Filter String vacancyName = Helper.FilterString(vacancy.name.ToLowerInvariant()); //use to lowerinvariant? //Todo: replace by swith, later with strategy if (vacancyName.Contains("терапевт")) { _terapevts.Add(vacancy); } if (vacancyName.Contains("хирург")) { _chirurgs.Add(vacancy); } if (vacancyName.Contains("офтальмолог")) { _oftalmologs.Add(vacancy); } if (vacancyName.Contains("стоматолог")) { _stomatologs.Add(vacancy); } if (vacancyName.Contains("педиатр")) { _pediators.Add(vacancy); } if (vacancyName.Contains("фармацевт") | vacancy.name.Contains("Провизор") | vacancy.name.Contains("медсестра") | vacancy.name.Contains("Интерн")) { _notForDoctors.Add(vacancy); } else { _noSpecializations.Add(vacancy); } } //3.Take collections, convert back to contentString and Serialize into folders in JSON (.txt?) format. }
internal static void DisplayVacanciesJson(ResultsPerId vacancyJson) { Console.WriteLine("vacanciesData.id: " + vacancyJson.id); //Console.WriteLine("vacanciesData.type.id: " + vacanciesData.type.id); Console.WriteLine("vacanciesData.type.name: " + vacancyJson.type.name); Console.WriteLine("vacanciesData.name: " + vacancyJson.name); Console.WriteLine("vacanciesData.description: " + vacancyJson.description); Console.WriteLine("vacanciesData.employer.name: " + vacancyJson.employer.name); Console.WriteLine("vacanciesData.employment: " + vacancyJson.employment.name); Console.WriteLine("vacanciesData.department: " + vacancyJson.department); Console.WriteLine("vacanciesData.hidden: " + vacancyJson.hidden); Console.WriteLine("vacanciesData.code: " + vacancyJson.code); Console.WriteLine("vacanciesData.contacts: " + vacancyJson.contacts); Console.WriteLine("vacanciesData.created_at: " + vacancyJson.created_at); Console.WriteLine("vacanciesData.published_at: " + vacancyJson.published_at); Console.WriteLine("vacanciesData.relations: " + vacancyJson.relations); Console.WriteLine("vacanciesData.response_letter_required: " + vacancyJson.response_letter_required); Console.WriteLine("vacanciesData.response_url: " + vacancyJson.response_url); Console.WriteLine("vacanciesData.salary.currency: " + vacancyJson.salary.currency); Console.WriteLine("vacanciesData.salary.from: " + vacancyJson.salary.from); Console.WriteLine("vacanciesData.salary.to: " + vacancyJson.salary.to); Console.WriteLine("vacanciesData.schedule.name: " + vacancyJson.schedule.name); Console.WriteLine("vacanciesData.site.name: " + vacancyJson.site.name); //for (int i = 0; i < vacanciesData.specializations.Count; i++) { // Console.WriteLine("vacanciesData.specialization: " + specialization); //} foreach (var specialization in vacancyJson.specializations) { Console.WriteLine("vacanciesData.specialization.id: " + specialization.id); Console.WriteLine("vacanciesData.specialization.name: " + specialization.name); Console.WriteLine("vacanciesData.specialization.profarea_id: " + specialization.profarea_id); Console.WriteLine("vacanciesData.specialization.profarea_name: " + specialization.profarea_name); Console.WriteLine("End of specialization...."); } //Console.WriteLine("vacanciesData.specializations" + vacanciesData.specializations); Console.WriteLine("vacanciesData.suitable_resumes_url: " + vacancyJson.suitable_resumes_url); Console.WriteLine("vacanciesData.test: " + vacancyJson.test); Console.WriteLine("vacanciesData.accept_handicapped: " + vacancyJson.accept_handicapped); Console.WriteLine("vacanciesData.address.building: " + vacancyJson.address.building); Console.WriteLine("vacanciesData.address.city: " + vacancyJson.address.city); Console.WriteLine("vacanciesData.address.description: " + vacancyJson.address.description); Console.WriteLine("vacanciesData.address.lat: " + vacancyJson.address.lat); Console.WriteLine("vacanciesData.address.lng: " + vacancyJson.address.lng); Console.WriteLine("vacanciesData.address.metro: " + vacancyJson.address.metro); Console.WriteLine("vacanciesData.address.raw: " + vacancyJson.address.raw); Console.WriteLine("vacanciesData.address.street: " + vacancyJson.address.street); Console.WriteLine("vacanciesData.allow_messages: " + vacancyJson.allow_messages); Console.WriteLine("vacanciesData.alternate_url: " + vacancyJson.alternate_url); Console.WriteLine("vacanciesData.apply_alternate_url: " + vacancyJson.apply_alternate_url); Console.WriteLine("vacanciesData.archived: " + vacancyJson.archived); Console.WriteLine("vacanciesData.area.id: " + vacancyJson.area.id); Console.WriteLine("vacanciesData.area.name: " + vacancyJson.area.name); Console.WriteLine("vacanciesData.area.url: " + vacancyJson.area.url); Console.WriteLine("vacanciesData.billing_type.id: " + vacancyJson.billing_type.id); Console.WriteLine("vacanciesData.billing_type.name: " + vacancyJson.billing_type.name); Console.WriteLine("vacanciesData.branded_description: " + vacancyJson.branded_description); Console.WriteLine("vacanciesData.experience.id: " + vacancyJson.experience.id); Console.WriteLine("vacanciesData.experience.name: " + vacancyJson.experience.name); // foreach (var key_skill in vacancyJson.key_skills) { //Console.WriteLine("vacanciesData.key_skill: " + key_skill.name); //e.g подбор персонала Console.WriteLine("End of key_skill...."); } Console.WriteLine("vacanciesData.negotiations_url" + vacancyJson.negotiations_url); Console.WriteLine("vacanciesData.premium" + vacancyJson.premium); }