public ActionResult UserInformation(int?UserId) { if (UserId != null) { var user = db.Users.Where(i => i.Login == HttpContext.User.Identity.Name).FirstOrDefault(); var ViewUser = db.Users.Where(i => i.UserID == UserId).FirstOrDefault(); if (ViewUser != null) { OffersAndBundles offersAndBundles = new OffersAndBundles(); ViewModels.UserViewModel UserViewModel = new ViewModels.UserViewModel(); UserViewModel.user = ViewUser; //var offers = db.Offers.Where(i => i.User.UserID == ViewUser.UserID && i.IsActive).ToList(); var offers = ViewUser.Offers.Where(o => o.IsActive).ToList(); //var bundles = db.Bundles.Where(i => i.User.UserID == ViewUser.UserID && i.IsActive).ToList(); var bundles = ViewUser.Bundles.Where(b => b.IsActive).ToList(); if (offers != null) { offersAndBundles.Offers = offers; } if (bundles != null) { offersAndBundles.Bundles = bundles; } if (user != null) { var FavouriteOffersIDs = user.FavouriteOffer?.Where(i => i.Offer != null && i.Offer.IsActive).Select(i => i.Offer.OfferID).ToList(); var FavouriteBundlesIDs = user.FavouriteOffer?.Where(i => i.Bundle != null && i.Bundle.IsActive).Select(i => i.Bundle.BundleID).ToList(); var InBucketOffersIDs = user.Bucket?.BucketItems?.Where(i => i.Offer != null && i.Offer.IsActive).Select(i => i.Offer.OfferID).ToList(); var InBucketBundlesIDs = user.Bucket?.BucketItems?.Where(i => i.Bundle != null && i.Bundle.IsActive).Select(i => i.Bundle.BundleID).ToList(); if (FavouriteOffersIDs != null) { offersAndBundles.FavouriteOffersIDs = FavouriteOffersIDs; } if (FavouriteBundlesIDs != null) { offersAndBundles.FavouriteBundlesIDs = FavouriteBundlesIDs; } if (InBucketOffersIDs != null) { offersAndBundles.InBucketOffersIDs = InBucketOffersIDs; } if (InBucketBundlesIDs != null) { offersAndBundles.InBucketBundlesIDs = InBucketBundlesIDs; } if (user.UserID == ViewUser.UserID) { UserViewModel.IsOwner = user == ViewUser; } } UserViewModel.OffersAndBundles = offersAndBundles; return(View(UserViewModel)); } } return(new HttpStatusCodeResult(404)); }
public ActionResult Favourites() { var user = db.Users.Where(i => i.Login == HttpContext.User.Identity.Name).SingleOrDefault(); if (user != null) { List <Offer> favUserOffers = new List <Offer>(); List <Bundle> favUserBundles = new List <Bundle>(); List <int> OffersIDsInBucket = new List <int>(); List <int> BundlesIDsInBucket = new List <int>(); foreach (var favOffer in user.FavouriteOffer) { if (favOffer != null && favOffer.Offer != null) { favUserOffers.Add(favOffer.Offer); continue; } else if (favOffer != null && favOffer.Bundle != null) { favUserBundles.Add(favOffer.Bundle); } } OffersIDsInBucket = user?.Bucket?.BucketItems?.Where(i => i.Offer != null && i.Offer.IsActive).Select(i => i.Offer.OfferID).ToList(); BundlesIDsInBucket = user?.Bucket?.BucketItems?.Where(i => i.Bundle != null && i.Bundle.IsActive).Select(i => i.Bundle.BundleID).ToList(); OffersAndBundles list = new OffersAndBundles { Offers = favUserOffers, Bundles = favUserBundles, InBucketOffersIDs = OffersIDsInBucket, InBucketBundlesIDs = BundlesIDsInBucket }; return(View(list)); } else { return(new HttpStatusCodeResult(404)); } }
public ActionResult Kat(int KatID = 1) //We come here from { if (KatID < 1 || KatID > 14) { return(new HttpStatusCodeResult(404)); } //Filters logic var user = db.Users.Where(i => i.Login == HttpContext.User.Identity.Name).FirstOrDefault(); OffersAndBundles offersAndBundles = new OffersAndBundles(); var chosenCategory = db.Categories.Where(c => c.CategoryID == KatID).FirstOrDefault(); if (chosenCategory != null) { ViewBag.CategoryName = chosenCategory.CategoryName; } var Offers = db.Offers.Where(i => i.Category.CategoryID == KatID && i.IsActive).ToList(); if (Offers != null) { var OffersFiltered = Offers .OrderByDescending(i => i.CreationDate) .Take(20) .ToList(); offersAndBundles.Offers = OffersFiltered; if (user != null) { var FavouriteOffers = user.FavouriteOffer.Where(i => i.Offer != null).Select(i => i.Offer).ToList(); offersAndBundles.FavouriteOffersIDs = FavouriteOffers .Where(i => i.IsActive && OffersFiltered.Contains(i)) .Select(i => i.OfferID); if (user.Bucket.BucketItems != null) { offersAndBundles.InBucketOffersIDs = user.Bucket.BucketItems.Where(i => i.Offer != null) .Select(i => i.Offer.OfferID).ToList(); } } } else { ViewBag.Message = "Brak ofert dla podanych filtrów"; } var Bundles = db.Bundles.Where(i => i.Offers.Where(x => x.Category.CategoryID == KatID).Any() && i.IsActive).ToList(); if (Bundles != null) { var BundlesFiltered = Bundles.OrderByDescending(i => i.CreationDate) .Take(20) .ToList(); offersAndBundles.Bundles = BundlesFiltered; if (user != null) { var FavouriteBundles = user.FavouriteOffer.Where(i => i.Bundle != null).Select(i => i.Bundle).ToList(); if (FavouriteBundles != null) { offersAndBundles.FavouriteBundlesIDs = FavouriteBundles .Where(i => i.IsActive && BundlesFiltered.Contains(i)) .Select(i => i.BundleID); if (user.Bucket.BucketItems != null) { offersAndBundles.InBucketBundlesIDs = user.Bucket.BucketItems.Where(i => i.Bundle != null) .Select(i => i.Bundle.BundleID).ToList(); } } } } else { ViewBag.Message = "Brak zestawów dla podanych filtrów"; } return(View(offersAndBundles)); }
public ActionResult Search() { string query = Request["searchText"]; User user = db.Users.Where(i => i.Login == HttpContext.User.Identity.Name).FirstOrDefault(); OffersAndBundles searchResult = new OffersAndBundles(); if (query != null && query.Trim().Length > 0 && query != string.Empty) { ViewBag.QueryText = query.Trim(); string queryText = query.Trim().ToLower(); var foundOffers = db.Offers .Where(o => o.IsActive && (o.Title.Contains(queryText) || o.Description.Contains(queryText))) .OrderByDescending(o => o.CreationDate) .Take(20) .ToList(); var foundBundles = db.Bundles .Where(b => b.IsActive && b.Title.Contains(queryText) || b.Offers.Where(o => o.Title.Contains(queryText)).Any()) .OrderByDescending(o => o.CreationDate) .Take(20) .ToList(); searchResult.Offers = foundOffers; searchResult.Bundles = foundBundles; if (user != null) { var favouriteOffers = user.FavouriteOffer.Where(i => i.Offer != null).Select(i => i.Offer).ToList(); searchResult.FavouriteOffersIDs = favouriteOffers .Where(i => i.IsActive && foundOffers.Contains(i)) .Select(i => i.OfferID); if (user.Bucket.BucketItems != null) { searchResult.InBucketOffersIDs = user.Bucket.BucketItems.Where(i => i.Offer != null) .Select(i => i.Offer.OfferID).ToList(); } var favouriteBundles = user.FavouriteOffer.Where(i => i.Bundle != null).Select(i => i.Bundle).ToList(); if (favouriteBundles != null) { searchResult.FavouriteBundlesIDs = favouriteBundles .Where(i => i.IsActive && foundBundles.Contains(i)) .Select(i => i.BundleID); if (user.Bucket.BucketItems != null) { searchResult.InBucketBundlesIDs = user.Bucket.BucketItems.Where(i => i.Bundle != null) .Select(i => i.Bundle.BundleID).ToList(); } } } } if (searchResult.Bundles.Count() == 0) { ViewBag.LackBundles = true; } if (searchResult.Offers.Count() == 0) { ViewBag.LackOffers = true; } return(View(searchResult)); }
public ActionResult Kat(FormCollection collection, int KatID = 1) //We come here from { var chosenCategory = db.Categories.Where(c => c.CategoryID == KatID).FirstOrDefault(); if (chosenCategory != null) { ViewBag.CategoryName = chosenCategory.CategoryName; } //Filters logic var user = db.Users.Where(i => i.Login == HttpContext.User.Identity.Name).FirstOrDefault(); OffersAndBundles offersAndBundles = new OffersAndBundles(); int OffersAmount = db.Offers.Where(i => i.IsActive && i.Bundle == null).Count(); int BundlesAmount = db.Bundles.Where(i => i.IsActive).Count(); offersAndBundles.MaxPage = OffersAmount > BundlesAmount ? (OffersAmount / 20) + 1 : (BundlesAmount / 20) + 1; int Page = int.TryParse(collection["page"], out int page) && page > 0 ? page : 1; #region PRICE FILTER string lowestPrice = ""; string highestPrice = ""; if (collection["price"] != null) { string[] range = collection["price"].Replace(" ", "").Split('-'); lowestPrice = range[0].Replace("zł", ""); highestPrice = range[1].Replace("zł", ""); } int startingPriceFilter = int.TryParse(lowestPrice, out int startingPrice) ? startingPrice : 0; int endingPriceFilter = int.TryParse(highestPrice, out int endingPrice) ? endingPrice : 1000; #endregion #region STATE FILTER foreach (var key in collection.AllKeys) { var value = collection[key]; Debug.WriteLineIf(value != null, "Kolejna wartość dla: " + key + "\t to:" + value); } List <OfferState> possibleStates = new List <OfferState>(); if (!string.IsNullOrEmpty(collection["stateNew"])) { string isNewString = collection["stateNew"]; Debug.WriteLine("StateNew nie jest NULL " + isNewString); if (Convert.ToBoolean(isNewString)) { possibleStates.Add(OfferState.Nowy); } } if (!string.IsNullOrEmpty(collection["stateUsed"])) { string isUsedString = collection["stateUsed"]; Debug.WriteLine("StateUsed nie jest NULL! " + isUsedString); if (Convert.ToBoolean(isUsedString)) { possibleStates.Add(OfferState.Używany); } } if (!string.IsNullOrEmpty(collection["stateDamaged"])) { string isDamagedString = collection["stateDamaged"]; Debug.WriteLine("StateDamaged nie jest NULL! " + isDamagedString); if (Convert.ToBoolean(isDamagedString)) { possibleStates.Add(OfferState.Uszkodzony); } } Debug.WriteLine("Tyle chce stanów: " + possibleStates.Count); #endregion var Offers = db.Offers.Where(i => i.Category.CategoryID == KatID && i.IsActive).ToList(); if (Offers != null) { var OffersFiltered = Offers .Where(i => i.Price > startingPrice && i.Price < endingPrice && possibleStates.Contains(i.OfferState)) .OrderByDescending(i => i.CreationDate) .Skip(20 * (Page - 1)) .Take(20) .ToList(); offersAndBundles.Offers = OffersFiltered; if (user != null) { var FavouriteOffers = user.FavouriteOffer.Where(i => i.Offer != null).Select(i => i.Offer).ToList(); offersAndBundles.FavouriteOffersIDs = FavouriteOffers .Where(i => i.IsActive && OffersFiltered.Contains(i)) .Select(i => i.OfferID); if (user.Bucket.BucketItems != null) { offersAndBundles.InBucketOffersIDs = user.Bucket.BucketItems.Where(i => i.Offer != null) .Select(i => i.Offer.OfferID).ToList(); } } } else { ViewBag.Message = "Brak ofert dla podanych filtrów.\n"; } var Bundles = db.Bundles.Where(i => i.Offers.Where(x => x.Category.CategoryID == KatID).Any() && i.IsActive).ToList(); var BundlesFiltered = Bundles.Where(i => i.BundlePrice > startingPrice && i.BundlePrice < endingPrice) .OrderByDescending(i => i.CreationDate) .Skip(20 * (page - 1)) .Take(20) .ToList(); if (BundlesFiltered != null) { offersAndBundles.Bundles = BundlesFiltered; if (user != null) { var FavouriteBundles = user.FavouriteOffer.Where(i => i.Bundle != null).Select(i => i.Bundle).ToList(); if (FavouriteBundles != null) { offersAndBundles.FavouriteBundlesIDs = FavouriteBundles .Where(i => i.IsActive && BundlesFiltered.Contains(i)) .Select(i => i.BundleID); if (user.Bucket.BucketItems != null) { offersAndBundles.InBucketBundlesIDs = user.Bucket.BucketItems.Where(i => i.Bundle != null) .Select(i => i.Bundle.BundleID).ToList(); } } } } else { ViewBag.Message += "Brak zestawów dla podanych filtrów.\n"; } return(View(offersAndBundles)); }