示例#1
0
        public MarriageLicenseSearch()
        {
            InitializeComponent();
            var model = new SearchResultsViewModel("Marriage");

            BindingContext = model;
        }
        public async Task <ActionResult> SearchResults(SearchResultsViewModel viewModel)
        {
            SetBreadcrumb(viewModel.EntityType);

            if (!ModelState.IsValid)
            {
                viewModel.Results = await organisationSearcher.Search(viewModel.SearchTerm, maximumSearchResults, false);

                return(View(viewModel));
            }

            if (viewModel.EntityType == EntityType.Pcs)
            {
                var selectedOrg = viewModel.Results.FirstOrDefault(p => p.OrganisationId == viewModel.SelectedOrganisationId);

                if (selectedOrg.PcsCount == 0)
                {
                    return(RedirectToAction("AddScheme", "Scheme", new { organisationId = viewModel.SelectedOrganisationId }));
                }

                return(RedirectToAction("OrgAlreadyHasScheme", "AddOrganisation", new { searchTerm = viewModel.SearchTerm }));
            }

            return(RedirectToAction("Add", "AddAatf", new { organisationId = viewModel.SelectedOrganisationId, facilityType = viewModel.EntityType }));
        }
        public InspectResultsViewModel(MessageBus messageBus, GeospatialBox extent)
        {
            // create an isolated message bus
            InnerMessageBus = new MessageBus();
            InnerMessageBus.Subscribe <BuildSearchMessage>(async m =>
            {
                var query = new SearchQuery();
                await messageBus.Publish(new BuildSearchMessage(query)); // get current global query
                query.Viewport = extent;

                var start = m.Query.Start;
                m.Query.Apply(query);
                m.Query.Start = start;
            });
            InnerMessageBus.Subscribe <EndSearchMessage>(m =>
            {
                _originalResults = _originalResults ?? m.Results;
                NotifyPropertyChanged(nameof(Total));
            });

            // relay certain messages to outer bus so they can be resolved
            InnerMessageBus.Subscribe <GetServerSettingsMessage>(m => messageBus.Publish(m));

            FacetsViewModel   = new SearchFacetsViewModel(InnerMessageBus);
            ResultsViewModel  = new SearchResultsViewModel(InnerMessageBus);
            DocumentViewModel = new DocumentViewModel(InnerMessageBus);
        }
        /// <summary>
        /// Builds facet counts.
        /// </summary>
        private static IEnumerable <FacetCount> BuildFacetCounts(
            SearchResultsViewModel model,
            string facetNotSelectedValue = "*Facet NOT Selected*"
            )
        {
            if (model.SearchResults != null &&
                model.SearchResults.FacetFields != null &&
                model.SearchResults.FacetFields.Keys != null)
            {
                foreach (string facetKey in model.SearchResults.FacetFields.Keys)
                {
                    ICollection <KeyValuePair <string, int> > facets = model.SearchResults.FacetFields[facetKey];

                    foreach (KeyValuePair <string, int> facetCount in facets)
                    {
                        // Try to replace the itemID with the Item Name.
                        Item item   = null;
                        Guid itemId = Guid.Empty;
                        if (Guid.TryParse(facetCount.Key, out itemId) && itemId != Guid.Empty)
                        {
                            item = Context.Database.GetItem(new ID(itemId));
                        }

                        yield return(new FacetCount
                        {
                            Key = facetCount.Key,
                            Name = item != null ? item.Name : facetNotSelectedValue,
                            Count = facetCount.Value
                        });
                    }
                }
            }
        }
        public async Task PostSearchResults_WithSelectedPRN_RedirectsToDetailsAction()
        {
            // Arrange
            BreadcrumbService breadcrumb = A.Dummy <BreadcrumbService>();
            ISearcher <ProducerSearchResult> producerSearcher = A.Dummy <ISearcher <ProducerSearchResult> >();

            Func <IWeeeClient> weeeClient = A.Dummy <Func <IWeeeClient> >();

            ProducersController controller = new ProducersController(breadcrumb, producerSearcher, weeeClient, cache, configurationService);

            SearchResultsViewModel viewModel = new SearchResultsViewModel()
            {
                SelectedRegistrationNumber = "WEE/AA1111AA"
            };

            // Act
            ActionResult result = await controller.SearchResults(viewModel);

            // Assert
            RedirectToRouteResult redirectResult = result as RedirectToRouteResult;

            Assert.NotNull(redirectResult);

            Assert.Equal("Details", redirectResult.RouteValues["action"]);
            Assert.Equal("WEE/AA1111AA", redirectResult.RouteValues["RegistrationNumber"]);
        }
