Example #1
0
        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));
        }
Example #2
0
        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));
            }
        }
Example #3
0
        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));
        }
Example #4
0
        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));
        }
Example #5
0
        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));
        }