protected void ConsolidarEvaluaciones(int idmedicion) { try { int idconsolidado = ConsolidarPreguntas(idmedicion); var results_cat = from cat in db.Categorias select cat; string[] MC = null; string[] APRO = null; string[] PERTI = null; string[] EXIS = null; foreach (var item in results_cat) { switch (item.IdCategoria) { case 1: MC = item.Validacion.ToString().Split(','); break; case 2: APRO = item.Validacion.ToString().Split(','); break; case 3: PERTI = item.Validacion.ToString().Split(','); break; case 4: EXIS = item.Validacion.ToString().Split(','); break; case 7: break; } } var comp = from comps in db.Componentes select comps; #region Consolidacion Componentes foreach (var item in comp) { var consldPre = from c in db.ConslPreguntas join pre in db.Preguntas on c.IdPregunta equals pre.IdPregunta where pre.IdComponente == item.IdComponente select c.Valor; var valores_validar = consldPre.ToList(); int coincidenciasMC = 0; int coincidenciasAPRO = 0; int coincidenciasPERT = 0; int coincidenciasEXIS = 0; if (valores_validar != null) { for (int i = 0; i < valores_validar.Count; i++) { if (i > MC.Length - 1) break; else { bool valor_requerido = false; if (MC[i] == "1") valor_requerido = true; if (valores_validar[i] == valor_requerido) coincidenciasMC++; } } for (int i = 0; i < valores_validar.Count; i++) { if (i > APRO.Length - 1) break; else { bool valor_requerido = false; if (APRO[i] == "1") valor_requerido = true; if (valores_validar[i] == valor_requerido) coincidenciasAPRO++; } } for (int i = 0; i < valores_validar.Count; i++) { if (i > PERTI.Length - 1) break; else { bool valor_requerido = false; if (PERTI[i] == "1") valor_requerido = true; if (valores_validar[i] == valor_requerido) coincidenciasPERT++; } } for (int i = 0; i < valores_validar.Count; i++) { if (i > EXIS.Length - 1) break; else { bool valor_requerido = false; if (EXIS[i] == "1") valor_requerido = true; if (valores_validar[i] == valor_requerido) coincidenciasEXIS++; } } List<int> Coincidencias_Categorias = new List<int>(); Coincidencias_Categorias.Add(coincidenciasMC); Coincidencias_Categorias.Add(coincidenciasAPRO); Coincidencias_Categorias.Add(coincidenciasPERT); Coincidencias_Categorias.Add(coincidenciasEXIS); Coincidencias_Categorias.Sort(); #region MC if (Coincidencias_Categorias[3] == coincidenciasMC) { decimal valor_MC = (from cate in db.Categorias where cate.IdCategoria == 1 select cate.Valor).Single(); ConslComponente objConslComponente = new ConslComponente { IdComponente = item.IdComponente, Valor = valor_MC, IdConsolidado = idconsolidado }; db.ConslComponentes.InsertOnSubmit(objConslComponente); db.SubmitChanges(); } #endregion #region APRO else if (Coincidencias_Categorias[3] == coincidenciasAPRO) { decimal valor_APRO = (from cate in db.Categorias where cate.IdCategoria == 2 select cate.Valor).Single(); ConslComponente objConslComponente = new ConslComponente { IdComponente = item.IdComponente, Valor = valor_APRO, IdConsolidado = idconsolidado }; db.ConslComponentes.InsertOnSubmit(objConslComponente); db.SubmitChanges(); } #endregion #region PERT else if (Coincidencias_Categorias[3] == coincidenciasPERT) { decimal valor_PERT = (from cate in db.Categorias where cate.IdCategoria == 3 select cate.Valor).Single(); ConslComponente objConslComponente = new ConslComponente { IdComponente = item.IdComponente, Valor = valor_PERT, IdConsolidado = idconsolidado }; db.ConslComponentes.InsertOnSubmit(objConslComponente); db.SubmitChanges(); } #endregion #region EXIS else if (Coincidencias_Categorias[3] == coincidenciasEXIS) { decimal valor_EXIS = (from cate in db.Categorias where cate.IdCategoria == 4 select cate.Valor).Single(); ConslComponente objConslComponente = new ConslComponente { IdComponente = item.IdComponente, Valor = valor_EXIS, IdConsolidado = idconsolidado }; db.ConslComponentes.InsertOnSubmit(objConslComponente); db.SubmitChanges(); } #endregion #region PERT else if (Coincidencias_Categorias[3] == 0) { ConslComponente objConslComponente = new ConslComponente { IdComponente = item.IdComponente, Valor = 0, IdConsolidado = idconsolidado }; db.ConslComponentes.InsertOnSubmit(objConslComponente); db.SubmitChanges(); } #endregion } #endregion } #region Consolidacion por Proceso var colprocesos = from pro in db.Procesos select pro; foreach (var item in colprocesos) { var ccompo = from ccom in db.ConslComponentes join com in db.Componentes on ccom.IdComponente equals com.IdComponente where ccom.IdConsolidado == idconsolidado && com.IdProceso == item.IdProceso select new { ccom.Valor }; decimal totalcomp = 0; foreach (var valcomp in ccompo) { totalcomp = totalcomp + Convert.ToDecimal(valcomp.Valor); } decimal valorproceso = totalcomp / Convert.ToInt32(ccompo.Count()); ConslProceso objConslProceso = new ConslProceso { IdConsolidado = idconsolidado, IdProceso = item.IdProceso, Valor = valorproceso }; db.ConslProcesos.InsertOnSubmit(objConslProceso); db.SubmitChanges(); } #endregion #region Consolidacion por Ambiente var colAmbientes = from amb in db.Ambientes select amb; foreach (var item in colAmbientes) { var cslproc = from cproc in db.ConslProcesos join proc in db.Procesos on cproc.IdProceso equals proc.IdProceso where cproc.IdConsolidado == idconsolidado && proc.IdAmbiente == item.IdAmbiente select new { cproc.Valor }; decimal totalpro = 0; foreach (var valcomp in cslproc) { totalpro = totalpro + Convert.ToDecimal(valcomp.Valor); } decimal valorAmbiente = totalpro / Convert.ToInt32(cslproc.Count()); ConslAmbiente objConslAmbiente = new ConslAmbiente { IdConsolidado = idconsolidado, IdAmbiente = item.IdAmbiente, Valor = valorAmbiente }; db.ConslAmbientes.InsertOnSubmit(objConslAmbiente); db.SubmitChanges(); } #endregion } catch (Exception) { ///error } }
partial void DeleteConslComponente(ConslComponente instance);
partial void InsertConslComponente(ConslComponente instance);
partial void UpdateConslComponente(ConslComponente instance);
private void detach_ConslComponentes(ConslComponente entity) { this.SendPropertyChanging(); entity.Consolidacion = null; }