public async Task <ValidationResult> Handle(AdicionarGrupoCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { return(message.ValidationResult); } Usuario proprietarioGrupo = await _repository.ObterUsuarioPorId(message.UsuarioCriadorId); if (proprietarioGrupo is null) { return(await NotifyAndReturn("Usuário não encontrado.")); } Grupo novoGrupo = new Grupo(message.NomeGrupo, message.NumeroMaximoMembros); proprietarioGrupo.AdicionarGrupo(novoGrupo); _repository.AdicionarGrupo(novoGrupo); _repository.AtualizarUsuario(proprietarioGrupo); return(await SaveAndPublish(new GrupoAdicionadoUsuarioEvent(novoGrupo.UsuarioCriadorId, novoGrupo.Id, novoGrupo.NomeGrupo, novoGrupo.NumeroMaximoMembros))); }