Пример #1
0
        public async Task <Response> Handle(EditarProjeto request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                return(new Response(false, "Informe os dados do projeto que deseja alterar", request));
            }

            Projeto projeto = await _repositorioProjeto.CarregarObjetoPeloID(request.Id);

            if (projeto == null)
            {
                return(new Response(false, "Nenhum projeto encontrado com este Id", request.Id));
            }

            projeto.Editar(request.Nome, request.Descricao);

            if (projeto.Invalid)
            {
                return(new Response(false, "Projeto inválido", projeto.Notifications));
            }

            _repositorioProjeto.Editar(projeto);

            var result = new Response(true, "Projeto atualizado com sucesso!", Notifications);

            return(await Task.FromResult(result));
        }
Пример #2
0
        public async Task <Response> Handle(AdicionarMembroNaEquipe 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 novoMembro = await _repositorioUsuario.CarregarObjetoPeloID(membro.UsuarioId);

                var usuarioMembroDoProjeto = projeto.ProjetoUsuarios.Any(p => p.Usuario == novoMembro);

                if (usuarioMembroDoProjeto == false)
                {
                    if (novoMembro != null)
                    {
                        projeto.AdicionarMembro(novoMembro, membro.Gerente);
                    }
                    else
                    {
                        AddNotification("Usuario", "Usuário com o ID: " + membro.UsuarioId + " não foi encontrado");
                    }
                }
                else
                {
                    AddNotification("Usuario", "Usuário com ID: " + membro.UsuarioId + " já 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));
        }