Exemplo n.º 1
0
        public decimal ComputeAlbumAverage(Int32 Artist)
        {
            AvgAlbumRating     rating     = new AvgAlbumRating();
            Album              artist     = db.Albums.Find(Artist);
            List <AlbumReview> reviewList = new List <AlbumReview>();

            reviewList = db.AlbumReviews.ToList();
            List <AlbumReview> selectedReviewList = new List <AlbumReview>();

            selectedReviewList = db.AlbumReviews.Where(a => a.Album.AlbumTitle.Contains(artist.AlbumTitle)).ToList();
            decimal sum   = new decimal();
            decimal count = new decimal();

            foreach (AlbumReview a in selectedReviewList)
            {
                sum   += a.Rating;
                count += 1;
            }

            if (count == 0)
            {
                return(0);
            }
            return(sum / count);
        }
Exemplo n.º 2
0
        // GET: Albums
        public ActionResult Index(String SearchString, string error)
        {
            if (error == null)
            {
                ViewBag.Error = "";
            }
            else
            {
                ViewBag.Error = error;
            }

            List <Album> SelectedAlbums = new List <Album>();
            List <Album> TotalAlbums    = new List <Album>();

            TotalAlbums = db.Albums.ToList();
            foreach (Album item in TotalAlbums)
            {
                if (item.DiscountPrice != 0)
                {
                    item.DisplayPrice = item.DiscountPrice;
                }
                else
                {
                    item.DisplayPrice = item.AlbumPrice;
                }
                db.Albums.Find(item.AlbumID).DisplayPrice = item.DisplayPrice;
            }
            db.SaveChanges();

            if (SearchString == null || SearchString == "")
            {
                SelectedAlbums             = db.Albums.ToList();
                ViewBag.SelectedAlbumCount = "Displaying " + SelectedAlbums.Count() + " of " + TotalAlbums.Count() + " Records";
            }

            else
            {
                SelectedAlbums             = db.Albums.Where(a => a.AlbumTitle.Contains(SearchString)).ToList();
                ViewBag.SelectedAlbumCount = "Displaying " + SelectedAlbums.Count() + " of " + TotalAlbums.Count() + " Records";
            }

            SelectedAlbums = SelectedAlbums.OrderBy(a => a.AlbumTitle).ToList();
            List <AvgAlbumRating> ratingList = new List <AvgAlbumRating>();

            foreach (Album a in SelectedAlbums)
            {
                AvgAlbumRating dude = new AvgAlbumRating();
                dude.Album     = a;
                dude.AvgRating = ComputeAverage(a.AlbumID);
                ratingList.Add(dude);
            }
            return(View(ratingList));
        }
Exemplo n.º 3
0
        // GET: Albums/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Album album = db.Albums.Find(id);

            if (album == null)
            {
                return(HttpNotFound());
            }
            AvgAlbumRating albumRating = new AvgAlbumRating();

            albumRating.Album     = album;
            albumRating.AvgRating = ComputeAverage(album.AlbumID);
            return(View(albumRating));
        }
