Пример #1
0
        public async Task <Unit> Handle(UpdateGameCommand request, CancellationToken cancellationToken)
        {
            var(game, _) = await _context.Games
                           .Include(g => g.Players)
                           .Include(g => g.Categories)
                           .FindByClientIdAsync(request.GameClientId, request.PlayerClientId, mustBeOwner: true);

            game.Name = request.Name;
            game.QuestionsPerRound = request.QuestionsPerRound;
            game.NumberOfRounds    = request.NumberOfRounds;
            game.QuestionsPerRound = request.QuestionsPerRound;
            game.Difficulty        = request.Difficulty.Aggregate((c, d) => c |= d);
            game.Categories        = _context.Categories.Where(c => request.Categories.Contains(c.Id)).ToList();

            await _context.SaveChangesAsync(cancellationToken);

            var @event = new GameUpdatedEvent(game.Id);
            await _mediator.Publish(@event, cancellationToken);

            return(Unit.Value);
        }
Пример #2
0
        public void Update(long genreId, long developerStudioId, long publisherId)
        {
            DeveloperStudioId = developerStudioId;
            PublisherId       = publisherId;
            GenreId           = genreId;

            GameUpdatedEvent gameUpdated = new GameUpdatedEvent
            {
                Id                   = Id,
                GenreId              = genreId,
                Price                = GameDetails.Price,
                Description          = GameDetails.Description,
                AverageRating        = GameDetails.AverageRating,
                Name                 = GameDetails.Name,
                ReleaseDate          = GameDetails.ReleaseDate,
                AgeRestrictionSystem = GameDetails.AgeRestrictionSystem,
                IconUri              = GameDetails.IconUri,
                PhotoUri             = GameDetails.PhotoUri,
                ReviewCount          = GameDetails.ReviewCount,
                OrderCount           = GameDetails.OrderCount
            };

            DomainEvents.Add(gameUpdated);
        }
Пример #3
0
 private void OnGameUpdated(GameUpdatedEventArgs args)
 {
     GameUpdatedEvent?.Invoke(this, args);
 }