示例#6
0
        public IActionResult Result(string searchTerm)
        {
            if (string.IsNullOrWhiteSpace(searchTerm))
            {
                throw new BadRequestException(ErrorMessages.InvalidSearchKeyword);
            }

            var model = new SearchResultsViewModel
            {
                Date       = DateTime.Today.ToString(GlobalConstants.RequiredWebDateTimeFormat),
                SearchTerm = searchTerm
            };

            bool isIsin = this.service.IsIsin(model.CleanedSearch);

            if (isIsin)
            {
                this.recentService.Save(this.User, this.Request.Path + this.Request.QueryString);
                var classId = this.service.ByIsin(model.CleanedSearch);
                return(this.RedirectToRoute(
                           EndpointsConstants.RouteDetails + EndpointsConstants.ShareClassArea,
                           new { area = EndpointsConstants.ShareClassArea, id = classId, date = model.Date }));
            }
            model.Results = this.service.ByName(model.CleanedSearch);

            if (model.Results.ToList().Count > 0)
            {
                this.recentService.Save(this.User, this.Request.Path + $"?searchTerm={model.CleanedSearch}");
            }

            return(this.View(model));
        }
示例#7
0
        public async Task <IActionResult> SearchResults(int pages, ProductQuery productQuery)
        {
            double priceLimitMax = 0;
            double priceLimitMin = 0;

            pages = (pages == 0) ? 1 : pages;

            IQueryable <Product> allProducts = _productRepository.FetchAllProductsIncl();

            if (allProducts.Count() > 0)
            {
                priceLimitMax = allProducts.Max(p => p.SalePrice);
                priceLimitMin = allProducts.Min(p => p.SalePrice);
            }

            foreach (var filter in productQuery.Filters)
            {
                allProducts = allProducts.Where(filter);
            }

            var filteredProducts = allProducts.OrderByDynamic(productQuery.GetCriteria, productQuery.OrderDirection);

            var vm = new SearchResultsViewModel()
            {
                DisplayMode   = ProductListDisplayMode.CatalogView,
                ProductList   = await PaginatedList <Product> .CreateAsync(filteredProducts, pages, productsPerPage),
                ProductQuery  = productQuery,
                priceLimitMax = priceLimitMax,
                priceLimitMin = priceLimitMin
            };

            ViewData["CurrentSearch"] = productQuery.SearchString;

            return(View(vm));
        }
        /// <summary>
        /// Builds facet counts.
        /// </summary>
        private static string DetermineFacetName(SearchResultsViewModel model, Guid selectedFacetKey)
        {
            if (model.SearchResults != null &&
                model.SearchResults.FacetFields != null &&
                model.SearchResults.FacetFields.Keys != null)
            {
                foreach (string facetKey in model.SearchResults.FacetFields.Keys)
                {
                    ICollection <KeyValuePair <string, int> > facets = model.SearchResults.FacetFields[facetKey];

                    foreach (KeyValuePair <string, int> facetCount in facets)
                    {
                        // Try to replace the itemID with the Item Name.
                        Item item   = null;
                        Guid itemId = Guid.Empty;
                        if (Guid.TryParse(facetCount.Key, out itemId) &&
                            itemId != Guid.Empty &&
                            itemId == selectedFacetKey)
                        {
                            item = Context.Database.GetItem(new ID(itemId));

                            if (item != null)
                            {
                                return(item.Name);
                            }
                        }
                    }
                }
            }

            return(string.Empty);
        }
        public ActionResult Details(int reference)
        {
            ItemsDetailViewModel detailItem = global.GetItemDetail(reference);

            if (detailItem != null)
            {
                if (Session["errorMessage"] != null)
                {
                    string postMessage = Session["errorMessage"].ToString();
                    Session.Remove("errorMessage");
                    ViewBag.ErrorMessage = postMessage;
                }
                if (Session["updateMessage"] != null)
                {
                    string postMessage = Session["updateMessage"].ToString();
                    Session.Remove("updateMessage");
                    ViewBag.UpdateMessage = postMessage;
                }
                if (Session["currentSearch"] != null)
                {
                    SearchResultsViewModel currentSearch = Session["currentSearch"] as SearchResultsViewModel;
                    ViewBag.ReturnUrl = "/Search/Result/" + currentSearch.Page;
                }
                return(View(detailItem));
            }
            return(RedirectToAction("Index", "Search"));
        }
        public async Task GetSearch_SearchTermThatExists_RedirectsToSearchResultsWithResultsInViewModel()
        {
            var          organisationId = Guid.NewGuid();
            const string searchTerm     = "civica";
            var          entityType     = fixture.Create <EntityType>();

            IList <OrganisationSearchResult> results = new List <OrganisationSearchResult>()
            {
                new OrganisationSearchResult()
                {
                    Name           = searchTerm,
                    OrganisationId = organisationId
                }
            };

            A.CallTo(() => organisationSearcher.Search(searchTerm, 5, false)).Returns(results);

            var viewModel = new SearchResultsViewModel()
            {
                Results                = results,
                SearchTerm             = searchTerm,
                SelectedOrganisationId = organisationId
            };

            var result = await controller.SearchResults(searchTerm, entityType) as ViewResult;

            var outputModel = result.Model as SearchResultsViewModel;

            Assert.True(string.IsNullOrEmpty(result.ViewName) || result.ViewName == "SearchResults");
            Assert.Equal(viewModel.SearchTerm, outputModel.SearchTerm);
            Assert.Equal(viewModel.Results, outputModel.Results);
        }
        public async Task <IActionResult> SearchResultsAsync(SearchResultsViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var searchResult = await _resultLoader.FindUlnResultsAsync(User.GetUkPrn(), model.SearchUln.ToLong());

            if (searchResult?.IsAllowed == true)
            {
                return(RedirectToRoute(searchResult.IsWithdrawn ? RouteConstants.ResultWithdrawnDetails : RouteConstants.ResultDetails, new { profileId = searchResult.RegistrationProfileId }));
            }
            else
            {
                await _cacheService.SetAsync(Constants.ResultsSearchCriteria, model.SearchUln);

                var ulnResultsNotfoundModel = new UlnResultsNotFoundViewModel {
                    Uln = model.SearchUln.ToString()
                };
                await _cacheService.SetAsync(string.Concat(CacheKey, Constants.SearchResultsUlnNotFound), ulnResultsNotfoundModel, CacheExpiryTime.XSmall);

                return(RedirectToRoute(RouteConstants.SearchResultsNotFound));
            }
        }
