public ActionResult GetSeoParameters(SearchFilterViewModel filter) { if (filter != null) { filter.SetTypeOfCareNames(this.TypesOfCareDefinitions); return Json( new { typesofcare = filter.TypesOfCareSeoParameterFormatted }); } return Json(new { typesofcare = "" }); }
/// <summary> /// Maps listing edit VM to listing details (search action) and adds city/state/zip /// </summary> /// <param name="listingEdit">Listing edit VM</param> /// <param name="cityStateZip">City state zip data</param> /// <param name="filter">Search filter VM</param> /// <returns>Listing details VM</returns> public static ListingDetailsViewModel ToListingDetails(this ListingViewModelEdit listingEdit, CityStateZip cityStateZip, SearchFilterViewModel filter) { return new ListingDetailsViewModel { CityStateZip = cityStateZip, FacilityGuid = listingEdit.FacilityGuid, FacilityName = listingEdit.FacilityName, FacilityShortDescription = listingEdit.Exerpt, FacilityLongDescription = listingEdit.Description, Address = listingEdit.Address, Website = listingEdit.Website, PhoneNumber = listingEdit.PhoneNumber, PhotoUri = listingEdit.PublicPhotoFileUri, Photos = listingEdit.FacilityPhotos.ToPhotoSliderList(), TypeOfCareList = listingEdit.TypeOfCareList, CurrentFilter = filter, Geolocation = new PSSLocation { Latitude = listingEdit.Latitude, Longitude = listingEdit.Longitude } }; }
// general search by all criteria private SearchResultsViewModel SearchFacilities(SearchFilterViewModel filter, int? page) { var pageNumber = page ?? 1; // if no page was specified in the querystring, default to the first page (1) int pageminus1 = pageNumber - 1; int totalCount = 0; IList<SearchResultViewModel> results = new List<SearchResultViewModel>(); FacilityLogic flogic = new FacilityLogic(); var allFound = filter.SearchType == Enums.SearchTypes.Distance ? this.SearchByDistance(filter, flogic, pageminus1, PAGESIZE, out totalCount ) : filter.SearchType == Enums.SearchTypes.Filtered ? this.SearchByFilter(filter, flogic, pageminus1, PAGESIZE, out totalCount) : this.SearchByDistanceFilter(filter, flogic, pageminus1, PAGESIZE, out totalCount); allFound.ForEach(f => { var csz = this.CityStateZipAll.FirstOrDefault(c => c.CityStateZipGuid == f.CityStateZipGuid); results.Add(f.ToSearchResult(csz)); }); var resultsPage = new StaticPagedList<SearchResultViewModel>(results, pageNumber, PAGESIZE, totalCount); filter.Page = pageNumber; return new SearchResultsViewModel { CurrentFilter = filter, CurrentResults = resultsPage }; }
private List<Facility> SearchByFilter(SearchFilterViewModel filter, FacilityLogic flogic, int page, int pageSize, out int totalCount) { var allFound = flogic.GetAllFacilityFilter( new CityStateZip { City = filter.CityFilter ?? "", State = filter.StateFilter ?? "", ZipCode = filter.ZipFilter ?? "" }, filter.TypeOfCareFilter.ToOfferingListCheckedOnly(), false, page, pageSize, out totalCount ); return allFound; }
private List<Facility> SearchByDistanceFilter(SearchFilterViewModel filter, FacilityLogic flogic, int page, int pageSize, out int totalCount) { // distance radius is in miles var allFound = flogic.GetAllFacilityByDistanceFilter( new DistanceParameters { Latitude = filter.Latitude.Value, Longitude = filter.Longitude.Value, DistanceRadius = RADIUS }, filter.TypeOfCareFilter.ToOfferingListCheckedOnly(), false, page, pageSize, out totalCount ); return allFound; }
private List<Facility> SearchByDistance(SearchFilterViewModel filter, FacilityLogic flogic, int page, int pageSize, out int totalCount) { // distance radius is in miles var allFound = flogic.GetAllFacilityByDistance( new DistanceParameters { Latitude = filter.Latitude.Value, Longitude = filter.Longitude.Value, DistanceRadius = RADIUS }, page, pageSize, out totalCount ); return allFound; }
/// <summary> /// Maps SEO search filter VM to search filter VM /// </summary> /// <param name="seoFilter">SEO search filter VM</param> /// <param name="typesOfCare">Types of care collection</param> /// <returns>Search filter VM</returns> public static SearchFilterViewModel ToSearchFilter(this SeoSearchFilterViewModel seoFilter, IList<TypeOfCareViewModel> typesOfCare) { Enums.SearchTypes searchType = Enums.SearchTypes.Undefined; bool b = Enum.TryParse<Enums.SearchTypes>(seoFilter.SearchType, true, out searchType); var filter = new SearchFilterViewModel { Page = seoFilter.Page, Latitude = seoFilter.Latitude, Longitude = seoFilter.Longitude, SearchType = searchType, TypeOfCareFilter = seoFilter.RestoreTypesOfCare(typesOfCare), CityFilter = seoFilter.City, StateFilter = seoFilter.State, ZipFilter = seoFilter.Zip }; return filter; }
public IQueryable<SearchResultViewModel> DoSearchQuery(SearchFilterViewModel filter) { return this.DoSearch(filter).AsQueryable(); }
public IList<SearchResultViewModel> DoSearch(SearchFilterViewModel filter) { CityStateZip csz = new CityStateZip { CityStateZipGuid = Guid.NewGuid(), City = "New York", State = "New York", ZipCode = "00501" }; string facilityNameFormat = "Facility name {0}"; string descriptionFormat = "Facility description {0}"; var outList = new List<SearchResultViewModel>(); for (int i = 0; i < 200; i++) { var resultItem = new SearchResultViewModel { FacilityGuid = Guid.NewGuid(), PhotoUri = "../../Content/Images/homeProfileDrawing.png", FacilityName = string.Format(facilityNameFormat, i), FacilityShortDescription = string.Format(descriptionFormat, i), CityStateZip = csz }; outList.Add(resultItem); } return outList; }