protected void Button1_Click(object sender, EventArgs e)
 {
     //IList<FuncaoDoProjeto> clientes = new FuncaoDoProjetoControl().BuscarTodos();
     //IList<TipoDePontoDeFuncao> clientes = new TipoDePontoDeFuncaoControl().BuscarTodos();
     //IList<NivelDeComplexidade> clientes = new NivelDeComplexidadeControl().BuscarTodos();
     //IList<AtribuicaoDePesoPF> clientes = new AtribuicaoDePesoPFControl().BuscarTodos();
     //IList<CaracteristicasGerais> clientes = new CaracteristicasGeraisControl().BuscarTodos();
     //IList<NivelDeInfluencia> clientes = new NivelDeInfluenciaControl().BuscarTodos();
     IList<AtribuicaoDePesoNI> clientes = new AtribuicaoDePesoNIControl().BuscarTodos();
 }
        protected void btnCalcularPontosDeFuncao_Click(object sender, EventArgs e)
        {
            var idsPF = BuscaIdsPF();
            var idsNC = BuscaIdsNC();
            var idsCG = BuscaIdsCG();
            var idsNI = BuscaIdsNI();

            if (Validar(idsPF.ToArray(), idsNC.ToArray(), idsCG.ToArray(), idsNI.ToArray()))
            {
                var aPF = new AtribuicaoDePesoPFControl().BuscarPorPFeNC(idsPF.ToArray(), idsNC.ToArray());
                var aCG = new AtribuicaoDePesoNIControl().BuscarPorCGeNI(idsCG.ToArray(), idsNI.ToArray());

                var itemProjeto = new FuncaoDoProjetoControl().Buscar(Convert.ToInt16(hdfIdItemProjeto.Value));

                int PFB = 0;
                int TNI = 0;
                double FA = 0;
                //calcular pontos de função brutos
                foreach (var p in aPF)
                {
                    PFB = p.Avaliacao + PFB;
                }
                //soma dos NI
                foreach (var n in aCG)
                {
                    TNI = n.Avaliacao + TNI;
                }
                //calcular fator de ajuste
                FA = 0.65 + (0.01 * TNI);
                //CALCULAR PONTOS DE FUNÇÃO AJUSTADP
                //PFA = PFB * FA
                itemProjeto.PfAjustado = PFB * FA;
                itemProjeto.NivelDeInfluenciaTotal = TNI;
                itemProjeto.PfBruto = PFB;
                itemProjeto.FatorDeAjuste = FA;

                DateTime dataCalculo = DateTime.Now;
                try
                {
                    //AMARRAR O ITEM DE PROJETO COM ASSOCIACAOPF
                    foreach (var p in aPF)
                    {
                        var associacaoPf = new AssociacaoPF();
                        associacaoPf.FuncaoDoProjeto = itemProjeto;
                        associacaoPf.AtribuicaoDePesoPF = p;
                        associacaoPf.DataAvaliacao = dataCalculo;
                        new AssociacaoPFControl().Salvar(associacaoPf);
                    }
                    foreach (var c in aCG)
                    {
                        var associacaoNI = new AssociacaoNI();
                        associacaoNI.FuncaoDoProjeto = itemProjeto;
                        associacaoNI.AtribuicaoDePesoNI = c;
                        associacaoNI.DataAvaliacao = dataCalculo;
                        new AssociacaoNIControl().Salvar(associacaoNI);
                    }

                    new FuncaoDoProjetoControl().Salvar(itemProjeto);

                    lblPontosDeFuncaoAjustados.Text = itemProjeto.PfAjustado.ToString();
                }
                catch (Exception ex) { }
                //AMARRAR O ITEM DE PROJETO COM ASSOCIACAONI

                //ATUALIZAR O ITEM DE PROJETO COM OS CÁLCULOS

            }
        }