示例#12
0
        public LandRecordsSearch()
        {
            InitializeComponent();
            var model = new SearchResultsViewModel("LandRecords");

            BindingContext = model;
        }
        public ActionResult Search(StoreSearchViewModel ssvm, Int32 pageNumber = 1)
        {
            IEnumerable <Product> results;

            if (ssvm.Location != 0)
            {
                var catFilter = new Func <Product, Boolean>(p => p.CategoryID == ssvm.Location);

                results = _prodService.GetAll().Where(catFilter);
            }
            else
            {
                results = _prodService.GetAll();
            }

            if (!String.IsNullOrEmpty(ssvm.Term))
            {
                results = results.Where(p => p.Name.Contains(ssvm.Term));
            }

            var srvm = new SearchResultsViewModel();

            srvm.ssvm = ssvm;

            srvm.Products = Mapper.Map <List <ProductViewModel> >(results).ToPagedList(pageNumber, 9);

            ssvm.SearchLocations = this.searchLocations();

            return(View("SearchResults", srvm));
        }
        public async Task PostSearchForPcs_ValidViewModelSelectedOrganisationAlreadyHasPcs_RedirectsToOrgAlreadyHasPcs()
        {
            var organisationId = Guid.NewGuid();
            var searchTerm     = "civica";

            IList <OrganisationSearchResult> results = new List <OrganisationSearchResult>()
            {
                new OrganisationSearchResult()
                {
                    Name           = searchTerm,
                    OrganisationId = organisationId,
                    PcsCount       = 1
                }
            };

            A.CallTo(() => organisationSearcher.Search(searchTerm, 5, false)).Returns(results);

            var viewModel = new SearchResultsViewModel()
            {
                Results                = results,
                SearchTerm             = searchTerm,
                SelectedOrganisationId = organisationId,
                EntityType             = EntityType.Pcs
            };

            var result = await controller.SearchResults(viewModel) as RedirectToRouteResult;

            result.RouteValues["action"].Should().Be("OrgAlreadyHasScheme");
            result.RouteValues["controller"].Should().Be("AddOrganisation");
            Assert.Equal(searchTerm, result.RouteValues["searchTerm"]);
        }
        public SearchResults()
        {
            InitializeComponent();

            //Set datacontext
            DataContext = new SearchResultsViewModel();
        }
示例#16
0
        public async Task <IActionResult> SearchResults(SearchViewModel model)
        {
            var current = model.Current;

            var results = new SearchResultsViewModel();

            results.Current = current;

            if (model.SearchInAlbums)
            {
                results.Albums = await this.albums.Find(model.SearchText);
            }

            if (model.SearchInUsers)
            {
                results.Users = await this.users.Find(model.SearchText);
            }

            if (model.SearchInPhotos)
            {
                results.Photos = await this.photos.Find(model.SearchText);
            }

            if (model.SearchInAds)
            {
                results.Ads = await this.ads.FindForListing(model.SearchText);
            }

            return(this.PartialView("_SearchResults", results));
        }
