Пример #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));
        }
Пример #3
0
        public async Task <Response> Handle(AdicionarDocumento request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                return(new Response(false, "Informe os dados do documento", request));
            }

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

            Documento documento = new Documento(request.Titulo, request.URL, projeto);

            if (projeto == null)
            {
                return(new Response(false, "Projeto não encontrado!", request));
            }

            //projeto.AdicionarDocumento(documento);

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

            //_repositorioProjeto.Editar(projeto);
            _repositorioDocumento.Adicionar(documento);

            var result = new Response(true, "Documento adicionado ao projeto com sucesso!", null);

            return(await Task.FromResult(result));
        }
Пример #4
0
        public async Task <Response> Handle(AdicionarRelease request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                return(new Response(false, "Informe os dados da release", request));
            }

            Usuario usuario = await _repositorioUsuario.CarregarObjetoPeloID(request.UsuarioId);

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

            Release release = new Release(request.Nome, request.Descricao, request.Versao, projeto, usuario, request.DataLiberacao);

            //projeto.AdicionarRelease(release);

            if (usuario == null)
            {
                return(new Response(false, "Usuário não encontrado", request));
            }

            if (projeto == null)
            {
                return(new Response(false, "Projeto não encontrado", request));
            }

            if (release.Invalid)
            {
                return(new Response(false, "Release invalida", release.Notifications));
            }

            //_repositorioProjeto.Editar(projeto);
            _repositorioRelease.Adicionar(release);
            await _notificarRelease.Nova(usuario, projeto, release);

            var result = new Response(true, "Release adicionada com sucesso!", null);

            return(await Task.FromResult(result));
        }
Пример #5
0
        public async Task <Response> Handle(CriarTicket request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                return(new Response(false, "Informe todos os dados para criar um novo ticket", request));
            }

            Usuario criador = await _repositorioUsuario.CarregarObjetoPeloID(request.CriadorId);

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

            Categoria categoria = await _repositorioCategoria.CarregarObjetoPeloID(request.CategoriaId);

            #region VALIDACOES DE CRIADOR/PROJETO/CATEGORIA

            if (criador == null)
            {
                //return new Response(false, "Usuário criador do ticket não encontrado", request);
                AddNotification("Criador do Ticket", "Usuário criador do ticket não foi encontrado");
            }

            if (projeto == null)
            {
                //return new Response(false, "Projeto referenciado a este ticket não foi encontrado", request);
                AddNotification("Projeto", "Projeto referenciado a este ticket não foi encontrado");
            }

            if (categoria == null)
            {
                //return new Response(false, "Categoria não encontrada", request);
                AddNotification("Categoria", "Categoria não encontrada");
            }

            #endregion

            if (Invalid)
            {
                return(new Response(false, "Verifique os erros e tente novamente", Notifications));
            }

            Ticket ticket = new Ticket(request.Titulo, request.Descricao, criador, projeto, categoria);

            if (request.Notas != null)
            {
                List <AdicionarNota> notas = request.Notas;

                foreach (var n in notas)
                {
                    ticket.AdicionarNota(new Nota(n.Titulo, n.Descricao, ticket, criador));
                }
            }

            if (request.Anexos != null)
            {
                List <AdicionarAnexo> anexos = request.Anexos;

                foreach (var a in anexos)
                {
                    ticket.AdicionarAnexo(new Anexo(a.Descricao, a.URL, ticket));
                }
            }

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

            _repositorioTicket.Adicionar(ticket);
            await _notificarNovoTicket.Novo(projeto, criador, ticket);

            Response result = new Response(true, "Ticket criado com sucesso!", null);
            return(await Task.FromResult(result));
        }