public async Task <List <Review> > GetReviews(string username)
        {
            List <Repository.Models.Review> repoReviews = await _repo.GetUserReviews(username);

            if (repoReviews == null)
            {
                Console.WriteLine("UserLogic.GetReviews() was called for a username that doesn't exist.");
                return(null);
            }

            List <Review> reviews = new List <Review>();

            foreach (var repoReview in repoReviews)
            {
                reviews.Add(Mapper.RepoReviewToReview(repoReview));
            }
            return(reviews);
        }
示例#2
0
        public async Task <List <Review> > GetReviews(string movieid)
        {
            var repoReviews = await _repo.GetMovieReviews(movieid);

            if (repoReviews == null)
            {
                Console.WriteLine("MovieLogic.GetReviews() was called for a movie that doesn't exist.");
                return(null);
            }

            var reviews = new List <Review>();

            foreach (var repoReview in repoReviews)
            {
                reviews.Add(Mapper.RepoReviewToReview(repoReview));
            }
            return(reviews);
        }
示例#3
0
        public async Task <List <Review> > GetReviewsPage(string movieid, int page, string sortorder)
        {
            if (page < 1)
            {
                Console.WriteLine("MovieLogic.GetReviewsPage() was called with a negative or zero page number.");
                return(null);
            }

            Repository.Models.Setting pageSizeSetting = _repo.GetSetting("reviewspagesize");
            int pageSize = pageSizeSetting.IntValue ?? default(int);

            if (pageSize < 1)
            {
                Console.WriteLine("MovieLogic.GetReviewsPage() was called but the reviewspagesize is invalid");
                return(null);
            }

            List <Repository.Models.Review> repoReviews = await _repo.GetMovieReviews(movieid);

            if (repoReviews == null)
            {
                Console.WriteLine("MovieLogic.GetReviewsPage() was called for a movie that doesn't exist.");
                return(null);
            }

            // Sort the list of Reviews
            switch (sortorder)
            {
            case "ratingasc":
                repoReviews = repoReviews.OrderBy(r => r.Rating).ToList <Repository.Models.Review>();
                break;

            case "ratingdsc":
                repoReviews = repoReviews.OrderByDescending(r => r.Rating).ToList <Repository.Models.Review>();
                break;

            case "timeasc":
                repoReviews = repoReviews.OrderBy(r => r.CreationTime).ToList <Repository.Models.Review>();
                break;

            case "timedsc":
                repoReviews = repoReviews.OrderByDescending(r => r.CreationTime).ToList <Repository.Models.Review>();
                break;

            default:
                return(null);
            }

            int numberOfReviews = repoReviews.Count;
            int startIndex      = pageSize * (page - 1);

            if (startIndex > numberOfReviews - 1)
            {
                Console.WriteLine("MovieLogic.GetReviewsPage() was called for a page number without reviews.");
                return(null);
            }

            int endIndex = startIndex + pageSize - 1;

            if (endIndex > numberOfReviews - 1)
            {
                endIndex = numberOfReviews - 1;
            }

            List <Review> reviews = new List <Review>();

            for (int i = startIndex; i <= endIndex; i++)
            {
                reviews.Add(Mapper.RepoReviewToReview(repoReviews[i]));
            }
            return(reviews);
        }