コード例 #1
0
        public ActionResult PlaceArrangements(string placeName, bool isLogged)
        {
            BusinessLogic      logic    = new BusinessLogic();
            MainPageViewModel  model    = new MainPageViewModel();
            SearchArrangements criteria = new SearchArrangements()
            {
                PlaceName = placeName
            };

            model.IsLogged     = isLogged;
            model.Destinations = logic.GetFirstNDestinations(7);
            List <Arrangement> searchedArrangements = new List <Arrangement>();

            searchedArrangements = logic.SearchArrangements(criteria);
            List <Arrangement> topArrangements = logic.TopArrangements();

            foreach (var topArrangement in topArrangements)
            {
                ArrangementDestinationViewModel arrangement = new ArrangementDestinationViewModel();
                arrangement.Arrangement = topArrangement;
                arrangement.Destination = logic.GetArrangementDestination(topArrangement);
                model.TopArrangements.Add(arrangement);
            }

            foreach (var searched in searchedArrangements)
            {
                ArrangementDestinationViewModel arrangement = new ArrangementDestinationViewModel();
                arrangement.Arrangement = searched;
                arrangement.Destination = logic.GetArrangementDestination(searched);
                model.SearchedArrangements.Add(arrangement);
            }

            return(View(model));
        }
コード例 #2
0
        public ActionResult CountryArrangements(String country, bool isLogged)
        {
            BusinessLogic     logic = new BusinessLogic();
            MainPageViewModel model = new MainPageViewModel();

            model.Destinations = logic.GetDestinations();
            model.IsLogged     = isLogged;

            List <Arrangement> topArrangements = logic.TopArrangements();

            foreach (var topArrangement in topArrangements)
            {
                ArrangementDestinationViewModel arrangement = new ArrangementDestinationViewModel();
                arrangement.Arrangement = topArrangement;
                arrangement.Destination = logic.GetArrangementDestination(topArrangement);
                model.TopArrangements.Add(arrangement);
            }

            List <Arrangement> arrangements = logic.GetArrangementsForDestination(country);

            foreach (var arrangement in arrangements)
            {
                ArrangementDestinationViewModel arrangementVM = new ArrangementDestinationViewModel();
                arrangementVM.Arrangement = arrangement;
                arrangementVM.Destination = logic.GetArrangementDestination(arrangement);
                model.Arrangements.Add(arrangementVM);
            }

            SearchArrangements searchArrangements = new SearchArrangements()
            {
                Country = country
            };

            List <Arrangement> searchedArrangements = logic.SearchArrangements(searchArrangements);

            foreach (var searched in searchedArrangements)
            {
                ArrangementDestinationViewModel arrangement = new ArrangementDestinationViewModel();
                arrangement.Arrangement = searched;
                arrangement.Destination = logic.GetArrangementDestination(searched);
                model.SearchedArrangements.Add(arrangement);
            }

            return(View("Arrangements", model));
        }
コード例 #3
0
        public List <Arrangement> SearchArrangements(SearchArrangements criterias)
        {
            if (criterias.Country == null && criterias.PlaceName == null)
            {
                return(new List <Arrangement>());
            }

            string criteria = criterias.Country != null ? criterias.Country : criterias.PlaceName;

            List <Destination> destinations = this.SearchDestinations(criteria);

            destinations.OrderBy(x => x.Country);
            List <Arrangement> arrangements = new List <Arrangement>();

            foreach (var destination in destinations)
            {
                arrangements.AddRange(arrangementRepository.GetArrangementsByDestinationId(destination.Id));
            }

            RemoveUnsuitableArrangements(ref arrangements, criterias);

            return(arrangements);
        }
コード例 #4
0
        private void RemoveUnsuitableArrangements(ref List <Arrangement> arrangements, SearchArrangements criteria)
        {
            string price = SearchArrangementsPropertiesNames.PriceProperty;
            string type  = SearchArrangementsPropertiesNames.TypeProperty;
            string numberOfPassangers = SearchArrangementsPropertiesNames.MaxNumberOfPassengersProperty;
            string duration           = SearchArrangementsPropertiesNames.DurationProperty;
            string startDate          = SearchArrangementsPropertiesNames.StartDateProperty;

            removeFunctionsDictionary[price].Invoke(ref arrangements, criteria.Price);
            removeFunctionsDictionary[numberOfPassangers].Invoke(ref arrangements, criteria.MaxNumberOfPassengers);
            removeFunctionsDictionary[duration].Invoke(ref arrangements, criteria.Duration);
            removeFunctionsDictionary[startDate].Invoke(ref arrangements, criteria.StartDate);
            removeFunctionsDictionary[type].Invoke(ref arrangements, criteria.Type);
        }