public static CicloDesenv Criar(WexDb contexto, Projeto projeto, string txMeta = "")
        {
            CicloDesenv ciclo = new CicloDesenv()
            {
                TxMeta  = txMeta,
                Projeto = projeto.Oid
            };

            CicloDesenvDAO.SalvarCicloDesenv(contexto, ciclo);

            return(ciclo);
        }
Exemple #2
0
        public void GivenQueOCiclo1DoProjetoProjeto01EstejaComSituacaoEmAndamentoComAsEstorias(int numeroCiclo, string nomeProjeto, CsSituacaoCicloDomain situacaoCiclo, Table table)
        {
            List <EstoriaBindHelper> estorias = table.CreateSet <EstoriaBindHelper>().ToList();
            Projeto projeto = ProjetoDao.Instancia.ConsultarProjetoPorNome(contexto, nomeProjeto);

            List <CicloDesenv> ciclos = CicloDesenvDAO.ConsultarCiclosDesenvDoProjeto(contexto, projeto.Oid);

            CicloDesenv ciclo = ciclos[numeroCiclo - 1];

            ciclo.CsSituacaoCiclo = (int)situacaoCiclo;
            CicloDesenvDAO.SalvarCicloDesenv(contexto, ciclo);

            for (int i = 0; i < estorias.Count; i++)
            {
                Estoria            estoria      = EstoriaDAO.ConsultarEstoriaPorNome(contexto, estorias[i].Titulo);
                CicloDesenvEstoria estoriaCiclo = CicloDesenvEstoriaFactoryEntity.Criar(contexto, ciclo, estoria, estorias[i].Situacao);
            }
        }
        public static List <GraficoEstimadoRealizadoDTO> CalcularGraficoEstimadoVsRealizadoProjeto(Guid oidProjeto)
        {
            List <GraficoEstimadoRealizadoDTO> graficos = new List <GraficoEstimadoRealizadoDTO>();

            int  cicloInicioTendencia = 0;
            uint ritmoTime            = 0;

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                List <WexProject.BLL.Entities.Execucao.CicloDesenv> ciclos = CicloDesenvDAO.ConsultarCiclosDesenvDoProjeto(contexto, oidProjeto);

                if (ciclos.Count <= 0)
                {
                    return(graficos);
                }

                foreach (WexProject.BLL.Entities.Execucao.CicloDesenv ciclo in ciclos)
                {
                    ritmoTime = Convert.ToUInt32(ciclo.Projeto1.NbRitmoTime);

                    if (graficos.Count > 0)
                    {
                        GraficoEstimadoRealizadoDTO newGraficoEstimadoRealizado = new GraficoEstimadoRealizadoDTO()
                        {
                            ProjetoOid = ciclo.Projeto1.Oid,
                            Ciclo      = Convert.ToInt32(ciclo.NbCiclo),
                            Estimado   = Convert.ToInt32(ciclo.Projeto1.NbTamanhoTotal) / Convert.ToInt32(ciclo.Projeto1.NbCicloTotalPlan) + graficos[graficos.Count - 1].Estimado
                        };

                        if (ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Concluido) || ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Cancelado))
                        {
                            newGraficoEstimadoRealizado.Realizado = ciclo.NbPontosRealizados + graficos[graficos.Count - 1].Realizado;
                        }
                        else
                        {
                            newGraficoEstimadoRealizado.Realizado = graficos[graficos.Count - 1].Realizado;
                        }

                        //Ultimo ciclo do projeto.
                        if (ciclo.NbCiclo == ciclos.Count)
                        {
                            if (newGraficoEstimadoRealizado.Estimado < ciclo.Projeto1.NbTamanhoTotal)
                            {
                                newGraficoEstimadoRealizado.Estimado += (Convert.ToInt32(ciclo.Projeto1.NbTamanhoTotal) - newGraficoEstimadoRealizado.Estimado);
                            }
                            else if (newGraficoEstimadoRealizado.Estimado > ciclo.Projeto1.NbTamanhoTotal)
                            {
                                newGraficoEstimadoRealizado.Estimado -= (Convert.ToDouble(newGraficoEstimadoRealizado.Estimado) - Convert.ToInt32(ciclo.Projeto1.NbTamanhoTotal));
                            }
                        }

                        graficos.Add(newGraficoEstimadoRealizado);
                    }
                    else
                    {
                        graficos.Add(new GraficoEstimadoRealizadoDTO()
                        {
                            ProjetoOid = ciclo.Projeto1.Oid,
                            Ciclo      = Convert.ToInt32(ciclo.NbCiclo),
                            Estimado   = Convert.ToInt32(ciclo.Projeto1.NbTamanhoTotal) / Convert.ToDouble(ciclo.Projeto1.NbCicloTotalPlan),
                            Realizado  = ciclo.NbPontosRealizados
                        });
                    }

                    if (ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Concluido) ||
                        ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Cancelado))
                    {
                        cicloInicioTendencia = Convert.ToInt32(ciclo.NbCiclo);
                    }
                }

                double? tendenciaAcumulada = 0;
                Boolean addtendencia       = false;

                if (cicloInicioTendencia == 0)
                {
                    addtendencia = true;
                    graficos[0].RitimoSugerido = CalcularRitmoSugerido(null, Convert.ToInt32(ciclos[0].Projeto1.NbTamanhoTotal), ciclos.Count);
                }
                if (cicloInicioTendencia < graficos.Count)
                {
                    foreach (GraficoEstimadoRealizadoDTO item in graficos)
                    {
                        if (cicloInicioTendencia == Convert.ToInt32(item.Ciclo))
                        {
                            item.Tendencia      = item.Realizado;
                            tendenciaAcumulada += item.Tendencia;
                            addtendencia        = true;
                            item.RitimoSugerido = CalcularRitmoSugerido(item, Convert.ToInt32(ciclos[0].Projeto1.NbTamanhoTotal), ciclos.Count);
                        }
                        else
                        {
                            if (addtendencia)
                            {
                                item.Tendencia      = tendenciaAcumulada + ritmoTime;
                                tendenciaAcumulada += ritmoTime;
                                item.Realizado      = null;
                            }
                            else
                            {
                                item.Tendencia = null;
                            }
                        }
                    }
                }
            }

            return(graficos);
        }
