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 })); }
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]); } }
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)); }
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); }
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); }
/** * 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")); }
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")); }
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); }