Exemplo n.º 1
0
        public RedirectToRouteResult AddToCart(Guid id)
        {
            // HttpContext contains an information about current context
            // Encapsulates all HTTP-specific information about an individual HTTP request.
            if (id == null)
            {
                throw new HttpException(404, "Product not found");
            }
            bool isLoggedIn;
            var  identifier = UserIdentifier.GetIdentifier(HttpContext, out isLoggedIn);

            //updating last active session
            ProvidersFactory.GetSessionsProvider().UpdateOrAddSession(identifier, isLoggedIn);

            var product = ReadersFactory.GetProductsReader().GetProducts().First(guid => guid.Id == id);

            string status;

            if (cartManager.TryAddProduct(product, identifier))
            {
                status = "Successfully added to cart.";
            }
            else
            {
                status = "Product is out of stock. Try again later.";
            }

            return(RedirectToAction("DisplayCart", new { status = status }));
        }
Exemplo n.º 2
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]);
            }
        }
Exemplo n.º 3
0
        public ActionResult Details(Guid id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var song = ReadersFactory.GetProductsReader().GetProducts().First(i => i.Id == id);

            return(View(song));
        }
Exemplo n.º 4
0
        private List <Song> GetCategorizedSongs(string genre)
        {
            var productReader = ReadersFactory.GetProductsReader();
            var listOfSongs   = new List <Song>();

            foreach (var item in productReader.GetProducts())
            {
                if (item is Song && ((Song)item).Genre == genre)
                {
                    listOfSongs.Add((Song)item);
                }
            }

            return(listOfSongs);
        }
Exemplo n.º 5
0
        private List <Book> GetCategorisedBooks(string genre)
        {
            List <Book> listOfBooks    = new List <Book>();
            var         productsReader = ReadersFactory.GetProductsReader();

            foreach (var product in productsReader.GetProducts())
            {
                if (product is Book && ((Book)product).Genre == genre)
                {
                    listOfBooks.Add((Book)product);
                }
            }

            return(listOfBooks);
        }
Exemplo n.º 6
0
        /**
         * This method will remove only one copy of a specified product
         */
        public RedirectToRouteResult RemoveOneCopy(Guid id)
        {
            if (id == null)
            {
                throw new HttpException(400, "Bad Request");
            }

            bool isLoggedIn;
            var  identifier = UserIdentifier.GetIdentifier(HttpContext, out isLoggedIn);

            ProvidersFactory.GetSessionsProvider().UpdateOrAddSession(identifier, isLoggedIn);

            var product = ReadersFactory.GetProductsReader().GetProducts().First(guid => guid.Id == id);

            cartManager.RemoveOneCopy(product, identifier);

            return(RedirectToAction("DisplayCart"));
        }
Exemplo n.º 7
0
        public RedirectToRouteResult RemoveFromCart(Guid id)
        {
            // when user wants to remove from cart:
            // - find his cart by using identifier.
            // - find corresponding product which has to be removed
            // - call RemoveProduct method on cart, which also will take care of reservation.
            if (id == null)
            {
                throw new HttpException(400, "Bad Request");
            }

            bool isLoggedIn;
            var  identifier = UserIdentifier.GetIdentifier(HttpContext, out isLoggedIn);

            ProvidersFactory.GetSessionsProvider().UpdateOrAddSession(identifier, isLoggedIn);

            var product = ReadersFactory.GetProductsReader().GetProducts().First(guid => guid.Id == id);

            cartManager.RemoveProduct(product, identifier);

            return(RedirectToAction("DisplayCart"));
        }
Exemplo n.º 8
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);
        }