public void Salvar(AssociacaoPF associacaoPF) { var sessionFactory = Conexao.CreateSessionFactory(); using (var session = sessionFactory.OpenSession()) { try { session.Transaction.Begin(); session.SaveOrUpdate(associacaoPF); session.Transaction.Commit(); } catch (Exception e) { session.Transaction.Rollback(); } } }
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 } }