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); }
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); }
private void OnGameUpdated(GameUpdatedEventArgs args) { GameUpdatedEvent?.Invoke(this, args); }