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();
        }
Пример #2
0
        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;
        }
Пример #3
0
        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});

        }