public async Task <IHttpActionResult> Get([FromUri] ProviderFilterBindingModel search) { var userId = User.Identity.GetUserId <int>(); var query = _extendedSnapshotProvider.Get(); try { var showRateAndQA = (search != null && ShowRateAndQA(search)); var result = await _queryFilterService.GetFilteredOrderedPageAsync <ProvidersViewModel>( query, search.Filter, search.Sorting, search.Page, search.Count, ProvidersViewModel.FromExtendedProviderSnapshot(showRateAndQA)); return(Ok <object>(new { showRateAndQA = showRateAndQA, result = result })); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task <IHttpActionResult> GetAutosuggestOptions( [FromUri] string search = null, [FromUri] int?jobTypeId = null, [FromUri] int?languageId = null, [FromUri] int?domain1Id = null, [FromUri] int?domain2Id = null, [FromUri] int?officeId = null) { var query = _extendedSnapshotProvider.Get(); try { var showRateAndQA = false; int serviceTypeId = 0; var filter = new ProviderFilterBindingModelFilter(); var service = _providerRepo.GetAny <JobType>(x => x.Id == jobTypeId.Value).Select(x => x.ServiceType).FirstOrDefault(); if (service == null) { showRateAndQA = false; } else { if (service.SpecifyLanguage && languageId.HasValue || !service.SpecifyLanguage) { showRateAndQA = true; } serviceTypeId = service.Id; filter.Name = search; filter.ServiceTypes = service != null ? new List <int> { serviceTypeId } : null; filter.Languages = languageId.HasValue ? new List <int> { languageId.Value } : null; // domains ... }; if (officeId != null) { filter.Offices = new List <int> { officeId.Value }; filter.EmplStatuses = new List <int> { 1, 2, 3, 4, 5 }; } var result = await _queryFilterService.GetFilteredOrderedPageAsync <ProvidersViewModel>( query, filter, new ProviderFilterBindingModelSorting(), 1, 25, ProvidersViewModel.FromExtendedProviderSnapshot(showRateAndQA), useDistinctAfterProjection : true, ignoreTerminalFilters : true); return(Ok <object>(new { showRateAndQA = showRateAndQA, result = result })); } catch (Exception ex) { return(InternalServerError(ex)); } }
// GET: Providers public IActionResult Index(string surname, string firstname, string adress, string birthday, int page = 1, ProvidersSortState sortOrder = ProvidersSortState.SurnameAsc) { int pageSize = 10; IQueryable <Providers> source = _context.Providers; if (surname != null) { source = source.Where(x => x.Surname.Contains(surname)); } if (firstname != null) { source = source.Where(x => x.Firstname.Contains(firstname)); } if (adress != null) { source = source.Where(x => x.Adress.Contains(adress)); } if (birthday != null) { source = source.Where(x => x.Birthday == DateTime.Parse(birthday)); } switch (sortOrder) { case ProvidersSortState.SurnameAsc: source = source.OrderBy(x => x.Surname); break; case ProvidersSortState.SurnameDesc: source = source.OrderByDescending(x => x.Surname); break; case ProvidersSortState.FirstnameAsc: source = source.OrderBy(x => x.Firstname); break; case ProvidersSortState.FirstnsmeDesc: source = source.OrderByDescending(x => x.Firstname); break; case ProvidersSortState.AdressAsc: source = source.OrderBy(x => x.Adress); break; case ProvidersSortState.AdressDesc: source = source.OrderByDescending(x => x.Adress); break; case ProvidersSortState.BirthdayAsc: source = source.OrderBy(x => x.Birthday); break; case ProvidersSortState.BirthdayDesc: source = source.OrderByDescending(x => x.Birthday); break; default: source = source.OrderBy(x => x.Surname); break; } var count = source.Count(); var items = source.Skip((page - 1) * pageSize).Take(pageSize); PageViewModel pageView = new PageViewModel(count, page, pageSize); ProvidersViewModel ivm = new ProvidersViewModel { PageViewModel = pageView, SortViewModel = new SortProvidersViewModel(sortOrder), FilterViewModel = new FilterProvidersViewModel(surname, firstname, adress, birthday), Providers = items }; return(View(ivm)); }