public async Task <IActionResult> Remover([FromBody] RemoverMembroDaEquipe request) { try { var response = await _mediator.Send(request, CancellationToken.None); return(await ResponseAsync(response)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <Response> Handle(RemoverMembroDaEquipe request, CancellationToken cancellationToken) { if (request == null) { return(new Response(false, "Nenhum membro da equipe foi informado", null)); } Projeto projeto = await _repositorioProjeto.CarregarObjetoPeloID(request.ProjetoId); if (projeto == null) { return(new Response(false, "Projeto não encontrado", null)); } List <EquipeDoProjeto> equipe = request.MembrosDaEquipe; foreach (var membro in equipe) { Usuario membroParaExcluir = await _repositorioUsuario.CarregarObjetoPeloID(membro.UsuarioId); var usuarioMembroProjeto = projeto.ProjetoUsuarios.Any(p => p.Usuario == membroParaExcluir); if (usuarioMembroProjeto == true) { if (membroParaExcluir != null) { projeto.ExcluirMembroDoProjeto(membroParaExcluir); } else { AddNotification("Usuario", "Usuário com ID: " + membro.UsuarioId + " não foi encontrado!"); } } else { AddNotification("Usuario", "Usuário com ID: " + membro.UsuarioId + " não pertence a este projeto"); } } if (projeto.Invalid) { return(new Response(false, "Projeto inválido", projeto.Notifications)); } _repositorioProjeto.Editar(projeto); var result = new Response(true, "Equipe do projeto atualizada com sucesso", Notifications); return(await Task.FromResult(result)); }