示例#1
0
        public void UpdateRating(int winnerId, int loserId)
        {
            var ids = new[] { winnerId, loserId };

            var winner = _repository.Images.Untracked
                         .Where(x => x.Id == winnerId)
                         .Select(x => new { Image = x, Wins = x.Wins.Count, Losses = x.Losses.Count })
                         .Single();

            var loser = _repository.Images.Untracked
                        .Where(x => x.Id == loserId)
                        .Select(x => new { Image = x, Wins = x.Wins.Count, Losses = x.Losses.Count })
                        .Single();

            winner.Image.Rating = _rating.GetRating(winner.Wins + 1, winner.Losses);
            winner.Image.Sort   = _sort.GetSortValue(winner.Wins + 1, winner.Losses);

            loser.Image.Rating = _rating.GetRating(winner.Wins, winner.Losses + 1);
            loser.Image.Sort   = _sort.GetSortValue(winner.Wins, winner.Losses + 1);

            _repository.Ratings.Insert(new Rating
            {
                Added    = DateTime.Now,
                WinnerId = winner.Image.Id,
                LoserId  = loser.Image.Id
            });

            _repository.Images.Update(new[] { winner.Image, loser.Image });
        }