public ModelStateDictionary ValidateReview(Review review) { ModelStateDictionary errors = new ModelStateDictionary(); if (review == null) { return(errors); } var reviews = _reviewRepository.GetAll().Where(i => i.GameId == review.GameId && i.UserId == review.UserId && i.Id != review.Id); var gamelists = _gameListRepository.GetAll().Where(i => i.GameId == review.GameId && i.UserList.UserId == review.UserId); if (!gamelists.Any()) { errors.TryAddModelError("GameId", "Nie możesz napisać recenzji dla gry której nie posiadasz na żadnej ze swoich list."); } if (reviews.Any()) { errors.TryAddModelError("GameId", "Napisałeś już recenzję dla tej gry."); } if (review.Content == null) { errors.TryAddModelError("Content", "Treść recenzji musi mieć między 10 a 5000 znaków."); } else if (review.Content.Length < 10 && 5000 < review.Content.Length) { errors.TryAddModelError("Content", "Treść recenzji musi mieć między 10 a 5000 znaków."); } if (review.GameplayScore < 1 || review.GameplayScore > 10) { errors.TryAddModelError("GameplayScore", "Ocena grywalności musi mieć wartość od 1 do 10."); } if (review.GraphicsScore < 1 || review.GraphicsScore > 10) { errors.TryAddModelError("GraphicsScore", "Ocena grafiki musi mieć wartość od 1 do 10."); } if (review.MusicScore < 1 || review.MusicScore > 10) { errors.TryAddModelError("MusicScore", "Ocena muzyki musi mieć wartość od 1 do 10."); } if (review.StoryScore < 1 || review.StoryScore > 10) { errors.TryAddModelError("StoryScore", "Ocena fabuły musi mieć wartość od 1 do 10."); } var game = _gameRepository.Find(review.GameId); if (game != null && game.Status.AllowReviews == false) { errors.TryAddModelError("", "Status tej gry nie pozwala na napisanie recenzji"); } return(errors); }
public List <GameScore> GetUserUnorderedGamesRanking(int?userid, IQueryable <Game> games) { if (!userid.HasValue) { return(GetUnorderedGamesRanking(games)); } if (userid < 1) { return(GetUnorderedGamesRanking(games)); } var usergamelists = _gameListRepository.GetAll().Where(s => s.UserList.UserId == userid); var ranking = GetUnorderedGamesRanking(games); foreach (var item in ranking) { var gamelist = usergamelists.FirstOrDefault(s => s.GameId == item.Game.Id); if (gamelist != null) { item.UserScore = gamelist.PersonalScore; } } return(ranking); }
public List <CompanyPopularity> GetPopularCompanies(int?number) { var companies = _gameListRepository.GetAll() .GroupBy(g => g.Game.DeveloperCompany) .Select(g => new CompanyPopularity { Company = g.Key, Popularity = g.Count() }) .AsEnumerable() .OrderByDescending(o => o.Popularity); if (number.HasValue) { return(companies.Take(number.Value).ToList()); } return(companies.ToList()); }
public IEnumerable <GameList> GetAll() { return(_gameListRepository.GetAll().ToList()); }