示例#17
0
        public async Task <ActionResult> Search(string departure, string arrival)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri("http://localhost:64548/");
            client.DefaultRequestHeaders.Accept.Clear();
            string s = null;

            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            HttpResponseMessage response = await client.GetAsync($"api/Drivers/available/{departure}");

            List <Driver> drivers = null;

            if (response.IsSuccessStatusCode)
            {
                s = await response.Content.ReadAsStringAsync();

                drivers = JsonConvert.DeserializeObject <List <Driver> >(s);
            }

            if (drivers == null || drivers.Count <= 0)
            {
                return(View("Index", new IndexViewModel("Aucun chauffeur n'a été trouvé pour le trajet spécifié")));
            }

            SearchResultsViewModel model = new SearchResultsViewModel(drivers, departure, arrival);

            ViewBag.Script       = "showDrivers.js";
            ViewBag.GoogleScript = "https://maps.googleapis.com/maps/api/js?key=AIzaSyCDjKjiTE-YwsyVbG2KY4VVJF5w3F7XWt8&callback=initMap";

            return(View(model));
        }
        public async Task PostSearch_InValidViewModelSelectedOrganisation_ReturnsView()
        {
            var          organisationId = Guid.NewGuid();
            const string searchTerm     = "civica";

            IList <OrganisationSearchResult> results = new List <OrganisationSearchResult>()
            {
                new OrganisationSearchResult()
                {
                    Name           = searchTerm,
                    OrganisationId = organisationId
                }
            };

            A.CallTo(() => organisationSearcher.Search(searchTerm, 5, false)).Returns(results);

            controller.ModelState.AddModelError("error", "error");

            var viewModel = new SearchResultsViewModel()
            {
                Results                = results,
                SearchTerm             = searchTerm,
                SelectedOrganisationId = organisationId
            };

            var result = await controller.SearchResults(viewModel) as ViewResult;

            var outputModel = result.Model as SearchResultsViewModel;

            Assert.True(string.IsNullOrEmpty(result.ViewName) || result.ViewName == "SearchResults");
            Assert.Equal(viewModel.SearchTerm, outputModel.SearchTerm);
            Assert.Equal(viewModel.Results, outputModel.Results);
        }
        public ActionResult Result(SearchFormViewModel searchForm)
        {
            SearchResultsViewModel results = searchFormManager.Search(searchForm);

            Session["currentSearch"] = results;
            return(View(results));
        }
        public EnterpriseSearchResultPage()
        {
            InitializeComponent();

            SearchResultList sampleList = new SearchResultList
            {
                Results = new System.Collections.Generic.List <SearchResult>()
                {
                    new SearchResult()
                    {
                        Score = 0.9, Content = "Test search item 1", StoragePath = "https://www.google.com"
                    },
                    new SearchResult()
                    {
                        Score = 0.7, Content = "Test search item 2", StoragePath = "https://www.bing.com"
                    }
                },
                OriginalQuery = "search"
            };

            this.lblOriginalQuery.Text = sampleList.OriginalQuery;

            var sampleViewModel = new SearchResultsViewModel(sampleList);

            this.BindingContext = sampleViewModel;
        }
示例#21
0
 public SearchController(
     SearchResultsViewModel.Factory searchViewModelFactory,
     IMusicProvider musicProvider)
 {
     _searchViewModelFactory = searchViewModelFactory;
     _musicProvider = musicProvider;
 }
        public async Task PostSearchResults_WithSelectedOrganisationId_RedirectsToJoinOrganisationAction()
        {
            // Arrange
            var organisationSearcher = A.Dummy <ISearcher <OrganisationSearchResult> >();

            var weeeClient = A.Dummy <Func <IWeeeClient> >();

            var controller = new OrganisationRegistrationController(
                weeeClient,
                organisationSearcher,
                configurationService);

            var viewModel = new SearchResultsViewModel()
            {
                SelectedOrganisationId = new Guid("05DF9AE8-DACE-4173-A227-16933EB5D5F8")
            };

            // Act
            var result = await controller.SearchResults(viewModel);

            // Assert
            var redirectResult = result as RedirectToRouteResult;

            Assert.NotNull(redirectResult);

            Assert.Equal("JoinOrganisation", redirectResult.RouteValues["action"]);
            Assert.Equal(new Guid("05DF9AE8-DACE-4173-A227-16933EB5D5F8"), redirectResult.RouteValues["OrganisationId"]);
        }
