예제 #1
0
        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
            }
        }
예제 #2
0
 partial void DeleteConslAmbiente(ConslAmbiente instance);
예제 #3
0
 partial void InsertConslAmbiente(ConslAmbiente instance);
예제 #4
0
 partial void UpdateConslAmbiente(ConslAmbiente instance);
예제 #5
0
		private void detach_ConslAmbientes(ConslAmbiente entity)
		{
			this.SendPropertyChanging();
			entity.Consolidacion = null;
		}