public ActionResult InserirTabelas(FormCollection form, MetricasIn metricasIn)
        {
            var nomeSplit      = form["NomeTabela"].Split(',');
            var atributosSplit = form["QuantidadeAtributos"].Split(',');

            metricasIn.TabelaDominio = nomeSplit.Select((t, i) => new TabelaDominio
            {
                NomeTabela          = t,
                QuantidadeAtributos = int.Parse(atributosSplit[i]),
            }).ToList();

            /* Adiciona Tabela Geral, calculando como base a quantidade de atributos GERAL*/
            metricasIn.TabelaDominio.Add(new TabelaDominio
            {
                NomeTabela          = "Geral",
                QuantidadeAtributos = metricasIn.TabelaDominio.Select(x => x.QuantidadeAtributos).Sum()
            });

            var TabelaDominioContainer = new Gerenciar().Inserir(metricasIn);

            /* Armazena em Session */
            HttpContext.Session["TabelaDominioContainer"] = TabelaDominioContainer;

            return(RedirectToAction("Resultados"));
        }
        public MetricasOut Inserir(MetricasIn metricasIn)
        {
            var tabelasBrutas = CalcularTabelasBrutas(metricasIn);
            var metricasOut   = new MetricasOut
            {
                TabelasBrutas        = tabelasBrutas,
                FPB                  = CalcularFPB(tabelasBrutas),
                FA                   = CalcularFA(metricasIn.IntIdFa),
                LinguagemProgramacao = GetLinguagem(metricasIn.IntIdLinguagemProgramacao),
                TipoSistema          = GetSistema(metricasIn.IntIdTipoSistema),
                MesIso               = GetISO(metricasIn.IntIdIso)
            };

            metricasOut.CalculoBaseFA_FPB = CalcularBaseFAcomFPB(metricasOut.FA, metricasOut.FPB);

            metricasOut.PrecoDaLinguagem = CalcularPrecoLinguagem(metricasOut.CalculoBaseFA_FPB, metricasOut.LinguagemProgramacao);

            metricasOut.ValorEmTempoPorDivisaodoSistema = CalcularTipoSistema(metricasOut.PrecoDaLinguagem, metricasOut.TipoSistema);

            metricasOut.TempoTotalSistemaEmExtenso = CalcularTempo(metricasOut.ValorEmTempoPorDivisaodoSistema);

            metricasOut.CalculoISO = CalcularISO(metricasOut.ValorEmTempoPorDivisaodoSistema, metricasOut.MesIso);

            metricasOut.PrecoDoSistema = CalcularPrecoSistema(metricasOut.CalculoISO);


            return(metricasOut);
        }
 private TabelasBrutas CalcularTabelasBrutas(MetricasIn tabelaDominioContainer)
 {
     return(new TabelasBrutas
     {
         TabelaEntrada = new MetricasEntrada().CalcularEntrada(tabelaDominioContainer),
         TabelaSaida = new MetricasSaida().CalcularSaida(tabelaDominioContainer),
         TabelaConsulta = new MetricasConsulta().CalcularConsulta(tabelaDominioContainer),
         TabelaArquivo = new MetricasArquivo().CalcularArquivo(tabelaDominioContainer),
         TabelaInterface = new MetricasInterface().CalcularInterface(tabelaDominioContainer)
     });
 }