示例#23
0
 public override void Given()
 {
     SearchResultsViewModel = new SearchResultsViewModel {
         SearchUln = SearchUln
     };
     Controller.ModelState.AddModelError("SearchUln", SearchResultsContent.Uln_Not_Valid_Validation_Message);
 }
示例#24
0
        public ActionResult Search(string query, int?page, string titlesonly)
        {
            var pageNumber = page ?? 1;

            if (pageNumber <= 0)
            {
                pageNumber = 1;
            }

            var q = new SearchQuery
            {
                Query       = query,
                CurrentPage = pageNumber,
                TitlesOnly  = !string.IsNullOrWhiteSpace(titlesonly),
            };

            var vm = new SearchResultsViewModel {
                Query = q, SearchResults = new List <SearchResultsViewModel.SearchResult>(), TotalResults = 0
            };

            try
            {
                vm = Core.Index.SearchWithSuggestions(q);
            }
            catch (ParseException ex)
            {
                ViewBag.ErrorMessage = "Error: " + ex.Message;
            }

            ViewBag.Query = q;

            return(View(vm));
        }
示例#25
0
        private async Task <SearchResultsViewModel> GetSearchResults(string route, string postcode, int distance)
        {
            var viewModel = new SearchResultsViewModel();

            viewModel.Route    = route;
            viewModel.Distance = distance;
            viewModel.Postcode = postcode;

            var routeId = route.Replace("-", " ");

            var routes     = _repository.GetRoutes();
            var searchTask = _vacanciesService.GetByRoute(routeId, postcode, Convert.ToInt32(distance));

            await Task.WhenAll(routes, searchTask);

            var searchResults = searchTask.Result;

            if (searchResults != null)
            {
                viewModel.TotalResults = searchResults.Results.Count;
                viewModel.Results      = searchResults.Results.Where(w => w.DistanceInMiles <= distance).Take(100).ToList();

                viewModel.Location     = searchResults.searchLocation;
                viewModel.StaticMapUrl = _mappingService.GetStaticMapsUrl(searchResults.Results.Select(p => p.Location), "680", "530");

                viewModel.Country = searchResults.Country;
                viewModel.Routes  = routes.Result;
            }


            return(viewModel);
        }
        public async Task PostSearchForAatf_ValidViewModelSelectedOrganisation_RedirectsToAdd()
        {
            var organisationId = Guid.NewGuid();
            var searchTerm     = "civica";

            IList <OrganisationSearchResult> results = new List <OrganisationSearchResult>()
            {
                new OrganisationSearchResult()
                {
                    Name           = searchTerm,
                    OrganisationId = organisationId
                }
            };

            A.CallTo(() => organisationSearcher.Search(searchTerm, 5, false)).Returns(results);

            var viewModel = new SearchResultsViewModel()
            {
                Results                = results,
                SearchTerm             = searchTerm,
                SelectedOrganisationId = organisationId,
                EntityType             = EntityType.Aatf
            };

            var result = await controller.SearchResults(viewModel) as RedirectToRouteResult;

            result.RouteValues["action"].Should().Be("Add");
            result.RouteValues["controller"].Should().Be("AddAatf");
            Assert.Equal(organisationId, result.RouteValues["organisationId"]);
        }
示例#27
0
        public PartialViewResult SubmitBikeSearch(BikeSearchViewModel viewModel)
        {
            var resultsViewModel = new SearchResultsViewModel();

            var results = _searchService.SearchBikeCards(viewModel);

            resultsViewModel.CountBikes = _searchService.GetCountAllBikes(viewModel.SearchTerm);

            foreach (var result in results)
            {
                var bike = _bikeCardService.GetBikeCardContent(result.ItemId.ToString());

                resultsViewModel.Results.Add(new SearchResultViewModel()
                {
                    Id          = result.ItemId.ToString(),
                    BikeName    = result.BikeName,
                    TypeEngine  = result.TypeEngine,
                    MaxSpeed    = result.MaxSpeed,
                    ImgUrl      = bike.Image.Src,
                    Fuel        = result.Fuel,
                    Description = result.Description,
                    Price       = result.Price
                });
            }

            return(PartialView("~/Areas/ATV/Views/Search/_BikeSearchResult.cshtml", resultsViewModel));
        }
