Пример #1
0
        public void EditRatingFilter(RatingFilter filter)
        {
            filterType_combobox.SelectedIndex = 4;
            old = new RatingFilter(filter);
            SetRatingFilterParams();

            if (filter.AndAbove && filter.Inclusive)
            {
                filterParams_combobox.SelectedIndex = 0;
            }
            else if (!filter.AndAbove && filter.Inclusive)
            {
                filterParams_combobox.SelectedIndex = 1;
            }
            else if (filter.AndAbove && !filter.Inclusive)
            {
                filterParams_combobox.SelectedIndex = 2;
            }
            else if (!filter.AndAbove && !filter.Inclusive)
            {
                filterParams_combobox.SelectedIndex = 3;
            }

            ratingBox1.Value = filter.EdgeRating;
        }
Пример #2
0
        protected override void ReadHeader(StreamReader sr)
        {
            base.ReadHeader(sr);

            string filterType;

            while ((filterType = sr.ReadLine()) != null)
            {
                Filter filter = null;

                switch (filterType)
                {
                case "StringFilter":
                    filter = new StringFilter(sr);
                    break;

                case "RatingFilter":
                    filter = new RatingFilter(sr);
                    break;

                case "DateFilter":
                    filter = new DateFilter(sr);
                    break;

                default:
                    throw new FileLoadException();
                }

                Filters.Add(filter);
            }
        }
Пример #3
0
        public override IDictionary <string, object> GetUriPathParameters()
        {
            var uriParams = new Dictionary <string, object>();

            var isTypeSetAndValid = Type != null && Type != TraktRatingsItemType.Unspecified;

            if (isTypeSetAndValid)
            {
                uriParams.Add("type", Type.UriName);
            }

            if (RatingFilter != null && isTypeSetAndValid)
            {
                var ratingsMin = RatingFilter.Min();
                var ratingsMax = RatingFilter.Max();

                var isRatingsSetAndValid = RatingFilter.Length > 0 && RatingFilter.Length <= 10 && ratingsMin >= 1 && ratingsMax <= 10;

                if (isRatingsSetAndValid)
                {
                    uriParams.Add("rating", string.Join(",", RatingFilter));
                }
            }

            if (ExtendedInfo != null && ExtendedInfo.HasAnySet)
            {
                uriParams.Add("extended", ExtendedInfo.ToString());
            }

            return(uriParams);
        }
Пример #4
0
        public IActionResult RatingList(int id)
        {
            Services.Ratings.DTOs.RatingFilter filter = new RatingFilter()
            {
                CourseId = id,
                Status   = "None"
            };

            var result = _ratingService.GetListDTOPaged(1, 50, null, filter).ToViewModel().Entities;

            return(View(result));
        }
Пример #5
0
        public override IDictionary <string, object> GetUriPathParameters()
        {
            var uriParams = base.GetUriPathParameters();

            uriParams.Add("username", Username);

            var isTypeSetAndValid = Type != null && Type != TraktRatingsItemType.Unspecified;

            if (isTypeSetAndValid)
            {
                uriParams.Add("type", Type.UriName);
            }

            if (RatingFilter != null && isTypeSetAndValid)
            {
                var ratingMin = RatingFilter.Min();
                var ratingMax = RatingFilter.Max();

                var isRatingsSetAndValid = RatingFilter.Length > 0 && RatingFilter.Length <= 10 && ratingMin >= 1 && ratingMax <= 10;

                if (isRatingsSetAndValid)
                {
                    uriParams.Add("rating", string.Join(",", RatingFilter));
                }
            }

            if (Page.HasValue)
            {
                uriParams.Add("page", Page.Value.ToString());
            }

            if (Limit.HasValue)
            {
                uriParams.Add("limit", Limit.Value.ToString());
            }

            return(uriParams);
        }
Пример #6
0
        public void FilterPlaylistApplyRatingFilter()
        {
            var lib = CreateLibrary();

            var fpl = new FilterPlaylist(lib, "fpl 1");

            var filter = new RatingFilter(3, true, false);

            fpl.Filters.Add(filter);
            fpl.FilterLibrary();
            Assert.AreEqual(1, fpl.NumSongs);

            filter.SetParams(3, true, true);
            fpl.FilterLibrary();
            Assert.AreEqual(2, fpl.NumSongs);

            filter.SetParams(3, false, true);
            fpl.FilterLibrary();
            Assert.AreEqual(2, fpl.NumSongs);

            filter.SetParams(3, false, false);
            fpl.FilterLibrary();
            Assert.AreEqual(1, fpl.NumSongs);
        }