Exemplo n.º 4
0
        // GET: OrderDetails/Details/5
        public ActionResult ShoppingCart(string UserName, string error)
        {
            if (error == null)
            {
                ViewBag.Error = "";
            }
            else
            {
                ViewBag.Error = error;
            }
            if (UserName == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            OrderDetail        orderDetail = new OrderDetail();
            List <OrderDetail> listDetails = new List <OrderDetail>();

            listDetails = db.OrderDetails.Where(a => a.User.UserName.Contains(UserName)).ToList();
            foreach (OrderDetail item in listDetails)
            {
                if (!item.IsConfirmed)
                {
                    orderDetail = item;
                }
            }
            foreach (Discount item in orderDetail.Discounts)
            {
                if (item.Song == null && item.Album == null)
                {
                    db.OrderDetails.Find(orderDetail.OrderDetailID).Discounts.Remove(item);
                    db.SaveChanges();
                    orderDetail = db.OrderDetails.Find(orderDetail.OrderDetailID);
                }
            }
            ShoppingCartViewModel shoppingCart = new ShoppingCartViewModel();

            shoppingCart.OrderDetail = orderDetail;

            shoppingCart.SubTotal = CalcSubTotal(shoppingCart, false);
            shoppingCart.Tax      = CalcTax(shoppingCart);
            shoppingCart.Total    = (shoppingCart.Tax + shoppingCart.SubTotal);
            foreach (Discount item in shoppingCart.OrderDetail.Discounts)
            {
                if (item.Album != null)
                {
                    AvgAlbumRating album = new AvgAlbumRating();
                    album.Album         = item.Album;
                    album.AvgRating     = ComputeAlbumAverage(album.Album.AlbumID);
                    album.SavingsAmount = album.Album.AlbumPrice - album.Album.DisplayPrice;
                    shoppingCart.avgAlbumRatings.Add(album);
                }
                else
                {
                    AvgSongRating song = new AvgSongRating();
                    song.Song          = item.Song;
                    song.AvgRating     = ComputeSongAverage(song.Song.SongID);
                    song.SavingsAmount = song.Song.SongPrice - song.Song.DisplayPrice;
                    shoppingCart.avgSongRatings.Add(song);
                }
            }

            return(View(shoppingCart));
        }
Exemplo n.º 5
0
        public ActionResult SearchResults(String AlbumSearchString, String ArtistSearchString, int[] SelectedGenres, String AvRating, RatingFilter SelectedRatingFilter, SortBy SelectedSortBy, SortOrder SelectedSortOrder)
        {
            var query = from a in db.Albums
                        select a;

            //code for textbox
            if (AlbumSearchString == null || AlbumSearchString == "")
            {
                query = query.Where(a => a.AlbumTitle != null);
            }
            else
            {
                query = query.Where(a => a.AlbumTitle.Contains(AlbumSearchString));
            }

            //code for artist textbox
            if (ArtistSearchString == null || ArtistSearchString == "")
            {
                query = from a in query from ar in a.AlbumArtists where ar.ArtistName != null select a;
            }
            else
            {
                query = from a in query from ar in a.AlbumArtists where ar.ArtistName.Contains(ArtistSearchString) select a;
            }


            //code for genre filter
            List <Album> DisplayAlbums = new List <Album>();

            if (SelectedGenres != null)
            {
                foreach (int i in SelectedGenres)
                {
                    List <Album> AlbumsFound = query.Where(a => a.AlbumGenres.Any(g => g.GenreID == i)).ToList();

                    foreach (Album a in AlbumsFound)
                    {
                        DisplayAlbums.Add(a);
                    }
                }
            }

            else
            {
                List <Album> AlbumsFound = query.Where(a => a.AlbumGenres.Any()).ToList();

                foreach (Album a in AlbumsFound)
                {
                    DisplayAlbums.Add(a);
                }
            }

            var TotalAlbums = db.Albums.ToList();

            DisplayAlbums = DisplayAlbums.OrderBy(a => a.AlbumTitle).ToList();

            if (SelectedSortBy == SortBy.Album && SelectedSortOrder == SortOrder.Ascending)
            {
                DisplayAlbums = DisplayAlbums.Distinct().OrderBy(a => a.AlbumTitle).ToList();
            }

            if (SelectedSortBy == SortBy.Album && SelectedSortOrder == SortOrder.Descending)
            {
                DisplayAlbums = DisplayAlbums.Distinct().OrderByDescending(a => a.AlbumTitle).ToList();
            }

            if (SelectedSortBy == SortBy.Artist && SelectedSortOrder == SortOrder.Ascending)
            {
                DisplayAlbums = (from a in DisplayAlbums from ar in a.AlbumArtists.Distinct() orderby ar.ArtistName select a).ToList();
                DisplayAlbums = DisplayAlbums.Distinct().ToList();
            }

            else if (SelectedSortBy == SortBy.Artist && SelectedSortOrder == SortOrder.Descending)
            {
                DisplayAlbums = (from a in DisplayAlbums from ar in a.AlbumArtists.Distinct() orderby ar.ArtistName descending select a).ToList();
                DisplayAlbums = DisplayAlbums.Distinct().ToList();
            }

            List <AvgAlbumRating> ratingList = new List <AvgAlbumRating>();

            foreach (Album a in DisplayAlbums)
            {
                AvgAlbumRating dude = new AvgAlbumRating();
                dude.Album     = a;
                dude.AvgRating = ComputeAverage(a.AlbumID);
                ratingList.Add(dude);
            }

            if (SelectedSortBy == SortBy.Rating)
            {
                if (SelectedSortOrder == SortOrder.Ascending)
                {
                    ratingList = ratingList.Distinct().OrderBy(a => a.AvgRating).ToList();
                }
                else
                {
                    ratingList = ratingList.Distinct().OrderByDescending(a => a.AvgRating).ToList();
                }
            }

            //TODO: code for Rating Filter for Album
            if (AvRating != null && AvRating != "")
            {
                Decimal decAvgRating;
                try
                {
                    decAvgRating = Convert.ToDecimal(AvRating);
                }
                catch
                {
                    ViewBag.Message   = AvRating + " is not a valid rating; please enter a decimal from 1.0 to 5.0";
                    ViewBag.AllGenres = GetAllGenres();

                    return(View("DetailedSearch"));
                }
                try
                {
                    if (decAvgRating < 1.0m || decAvgRating > 5.0m)
                    {
                        throw new ArgumentException();
                    }
                }
                catch (ArgumentException)
                {
                    ViewBag.Message   = AvRating + " is not a valid rating; please enter a decimal from 1.0 to 5.0";
                    ViewBag.AllGenres = GetAllGenres();

                    return(View("DetailedSearch"));
                }

                if (SelectedRatingFilter == RatingFilter.Greater)
                {
                    foreach (AvgAlbumRating item in ratingList.ToList())
                    {
                        if (item.AvgRating < decAvgRating)
                        {
                            ratingList.Remove(item);
                        }
                    }
                }

                else
                {
                    foreach (AvgAlbumRating item in ratingList.ToList())
                    {
                        if (item.AvgRating > decAvgRating)
                        {
                            ratingList.Remove(item);
                        }
                    }
                }
            }

            ViewBag.SelectedAlbumCount = "Displaying " + ratingList.Count() + " of " + TotalAlbums.Count() + " Records";

            return(View("Index", ratingList));
        }