示例#28
0
        public IActionResult GetNextSearchResults([FromQuery] SearchResultsViewModel model)
        {
            var allResults = _searchManager.Search(model.SearchValue.Trim().ToLower(), model.SearchType);
            int toTake     = 0;

            if (allResults.Count > model.Take + model.Skip)
            {
                toTake = model.Take;
            }
            else
            {
                toTake = allResults.Count - model.Skip;
            }
            if (toTake > 0)
            {
                for (int i = 0; i < model.Skip; i++)
                {
                    allResults.Dequeue();
                }
            }


            for (int i = 0; i < toTake; i++)
            {
                model.Results.Enqueue(allResults.Peek(), allResults.PeekPriority());
                allResults.Dequeue();
            }

            return(View(model));
        }
示例#29
0
        public ActionResult Results(SearchRequestViewModel model)
        {
            SearchResultsViewModel results = null;

            if (ModelState.IsValid)
            {
                results = GetCommand <SearchQueryCommand>().ExecuteCommand(model);
            }
            else
            {
                var errorMessage = SearchGlobalization.SearchResults_FailedToGetResults;
                var modelError   = ModelState.Values.SelectMany(v => v.Errors).Select(v => v.ErrorMessage).FirstOrDefault();
                if (!string.IsNullOrWhiteSpace(modelError))
                {
                    errorMessage = string.Concat(errorMessage, " ", modelError);
                }

                Messages.AddError(errorMessage);
            }

            if (results == null && Messages.Error != null && Messages.Error.Count > 0)
            {
                results = new SearchResultsViewModel {
                    ErrorMessage = Messages.Error[0]
                };
            }

            return(PartialView("SearchResultsWidget", results));
        }
示例#30
0
        public IActionResult SearchResult(SearchViewModel model)
        {
            if (this.ModelState.IsValid)
            {
                var result = new FolloweeFromApiDto[0];

                try
                {
                    result = twitterApiCallService.GetTwitterUsersByScreenName(model.SearchInput);
                }
                catch (Exception e)
                {
                    return(this.View("NotFound"));
                }

                if (result.Length < 1)
                {
                    TempData["Not-Found-Message"] = $"No results found matching {model.SearchInput}";
                    return(RedirectToAction("Search"));
                }
                var vm = new SearchResultsViewModel {
                    SearchResults = result
                };

                return(this.View(vm));
            }

            return(this.View());
        }
示例#31
0
        // GET: Rentals
        public virtual ActionResult SearchResult(SearchViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(MVC.Home.Views.Index, viewModel));
            }

            var returnDate = viewModel.ReturnDate;
            var pickupDate = viewModel.PickupDate;

            var cars    = context.Cars.Include(car => car.CarGroup).AsEnumerable();
            var rentals = context.Rentals.AsEnumerable();

            foreach (var rental in rentals)
            {
                if (rental.PickupDate < returnDate && pickupDate < rental.ReturnDate)
                {
                    cars = cars.Where(car => car.Id != rental.CarId);
                }
            }

            var resultCarGroupsIds = new List <int>();

            foreach (var car in cars)
            {
                resultCarGroupsIds.Add(car.CarGroupId);
            }
            resultCarGroupsIds = resultCarGroupsIds.Distinct().ToList();

            var resultCarGroups = context.CarGroups.Include(c => c.CarGroupDetails).Where(x => resultCarGroupsIds.Contains(x.Id));

            var searchResultsModel = new SearchResultsViewModel(resultCarGroups, pickupDate, returnDate);

            return(View(MVC.Rentals.Views.SearchResult, searchResultsModel));
        }
        public async Task<ActionResult> SearchResults(string searchTerm)
        {
            SearchResultsViewModel viewModel = new SearchResultsViewModel();
            viewModel.SearchTerm = searchTerm;
            viewModel.Results = await organisationSearcher.Search(searchTerm, maximumSearchResults, false);

            return View(viewModel);
        }
        public async Task<ActionResult> SearchResults(SearchResultsViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.Results = await organisationSearcher.Search(viewModel.SearchTerm, maximumSearchResults, false);

                return View(viewModel);
            }

            return RedirectToAction("JoinOrganisation", new
            {
                OrganisationId = viewModel.SelectedOrganisationId.Value
            });
        }
