private void btnSearch_Click(object sender, EventArgs e) { var searchCriteria = new SearchCriteria { Discipline = cbFields.SelectedItem as Discipline, LanguagePair = new LanguagePair(cbSourceLanguages.SelectedItem as Language, cbTargetLanguages.SelectedItem as Language), SearchTerm = txtSearch.Text, Translation = chkTranslation.Checked, Interpreting = chkInterpreting.Checked, Potential = chkPotential.Checked }; _service.Search(searchCriteria); EnableDisablePagingButtons(); }
private IEnumerable<Parameter> CreateParameters(SearchCriteria criteria, int page) { var result = new List<Parameter>(); if (criteria == null) return result; if (criteria.Translation || criteria.Interpreting || criteria.Potential) { var value = new StringBuilder(); if (criteria.Translation) { value.Append(value.Length == 0 ? "translation" : ",translation"); } if (criteria.Interpreting) { value.Append(value.Length == 0 ? "interpret" : ",interpret"); } if (criteria.Potential) { value.Append(value.Length == 0 ? "potential" : ",potential"); } var typeParameter = new Parameter { Type = ParameterType.QueryString, Value = value.ToString(), Name = "type" }; result.Add(typeParameter); } if (criteria.LanguagePair.Source.LanguageCode != "all" && criteria.LanguagePair.Target.LanguageCode != "all") { var languagePairParameter = new Parameter { Type = ParameterType.QueryString, Value = criteria.LanguagePair.Serialize(), Name = "language_pairs" }; result.Add(languagePairParameter); } if (criteria.Discipline.DiscSpecId != 0) { var disciplineParameter = new Parameter { Type = ParameterType.QueryString, Value = criteria.Discipline.DiscSpecId, Name = "disc_spec_ids" }; result.Add(disciplineParameter); } if (!string.IsNullOrEmpty(criteria.SearchTerm)) { var searchParameter = new Parameter { Type = ParameterType.QueryString, Value = criteria.SearchTerm, Name = "q" }; result.Add(searchParameter); } var pageParameter = new Parameter { Type = ParameterType.QueryString, Value = page, Name = "page" }; result.Add(pageParameter); return result; }
public void Search(SearchCriteria criteria, int page = 1) { var request = new RestRequest(Method.GET) { Resource = "job-postings", RequestFormat = DataFormat.Json }; request.Parameters.AddRange(CreateParameters(criteria, page)); var pApi = new ProzApi(); var response = pApi.Execute<JobPostingResponse>(request); List<JobViewModel> results = TransformToJobsView(response); CurrentPage = page; HasNext = response.Links.Next != null; HasPrevious = CurrentPage > 1; OnSearchCompleted(new SearchCompletedEventArgs {JobSearchResults = results, Criteria = criteria}); }