예제 #1
0
        private Song GetSong()
        {
            HolidayManager           holidayManager = new HolidayManager();
            List <string>            toSearch;
            RandomItemsProductPicker randomItemsProductPicker = new RandomItemsProductPicker();
            List <Song> listOfSongs = new List <Song>();

            if (holidayManager.IsHoliday(DateTime.Now, out toSearch))
            {
                // search items based on the keywords if it's a holiday
                var listOfSearchedSongs = randomItemsProductPicker.PickItems(
                    ReadersFactory.GetProductsReader(),
                    ReadersFactory.GetStocksReader(),
                    Filters.GetFilterByKeyWords(toSearch, typeof(Song)), 1);
                listOfSongs = listOfSearchedSongs.ConvertAll(x => (Song)x);
                return(listOfSongs[0]);
            }
            else
            {
                var listOfRandomBooks = randomItemsProductPicker.PickItems(
                    ReadersFactory.GetProductsReader(),
                    ReadersFactory.GetStocksReader(),
                    Filters.GetFilterByType(typeof(Song)), 1);
                listOfSongs = listOfRandomBooks.ConvertAll(x => (Song)x);
                return(listOfSongs[0]);
            }
        }
예제 #2
0
        private List <Product> GetProducts(List <string> userSearchText)
        {
            var filter = Filters.GetFilterByKeyWords(userSearchText, typeof(Product), false);
            RandomItemsProductPicker randomProductPicker = new RandomItemsProductPicker();
            List <Product>           pickedProducts      = randomProductPicker.PickItems(ReadersFactory.GetProductsReader(), ReadersFactory.GetStocksReader(), filter, Constants.UNLIMITED);

            return(pickedProducts);
        }
예제 #3
0
        private List <Product> _itemsToDisplay; // use a private member in order to store the value and use it in other methods too

        public string OnNavigatedTo(NavigationData data)
        {
            StringBuilder            menu          = new StringBuilder();
            RandomItemsProductPicker productPicker = new RandomItemsProductPicker();

            _itemsToDisplay = productPicker.PickItems(data.ProductsReader, data.StocksReader, Filters.GetFilterByType(typeof(Product)), 5);

            int index = 1;

            foreach (var item in _itemsToDisplay)
            {
                menu.AppendLine($"{index}. {item.Name} - {item.Price:C} ");
                index++;
            }
            menu.AppendLine("");
            menu.AppendLine("A. Search");
            menu.AppendLine("B. Go to the Cart Page\n------------");

            return(menu.ToString());
        }
예제 #4
0
        public string OnNavigatedTo(NavigationData data)
        {
            _navData = data;
            StringBuilder menu = new StringBuilder();

            if (_userInput != null)
            {
                RandomItemsProductPicker searchPageProductPicker = new RandomItemsProductPicker();
                _itemsToDisplay = searchPageProductPicker.PickItems(data.ProductsReader, data.StocksReader, Filters.GetFilterByKeyWords(_userInput, typeof(Product)), int.MaxValue);
                int count = 1;
                foreach (var item in _itemsToDisplay)
                {
                    if (_navData.StocksReader.GetProductStock(item.Id) == 0)
                    {
                        menu.AppendLine($"{count}. {item.Name} - {item.Price:C} - out of stock!");
                    }
                    else
                    {
                        menu.AppendLine($"{count}. {item.Name} - {item.Price:C}");
                    }

                    count++;
                }
            }
            else
            {
                menu.AppendLine("Please enter your query!");
            }

            if (_userInput != null)
            {
                menu.AppendLine("A. Search again");
            }

            menu.AppendLine("B. Go to the main page");

            return(menu.ToString());
        }