示例#34
0
        public ActionResult PerformSearch(string searchText, string filter)
        {
            var resp = _userManager.GetUserSearchByNameAndFilter(new UserSearchRequest() { SearchText = searchText.Trim(), RoleFilter = (filter == "All") ? string.Empty : filter.Trim() });

            var m = new SearchResultsViewModel();

            foreach (var item in resp.Values)
            {
                m.Results.Add(new SearchResult()
                    {
                        DisplayName = String.Format("{0}, {1}", item.LastName, item.FirstName),
                        EmailAddress = item.EmailAddress,
                        UserId = item.UserId,
                        MembershipId = item.MembershipGuid,
                        AccountType = item.UserType.ToString()
                    });
            }

            var uiresult = new UIResponse<SearchResultsViewModel>();
            uiresult.Subject = m;
            uiresult.HtmlResult = RenderPartialViewToString("SearchResults", m);
            uiresult.Status = resp.Status;
            return Json(uiresult, JsonRequestBehavior.AllowGet);
        }
        //Prepares the exact address property object for view
        //If the address exists in DB, configure its lat/lng
        //If it doesnt, configure it for the view and give its needed data for the view.
        private SearchResultsViewModel ConfigureExactAddressForView(SearchCompare geocodedAddress)
        {
            Geography locationData;
            var exactproperty = SearchForExactAddressLocation(geocodedAddress);
            if (exactproperty != null)
            {
                exactproperty.type = "exact";

                if (exactproperty.latitude == 0m)
                {
                    locationData = GetLatLng(exactproperty.formatted_address);
                    if (locationData != null)
                    {
                        exactproperty.latitude = locationData.latitude;
                        exactproperty.longitude = locationData.longitude;
                    }
                }
                return exactproperty;
            }
            else
            {
                SearchResultsViewModel V1 = new SearchResultsViewModel();
                V1.propertyID = 0;
                V1.formatted_address = geocodedAddress.formatted_address;
                V1.latitude = geocodedAddress.latitude;
                V1.longitude = geocodedAddress.longitude;
                V1.type = "exact-new";

                return V1;
            }
        }
        //*************************
        //SEARCH Functions
        //*************************
        //GET
        public ActionResult Search(string locationinput, int? pagenum)
        {
            if (locationinput == null) { return RedirectToAction("Index", "Home");}
            if (pagenum == null) { pagenum = 1; }

            //Geocode input address
            SearchCompare geocodedAddress = Geocode(locationinput);
            if (geocodedAddress == null) { return null; }

            SearchResultsViewModel exactproperty = new SearchResultsViewModel();
            List<SearchResultsViewModel> relatedproperties = null;

            if (pagenum == 1 && geocodedAddress.type == GoogleAddressType.StreetAddress) {
                exactproperty = ConfigureExactAddressForView(geocodedAddress);
            }

            relatedproperties = SearchAllRelatedProperties(geocodedAddress, exactproperty.propertyID);

            if (exactproperty.type != null) {
                relatedproperties.Insert(0, exactproperty);
            }

            var results = OnePageOfResults(relatedproperties, pagenum);
            ViewBag.address = geocodedAddress.formatted_address;
            return View(results);
        }
        public async Task PostSearchResults_WithSelectedOrganisationId_RedirectsToJoinOrganisationAction()
        {
            // Arrange
            ISearcher<OrganisationSearchResult> organisationSearcher = A.Dummy<ISearcher<OrganisationSearchResult>>();

            Func<IWeeeClient> weeeClient = A.Dummy<Func<IWeeeClient>>();

            OrganisationRegistrationController controller = new OrganisationRegistrationController(
                weeeClient,
                organisationSearcher);

            SearchResultsViewModel viewModel = new SearchResultsViewModel()
            {
                SelectedOrganisationId = new Guid("05DF9AE8-DACE-4173-A227-16933EB5D5F8")
            };

            // Act
            ActionResult result = await controller.SearchResults(viewModel);

            // Assert
            RedirectToRouteResult redirectResult = result as RedirectToRouteResult;
            Assert.NotNull(redirectResult);

            Assert.Equal("JoinOrganisation", redirectResult.RouteValues["action"]);
            Assert.Equal(new Guid("05DF9AE8-DACE-4173-A227-16933EB5D5F8"), redirectResult.RouteValues["OrganisationId"]);
        }
        public async Task PostSearchResults_WithInvalidModel_DoesSearchForFiveResultsAndReturnsSearchReturnsView()
        {
            // Arrange
            List<OrganisationSearchResult> fakeResults = new List<OrganisationSearchResult>()
            {
                new OrganisationSearchResult()
                {
                    OrganisationId = new Guid("05DF9AE8-DACE-4173-A227-16933EB5D5F8"),
                    Name = "Test Company",
                }
            };

            ISearcher<OrganisationSearchResult> organisationSearcher = A.Fake<ISearcher<OrganisationSearchResult>>();
            A.CallTo(() => organisationSearcher.Search("testSearchTerm", 5, false))
                .Returns(fakeResults);

            Func<IWeeeClient> weeeClient = A.Dummy<Func<IWeeeClient>>();

            OrganisationRegistrationController controller = new OrganisationRegistrationController(
                weeeClient,
                organisationSearcher);

            SearchResultsViewModel viewModel = new SearchResultsViewModel();
            viewModel.SearchTerm = "testSearchTerm";
            controller.ModelState.AddModelError("SomeProperty", "Exception");

            // Act
            ActionResult result = await controller.SearchResults(viewModel);

            // Assert
            ViewResult viewResult = result as ViewResult;
            Assert.NotNull(viewResult);

            Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "searchresults");

            SearchResultsViewModel resultsViewModel = viewResult.Model as SearchResultsViewModel;
            Assert.NotNull(resultsViewModel);

            Assert.Contains(resultsViewModel.Results, r => r.OrganisationId == new Guid("05DF9AE8-DACE-4173-A227-16933EB5D5F8"));
        }