Пример #7
0
        public ActionResult SearchResults(String SearchString, int[] SelectedGenres, String AvRating, RatingFilter SelectedRatingFilter, SortBy SelectedSortBy, SortOrder SelectedSortOrder)
        {
            var query = from a in db.Artists
                        select a;

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

            //code for genre filter
            List <Artist> DisplayArtists = new List <Artist>();

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

                    foreach (Artist a in ArtistsFound)
                    {
                        DisplayArtists.Add(a);
                    }
                }
            }

            else
            {
                List <Artist> ArtistsFound = query.Where(a => a.ArtistGenres.Any()).ToList();

                foreach (Artist a in ArtistsFound)
                {
                    DisplayArtists.Add(a);
                }
            }

            var TotalArtists = db.Artists.ToList();

            ViewBag.SelectedArtistCount = "Displaying " + DisplayArtists.Count() + " of " + TotalArtists.Count() + " Records";

            DisplayArtists = DisplayArtists.OrderBy(a => a.ArtistName).ToList();

            if (SelectedSortBy == SortBy.Artist && SelectedSortOrder == SortOrder.Ascending)
            {
                DisplayArtists = DisplayArtists.OrderBy(a => a.ArtistName).ToList();
            }

            if (SelectedSortBy == SortBy.Artist && SelectedSortOrder == SortOrder.Descending)
            {
                DisplayArtists = DisplayArtists.OrderByDescending(a => a.ArtistName).ToList();
            }

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

            foreach (Artist a in DisplayArtists)
            {
                AvgArtistRating dude = new AvgArtistRating();
                dude.Artist    = a;
                dude.AvgRating = ComputeAverage(a.ArtistID);
                ratingList.Add(dude);
            }

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

            //TODO: code for Rating Filter for Artist
            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 (AvgArtistRating item in ratingList.ToList())
                    {
                        if (item.AvgRating < decAvgRating)
                        {
                            ratingList.Remove(item);
                        }
                    }
                }

                else
                {
                    foreach (AvgArtistRating item in ratingList.ToList())
                    {
                        if (item.AvgRating > decAvgRating)
                        {
                            ratingList.Remove(item);
                        }
                    }
                }
            }
            //TODO: figure this out.


            return(View("Index", ratingList));
        }
Пример #8
0
        public ActionResult SearchResults(String SongSearchString, String AlbumSearchString, String ArtistSearchString, int[] SelectedGenres, String AvRating, RatingFilter SelectedRatingFilter, SortBy SelectedSortBy, SortOrder SelectedSortOrder)
        {
            var query = from s in db.Songs
                        select s;


            //code for song textbox
            if (SongSearchString == null || SongSearchString == "")
            {
                query = query.Where(s => s.SongTitle != null);
            }
            else
            {
                query = query.Where(s => s.SongTitle.Contains(SongSearchString));
            }

            //code for Album textbox
            if (AlbumSearchString == null || AlbumSearchString == "")
            {
                query = from s in query from al in s.SongAlbums where al.AlbumTitle != null select s;
            }
            else
            {
                query = from s in query from al in s.SongAlbums where al.AlbumTitle.Contains(AlbumSearchString) select s;
            }

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

            List <Song> DisplaySongs = new List <Song>();

            //code for genre filter
            if (SelectedGenres != null)
            {
                foreach (int i in SelectedGenres)
                {
                    List <Song> SongsFound = query.Where(a => a.SongGenres.Any(g => g.GenreID == i)).ToList();

                    foreach (Song a in SongsFound)
                    {
                        DisplaySongs.Add(a);
                    }
                }
            }

            else
            {
                List <Song> SongsFound = query.Where(a => a.SongGenres.Any()).ToList();

                foreach (Song a in SongsFound)
                {
                    DisplaySongs.Add(a);
                }
            }


            var TotalSongs = db.Songs.ToList();

            DisplaySongs = DisplaySongs.OrderBy(a => a.SongTitle).ToList();

            if (SelectedSortBy == SortBy.Song && SelectedSortOrder == SortOrder.Ascending)
            {
                DisplaySongs = DisplaySongs.OrderBy(a => a.SongTitle).ToList();
            }

            if (SelectedSortBy == SortBy.Song && SelectedSortOrder == SortOrder.Descending)
            {
                DisplaySongs = DisplaySongs.OrderByDescending(a => a.SongTitle).ToList();
            }

            if (SelectedSortBy == SortBy.Album && SelectedSortOrder == SortOrder.Ascending)
            {
                DisplaySongs = (from a in DisplaySongs from al in a.SongAlbums.Distinct() orderby al.AlbumTitle select a).ToList();
                DisplaySongs = DisplaySongs.Distinct().ToList();
            }

            if (SelectedSortBy == SortBy.Album && SelectedSortOrder == SortOrder.Descending)
            {
                DisplaySongs = (from a in DisplaySongs from al in a.SongAlbums.Distinct() orderby al.AlbumTitle descending select a).ToList();
                DisplaySongs = DisplaySongs.Distinct().ToList();
            }

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

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

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

            foreach (Song a in DisplaySongs)
            {
                AvgSongRating dude = new AvgSongRating();
                dude.Song      = a;
                dude.AvgRating = ComputeAverage(a.SongID);
                ratingList.Add(dude);
            }

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

            //TODO: code for Rating Filter for Song
            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 (AvgSongRating item in ratingList.ToList())
                    {
                        if (item.AvgRating < decAvgRating)
                        {
                            ratingList.Remove(item);
                        }
                    }
                }

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

            ViewBag.SelectedSongCount = "Displaying " + DisplaySongs.Count() + " of " + TotalSongs.Count() + " Records";

            return(View("Index", ratingList));
        }