Ejemplo n.º 4
0
        public List <TabelaConsulta> CalcularConsulta(MetricasIn tabelaDominioContainer)
        {
            Debug.WriteLine("######## CONSULTA ########");

            //tabelaDominioContainer.TabelaDominio = tabelaDominioContainer.TabelaDominio.Where(x => x.NomeTabela != "Geral").ToList();

            var contador = new Contador();

            /* 1 a 4 - Atributos */
            ColunaA(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 1 && x.QuantidadeAtributos <= 4).ToList(), contador);

            /* 5 a 15 - Atributos */
            ColunaB(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 5 && x.QuantidadeAtributos <= 15).ToList(), contador);

            /* 16 ou mais - Atributos */
            ColunaC(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 16).ToList(), contador);

            Debug.WriteLine("######## FIM CONSULTA ########");

            return(new List <TabelaConsulta>
            {
                new TabelaConsulta
                {
                    Complexidade = TabelaConsultaPeso.Simples,
                    NumeroOcorrencia = contador.simples
                },
                new TabelaConsulta
                {
                    Complexidade = TabelaConsultaPeso.Medio,
                    NumeroOcorrencia = contador.medio
                },
                new TabelaConsulta
                {
                    Complexidade = TabelaConsultaPeso.Complexo,
                    NumeroOcorrencia = contador.complexo
                }
            });
        }
        public List <TabelaInterface> CalcularInterface(MetricasIn tabelaDominioContainer)
        {
            Debug.WriteLine("######## INTERFACE ########");

            var contador = new Contador();

            /* 1 a 19 - Atributos */
            ColunaA(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 1 && x.QuantidadeAtributos <= 19).ToList(), contador);

            /* 20 a 50 - Atributos */
            ColunaB(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 20 && x.QuantidadeAtributos <= 50).ToList(), contador);

            /* 51 ou mais - Atributos */
            ColunaC(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 51).ToList(), contador);

            Debug.WriteLine("######## FIM INTERFACE ########");

            return(new List <TabelaInterface>
            {
                new TabelaInterface
                {
                    Complexidade = TabelaInterfacePeso.Simples,
                    NumeroOcorrencia = contador.simples
                },
                new TabelaInterface
                {
                    Complexidade = TabelaInterfacePeso.Medio,
                    NumeroOcorrencia = contador.medio
                },
                new TabelaInterface
                {
                    Complexidade = TabelaInterfacePeso.Complexo,
                    NumeroOcorrencia = contador.complexo
                }
            });
        }
        public List <TabelaArquivo> CalcularArquivo(MetricasIn tabelaDominioContainer)
        {
            Debug.WriteLine("######## ARQUIVO ########");

            var contador = new Contador();

            /* 1 a 19 - Atributos */
            ColunaA(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 1 && x.QuantidadeAtributos <= 19 && x.NomeTabela != "Geral").ToList(), contador);

            /* 20 a 50 - Atributos */
            ColunaB(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 20 && x.QuantidadeAtributos <= 50 && x.NomeTabela != "Geral").ToList(), contador);

            /* 51 ou mais - Atributos */
            ColunaC(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 51 && x.NomeTabela != "Geral").ToList(), contador);

            Debug.WriteLine("######## FIM ARQUIVO ########");

            return(new List <TabelaArquivo>
            {
                new TabelaArquivo
                {
                    Complexidade = TabelaArquivoPeso.Simples,
                    NumeroOcorrencia = contador.simples
                },
                new TabelaArquivo
                {
                    Complexidade = TabelaArquivoPeso.Medio,
                    NumeroOcorrencia = contador.medio
                },
                new TabelaArquivo
                {
                    Complexidade = TabelaArquivoPeso.Complexo,
                    NumeroOcorrencia = contador.complexo
                }
            });
        }
Ejemplo n.º 7
0
        public List <TabelaSaida> CalcularSaida(MetricasIn tabelaDominioContainer)
        {
            Debug.WriteLine("######## SAIDA ########");

            var contador = new Contador();

            /* 1 a 5 - Atributos */
            ColunaA(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 1 && x.QuantidadeAtributos <= 5).ToList(), contador);

            /* 6 a 19 - Atributos */
            ColunaB(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 6 && x.QuantidadeAtributos <= 19).ToList(), contador);

            /* 20 ou mais - Atributos */
            ColunaC(tabelaDominioContainer.TabelaDominio.Where(x => x.QuantidadeAtributos >= 20).ToList(), contador);

            Debug.WriteLine("######## FIM SAIDA ########");

            return(new List <TabelaSaida>
            {
                new TabelaSaida
                {
                    Complexidade = TabelaSaidaPeso.Simples,
                    NumeroOcorrencia = contador.simples
                },
                new TabelaSaida
                {
                    Complexidade = TabelaSaidaPeso.Medio,
                    NumeroOcorrencia = contador.medio
                },
                new TabelaSaida
                {
                    Complexidade = TabelaSaidaPeso.Complexo,
                    NumeroOcorrencia = contador.complexo
                }
            });
        }
Ejemplo n.º 8
0
        private MetricasIn TabelaDefault()
        {
            var TabelaDominioContainer = new MetricasIn
            {
                TabelaDominio = new List <TabelaDominio>
                {
                    new TabelaDominio
                    {
                        NomeTabela          = "Cliente",
                        QuantidadeAtributos = 6,
                    },
                    new TabelaDominio
                    {
                        NomeTabela          = "Viagem",
                        QuantidadeAtributos = 7,
                    },
                    new TabelaDominio
                    {
                        NomeTabela          = "Rota",
                        QuantidadeAtributos = 4,
                    }
                    , new TabelaDominio
                    {
                        NomeTabela          = "PontoParada",
                        QuantidadeAtributos = 2,
                    },
                    new TabelaDominio
                    {
                        NomeTabela          = "Atendente",
                        QuantidadeAtributos = 2,
                    },
                    new TabelaDominio
                    {
                        NomeTabela          = "Funcionario",
                        QuantidadeAtributos = 5,
                    }, new TabelaDominio
                    {
                        NomeTabela          = "Motorista",
                        QuantidadeAtributos = 2,
                    },
                    new TabelaDominio
                    {
                        NomeTabela          = "Onibus",
                        QuantidadeAtributos = 5,
                    },
                    new TabelaDominio
                    {
                        NomeTabela          = "Localização",
                        QuantidadeAtributos = 6,
                    },
                }
            };
            var geral = TabelaDominioContainer.TabelaDominio.Select(x => x.QuantidadeAtributos).Sum();

            TabelaDominioContainer.TabelaDominio.Add(new TabelaDominio
            {
                NomeTabela          = "Geral",
                QuantidadeAtributos = geral
            });
            return(TabelaDominioContainer);
        }