Exemple #4
0
        /// <summary>
        /// Método responsável por calcular o gráfico do ritmo do time por projeto
        /// </summary>
        /// <param name="contexto">Contexto do banco</param>
        /// <param name="oidProjeto">Oid do projeto que servirá para a pesquisa</param>
        /// <returns>Lista dos graficos em DTO</returns>
        public static List <GraficoRitmoTimeDTO> CalcularGraficoRitmoTimeProjeto(Guid oidProjeto)
        {
            List <GraficoRitmoTimeDTO> graficosDTO = new List <GraficoRitmoTimeDTO>();

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                List <WexProject.BLL.Entities.Execucao.CicloDesenv> ciclos = CicloDesenvDAO.ConsultarCiclosDesenvDoProjeto(contexto, oidProjeto);

                int cicloInicioTendencia = 0;

                foreach (WexProject.BLL.Entities.Execucao.CicloDesenv ciclo in ciclos)
                {
                    if (ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Concluido) || ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Cancelado))
                    {
                        graficosDTO.Add(new GraficoRitmoTimeDTO()
                        {
                            Ciclo     = Convert.ToInt32(ciclo.NbCiclo),
                            Ritmo     = ciclo.NbPontosRealizados,
                            Planejado = ciclo.NbPontosPlanejados,
                            Meta      = GraficoRitmoTimeBO.ConsultarPontosMeta(ciclo.CicloDesenvEstorias.ToList())
                        });
                    }
                    else
                    {
                        graficosDTO.Add(new GraficoRitmoTimeDTO()
                        {
                            Ciclo     = Convert.ToInt32(ciclo.NbCiclo),
                            Ritmo     = 0,
                            Planejado = ciclo.NbPontosPlanejados,
                            Meta      = GraficoRitmoTimeBO.ConsultarPontosMeta(ciclo.CicloDesenvEstorias.ToList())
                        });
                    }

                    if (ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Concluido) || ciclo.CsSituacaoCiclo == Convert.ToInt32(CsSituacaoCicloDomain.Cancelado))
                    {
                        cicloInicioTendencia = Convert.ToInt32(ciclo.NbCiclo);
                    }
                }

                Boolean addNull = false;

                if (cicloInicioTendencia == 0)
                {
                    addNull = true;
                }

                foreach (GraficoRitmoTimeDTO item in graficosDTO)
                {
                    if (addNull)
                    {
                        item.Ritmo     = null;
                        item.Planejado = null;
                        item.Meta      = null;
                    }

                    if (item.Ciclo.Equals(cicloInicioTendencia))
                    {
                        addNull = true;
                    }
                }

                return(graficosDTO);
            }
        }