Пример #9
0
        private async Task LoadData()
        {
            CallAsync_Results res;

            if (IsFilteringByRating == true)
            {
                res = await Services.APIComm.CallGetAsync(@"Restaurants/ByUserId/" + GlobalVariables.LoggedUser.ID + $"/FilterByRating/{RatingFilter.GetValueOrDefault()}");
            }
            else
            {
                res = await Services.APIComm.CallGetAsync(@"Restaurants/ByUserId/" + GlobalVariables.LoggedUser.ID);
            }

            if (res.Success == true)
            {
                ListRestaurants = new ObservableCollection <Restaurant>(Newtonsoft.Json.JsonConvert.DeserializeObject <List <Restaurant> >(res.ContentString_responJsonText));
                this.OnPropertyChanged(nameof(ListRestaurants));
            }
        }
Пример #10
0
        public IActionResult DisplaySearchResults(String TitleString, String AuthorString, int UniqueNumber, int SelectedGenre,
                                                  TitleFilter SelectedTitleFilter, AuthorFilter SelectedAuthorFilter, PopularityFilter SelectedPopularityFilter,
                                                  DateFilter SelectedDateFilter, RatingFilter SelectedRatingFilter, StockFilter SelectedStockFilter)
        {
            List <Book> SelectedBooks = new List <Book>();
            var         query         = from r in _context.Books.Include(b => b.Genre)
                                        select r;

            if (TitleString != null && TitleString != "")
            {
                query = query.Where(r => r.Title.Contains(TitleString));
            }

            if (AuthorString != null && AuthorString != "")
            {
                query = query.Where(r => r.Author.Contains(AuthorString));
            }

            if (UniqueNumber != 0)
            {
                query = query.Where(r => r.UniqueID == UniqueNumber);
            }

            if (SelectedGenre != 0)
            {
                Genre GenreToDisplay = _context.Genres.Find(SelectedGenre);
                query = query.Where(r => r.Genre == GenreToDisplay);
            }

            if (SelectedStockFilter == StockFilter.True)
            {
                query = query.Where(b => b.CopiesOnHand > 0);
            }

            //if no sort
            SelectedBooks = query.Include(b => b.Reviews).ToList();

            if (SelectedTitleFilter == TitleFilter.Ascending)
            {
                SelectedBooks = query.OrderBy(r => r.Title).ToList();
            }
            else if (SelectedTitleFilter == TitleFilter.Descending)
            {
                SelectedBooks = query.OrderByDescending(r => r.Title).ToList();
            }

            if (SelectedAuthorFilter == AuthorFilter.Ascending)
            {
                SelectedBooks = query.OrderBy(r => r.Author).ToList();
            }
            else if (SelectedAuthorFilter == AuthorFilter.Descending)
            {
                SelectedBooks = query.OrderByDescending(r => r.Author).ToList();
            }

            //POPULARTY FILTER CODE
            if (SelectedPopularityFilter == PopularityFilter.Ascending)
            {
                query = query.OrderByDescending(r => r.CopiesSold);
            }
            //don't need filter if not chosen - no else


            if (SelectedDateFilter == DateFilter.Oldest)
            {
                SelectedBooks = query.OrderBy(r => r.PublishedDate).ToList();
            }
            else if (SelectedDateFilter == DateFilter.Newest)
            {
                SelectedBooks = query.OrderByDescending(r => r.PublishedDate).ToList();
            }

            if (SelectedRatingFilter == RatingFilter.Descending)
            {
                //Int32 AvgRating = 0;
                //Int32
                //List<Book> books = _context.Books.Include(b => b.Reviews).Where(b => b.Reviews != null).ToList();
                //foreach(Book b in books)
                //{
                //    AvgRating +=
                //}
                //foreach(Book book in query)
                SelectedBooks = query.OrderByDescending(r => r.AvgRating).ToList();
            }

            //execute the query and store it into the SelectedRepositories list
            //SelectedBooks = query.Include(r => r.Reviews).ToList();
            ViewBag.SelectedBooks = SelectedBooks.Count();
            ViewBag.TotalBooks    = _context.Books.Count();
            //pass the filtered results to display in view
            return(View("Index", SelectedBooks));
        }