コード例 #1
0
        public virtual PartialViewResult SearchBox()
        {
            var result = new SearchBoxViewModel
            {
                SearchResultsUrl = _searchUmbracoHelper.GetSearchPage()?.Url
            };

            return(PartialView(SearchBoxViewPath, result));
        }
コード例 #2
0
        public SearchBox()
        {
            InitializeComponent();
            _searchBoxViewModel = new SearchBoxViewModel();
            DataContext         = _searchBoxViewModel;
            var commandBinding = new CommandBinding();

            commandBinding.Command     = SearchCommand;
            commandBinding.CanExecute += commandBinding_CanExecute;
            commandBinding.Executed   += commandBinding_Executed;
            SearchCommand.InputGestures.Add(new KeyGesture(Key.Enter));
            CommandBindings.Add(commandBinding);
        }
コード例 #3
0
        public static SearchBoxViewModel GetSearchBoxModel(int?numOfBeds,
                                                           int?numOfBaths, int?numOfStories,
                                                           string municipality = null, string priceRangeString = null)
        {
            var model = new SearchBoxViewModel
            {
                Municipality     = municipality,
                PriceRangeString = priceRangeString,
                NumOfBeds        = numOfBeds,
                NumOfBaths       = numOfBaths,
                NumOfStories     = numOfStories
            };

            model.PriceRange = GetPairPriceRange(model.PriceRangeString);

            return(model);
        }
コード例 #4
0
        public async Task <ActionResult> SearchListing
            (int?ViewingId, int?page, int?listingRequestedDetails,
            SearchBoxViewModel searchModel, string orderBy = null)
        {
            var model = ListingViewHelperUtilites.GetDefaultSearchParams(orderBy);

            if (searchModel != null)
            {
                searchModel.PriceRange = ListingViewHelperUtilites
                                         .GetPairPriceRange(searchModel.PriceRangeString);
            }


            var sortedList = await GetsortedListing
                                 (searchModel ?? new SearchBoxViewModel(), orderBy, page);


            if (ViewingId.HasValue)
            {
                model.ViewingID = ViewingId;//We know it is in edit mode
            }
            model.CurrentSort = orderBy;
            model.Listings    = sortedList;
            model.SearchModel = searchModel;


            if (listingRequestedDetails.HasValue)
            {
                model.DisplayOnlyModel = await _listingRepo
                                         .Get(listingRequestedDetails.Value);
            }


            if (model.DisplayOnlyModel == null)
            {
                model.DisplayOnlyModel = new Listing();
            }

            return(View(model));
        }
コード例 #5
0
 public void SetType(Type dboType)
 {
     vm                  = new SearchBoxViewModel(dboType);
     DataContext         = vm;
     vm.PropertyChanged += Vm_PropertyChanged;
 }
コード例 #6
0
        public async Task <IPagedList <Listing> > GetsortedListing(
            SearchBoxViewModel searchModel,
            string orderBy = null, int?page = 1)
        {
            var minPrice = Convert.ToDecimal(searchModel.PriceRange.First);
            var maxPrice = Convert.ToDecimal(searchModel.PriceRange.Second);


            var query = _listingRepo.GetIqueryableListings(
                searchModel.Municipality,
                minPrice, maxPrice, searchModel.NumOfBeds ?? 0,
                searchModel.NumOfBaths ?? 0, searchModel.NumOfStories ?? 0);


            switch (orderBy)
            {
            case "PostalCode":
                query = query.OrderBy(x => x.ListingAddress.PostalCode);
                break;

            case "PostalCode_Desc":
                query = query.OrderByDescending(x => x.ListingAddress.PostalCode);
                break;

            case "Price":
                query = query.OrderBy(x => x.Price);
                break;

            case "Price_Desc":
                query = query.OrderByDescending(x => x.Price);
                break;

            case "SquareFootage":
                query = query.OrderBy(x => x.SquareFootage);
                break;

            case "SquareFootage_Desc":
                query = query.OrderByDescending(x => x.SquareFootage);
                break;

            case "NumOfBeds":
                query = query.OrderBy(x => x.NumOfBeds);
                break;

            case "NumOfBeds_Desc":
                query = query.OrderByDescending(x => x.NumOfBeds);
                break;

            case "NumOfBaths":
                query = query.OrderBy(x => x.NumOfBaths);
                break;

            case "NumOfBaths_Desc":
                query = query.OrderByDescending(x => x.NumOfBaths);
                break;

            case "NumOfStories":
                query = query.OrderBy(x => x.NumOfStories);
                break;

            case "NumOfStories_Desc":
                query = query.OrderByDescending(x => x.NumOfStories);
                break;

            default:
                query = query.OrderBy(l => l.ID);
                break;
            }

            int pageNumber = page ?? 1;

            return(await query.ToPagedListAsync(pageNumber, 10));
        }
コード例 #7
0
 public SearchListingViewModel()
 {
     SearchModel = new SearchBoxViewModel();
 }