/// <summary>
        /// Método para editar un Cálculo de Riesgo
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public CalculoRiesgo Editar(string id) {

            CalculoRiesgo editar = new CalculoRiesgo();
            editar = db.CalculoRiesgo.Find(id);

            List<RiesgosPotenciadores> results = (
                                                       from p in db.CalculoRiesgoValoresPotenciador  
                                                       group p by p.idriesgo into grouped
                                                       select new RiesgosPotenciadores{ idRiesgo = grouped.Key, listaEditar = grouped.Where(m => m.idcal == id).OrderBy(m=>m.idfr).GroupBy(m => m.idpotenciador).ToList() }
                                                 ).ToList();
            List<RiesgosAgrupacionFactores> results2 = (
                                                       from p in db.CalculoRiesgoValores
                                                       group p by p.idriesgo into grouped
                                                       select new RiesgosAgrupacionFactores { idRiesgo = grouped.Key, listaEditar = grouped.Where(m => m.idcal == id).OrderBy(m=>m.idfr).GroupBy(m => m.idafr).ToList() }
                                                 ).ToList();


            editar.listaPotenciadoresRiesgo = results;
            editar.listaRiesgoAgrupacion = results2;
            List<string> idsRiesgos =db.CalculoRiesgoValores.Where(m => m.idcal == id).Select(m => m.idriesgo).Distinct().ToList();
            editar.listaRiesgosEditar = new Riesgos().ListaDrop().Where(m => idsRiesgos.Contains(m.Value)).ToList();
            editar.listaFactoresRiesgos = new Factores_Riesgo().ListaTotalDrop();

            return editar;
        }
        /// <summary>
        /// Método para crear un nuevo Cálculo de Riesgo
        /// </summary>
        /// <returns></returns>
        public CalculoRiesgo Nuevo(){
        
            CalculoRiesgo nuevo = new CalculoRiesgo();
            List<RiesgosAgrupacionFactores> results = (from p in db.FRRiesgo
                                                       join c in db.Factores_Riesgo on p.id_fr equals c.id into j1
                                                       from j2 in j1.DefaultIfEmpty()
                                                       group j2 by p.id_riesgo into grouped
                                                       select new RiesgosAgrupacionFactores { idRiesgo = grouped.Key, lista = grouped.Where(m => m.activo == true && m.calculo == true).OrderBy(m=>m.id).GroupBy(m => m.id_afr).ToList() }).ToList();

            List<RiesgosPotenciadores> resultsPotenciadores = (from p in db.FRRiesgo
                                                               join c in db.Factores_Riesgo on p.id_fr equals c.id into j1
                                                               from j2 in j1.DefaultIfEmpty()
                                                               where j2.activo == true && j2.potenciador == true
                                                               group p by p.id_riesgo into grouped
                                                               select new RiesgosPotenciadores { idRiesgo = grouped.Key, lista = grouped.OrderBy(m=>m.id_fr).GroupBy(m => m.id_riesgo).ToList() }).ToList();

            List<string> ids = db.Factores_Riesgo.Where(m => m.activo == true && m.calculo == true).Select(m => m.id).ToList();

            nuevo.listaFactoresRiesgosRiesgos = db.FRRiesgo.Where(m => ids.Contains(m.id_fr)).GroupBy(m => m.id_riesgo).ToList();
            nuevo.listaRiesgoAgrupacion = results;
            nuevo.listaPotenciadoresRiesgo = resultsPotenciadores;
            
            return nuevo;
        }