示例#39
0
        public ActionResult Search(string Search)
        {
            using (ForumRespository db = new ForumRespository())
            {
                Forum_User CurrentUser = GetCurrentUser(db);

                var Model = new SearchResultsViewModel() { SearchString = Search };

                Model.AddNavigation("Search Results");

                if (!db.CheckRolePermissions(CurrentUser, R => R.AllowSearch))
                    return AuthenticationHelper.AccessDeniedView(Model);

                var Posts = db.GetMatchingPosts(Search);
                var Threads = db.GetMatchingThreads(Search);

                Model.ResultCount = Posts.Count() + Threads.Count();

                // Temp
                int I = 0;
                ThreadInfoModelFromThread(db, CurrentUser, Threads.Take(THREADS_PER_PAGE), Model.ThreadInfoList);
                foreach (var Post in Posts.Take(POSTS_PER_PAGE))
                {
                    Model.PostInfoList.Add(new PostWithThread()
                    {
                        ThreadName = Post.Forum_Thread.Title,
                        Post = new PostViewModel()
                            {
                                Locked = true,
                                PostID = Post.PostID,
                                PostNumber = ++I,
                                PostText = PostParser.Parse(Post.PostText),
                                PostTime = Post.TimeStamp,
                                ThreadID = Post.ThreadID,
                                Poster = new UserViewModel()
                                {
                                    Name = Post.Forum_User.Username,
                                    UserID = Post.Forum_User.UserID
                                }
                            }
                    });
                }

                return View("SearchResults", Model);
            }
        }
 private void View_Loaded(object sender, System.Windows.RoutedEventArgs e)
 {
     ViewModel = _container.Register(Component.For<SearchResultsViewModel>().LifeStyle.Transient).Resolve<SearchResultsViewModel>();
     ViewModel.Initialize();
 }
示例#41
0
        public ActionResult Search(string searchTerm, string searchType)
        {
            if (string.IsNullOrWhiteSpace(searchTerm))
            {
                return Redirect("~");
            }

            searchType = (searchType ?? "all").ToLower();

            var viewModel = new SearchResultsViewModel();
            viewModel.SearchTerm = searchTerm;

            var searchTerms = searchTerm.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            if (searchType == "all" || searchType == "show")
            {
                var query = DatabaseSession.Query<Show>()
                    .Fetch(x => x.Photo).AsQueryable();
                foreach (var term in searchTerms)
                {
                    query = query.Where(x => x.Title.Contains(term));
                }
                var shows = query.ToList();
                viewModel.Results.AddRange(shows.Select(x => new SearchResultsViewModel.SearchResult
                {
                    Name = x.Title,
                    Year = x.Year.ToString(),
                    SortField = x.Title,
                    ImageUrl = x.Photo.GetTinyFileURL(),
                    LinkUrl = Url.Action<ShowController>(c => c.ShowDetails(x.ShowId)),
                }));
            }

            if (searchType == "all" || searchType == "peep")
            {
                var query = DatabaseSession.Query<Person>()
                    .Fetch(x => x.Photo).AsQueryable();
                foreach (var term in searchTerms)
                {
                    query = query.Where(x => x.LastName.Contains(term) ||
                                             x.FirstName.Contains(term) ||
                                             x.Nickname.Contains(term));
                }
                var people = query.ToList();
                viewModel.Results.AddRange(people.Select(x => new SearchResultsViewModel.SearchResult
                {
                    Name = x.Fullname,
                    SortField = x.LastName,
                    ImageUrl = x.Photo.GetTinyFileURL(),
                    LinkUrl = Url.Action<PersonController>(c => c.PersonDetails(x.PersonId)),
                }));
            }

            if (viewModel.Results.Count == 1)
            {
                return Redirect(viewModel.Results[0].LinkUrl);
            }

            ViewBag.SearchTerm = searchTerm;
            return View(viewModel);
        }