public EDPerfilSocioDemografico GuardarPerfilSociodemografico(EDPerfilSocioDemografico perfilsoc)
        {
            using (SG_SSTContext context = new SG_SSTContext())
            {
                using (var Transaction = context.Database.BeginTransaction())
                {
                    RegistraLog registraLog = new RegistraLog();
                    try
                    {
                        PerfilSocioDemograficoPlanificacion perfilSocioDemografico = new PerfilSocioDemograficoPlanificacion()
                        {
                            IDEmpleado_PerfilSocioDemoGrafico = perfilsoc.IDEmpleado_PerfilSocioDemoGrafico,
                            PK_Numero_Documento_Empl          = perfilsoc.PK_Numero_Documento_Empl,
                            GradoEscolaridad              = perfilsoc.GradoEscolaridad,
                            Ingresos                      = perfilsoc.Ingresos,
                            FK_Ciudad                     = perfilsoc.Fk_Id_Municipio,
                            Conyuge                       = perfilsoc.Conyuge,
                            Hijos                         = perfilsoc.Hijos,
                            FK_Estrato                    = perfilsoc.FK_Estrato,
                            FK_Estado_Civil               = perfilsoc.FK_Estado_Civil,
                            Sexo                          = perfilsoc.Sexo,
                            FK_VinculacionLaboral         = perfilsoc.FK_VinculacionLaboral,
                            TurnoTrabajo                  = perfilsoc.TurnoTrabajo,
                            FechaIngresoUltimoCargo       = perfilsoc.FechaIngresoUltimoCargo,
                            evaluacionesMedicasRequeridas = perfilsoc.evaluacionesMedicasRequeridas,
                            caracteristicasPsicologicas   = perfilsoc.caracteristicasPsicologicas,
                            caracteristicasFisicas        = perfilsoc.caracteristicasFisicas,
                            FK_Etnia                      = perfilsoc.FK_Etnia,
                            nitEmpresa                    = perfilsoc.nitEmpresa,
                            FK_Proceso                    = perfilsoc.Procesos,
                            Fk_Sede                       = perfilsoc.Pk_Id_Sede,
                            ZonaLugar                     = perfilsoc.ZonaLugar,
                        };


                        context.Tbl_PerfilSocioDemograficoPlanificacion.Add(perfilSocioDemografico);
                        /*inicio auditoria*/
                        if (context.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaPlanificacion)
                        {
                            context.Tbl_AuditoriaPlanificacionSistema.Add(auditoriaSistema.ObtenerAuditoriaPlanificacion(perfilsoc.EDInfoAuditoria,
                                                                                                                         Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION,
                                                                                                                         Enumeraciones.EnumAuditoriaSistema.Modulos.Planificacion,
                                                                                                                         Enumeraciones.EnumAuditoriaSistema.SubModulos.Perfil_sociodemográfico,
                                                                                                                         Enumeraciones.EnumAuditoriaSistema.Opciones.Crear_Perfil_Sociodemográfico,
                                                                                                                         perfilSocioDemografico.ToString()));
                        }
                        /*Fin auditoria*/
                        context.SaveChanges();
                        List <Condiciones_Riesgo_Perfil> condiciones = new List <Condiciones_Riesgo_Perfil>();
                        foreach (var per in perfilsoc.condicionesRiesgo)
                        {
                            Condiciones_Riesgo_Perfil condicion = new Condiciones_Riesgo_Perfil();
                            condicion.OtroPeligro = per.Otro;
                            condicion.FK_Clasificacion_De_Peligro = per.FK_Clasificacion_De_Peligro;
                            condicion.tiempoExposicion            = per.tiempoExpos;
                            condicion.FK_PerfilSocioDemografico   = perfilSocioDemografico.IDEmpleado_PerfilSocioDemoGrafico;
                            /*inicio auditoria*/
                            if (context.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaPlanificacion)
                            {
                                context.Tbl_AuditoriaPlanificacionSistema.Add(auditoriaSistema.ObtenerAuditoriaPlanificacion(perfilsoc.EDInfoAuditoria,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.Modulos.Planificacion,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.SubModulos.Perfil_sociodemográfico,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.Opciones.Condiciones_Riesgo_Perfil,
                                                                                                                             condicion.ToString()));
                            }
                            /*Fin auditoria*/
                            condiciones.Add(condicion);
                        }

                        context.Tbl_Condiciones_Riesgo_Perfil.AddRange(condiciones);
                        context.SaveChanges();
                        Transaction.Commit();

                        return(perfilsoc);
                    }
                    catch (Exception ex)
                    {
                        registraLog.RegistrarError(typeof(PerfilSocioDemograficoManager), string.Format("Error al guardar el perfil SocioDemocratio en la  base de datos  {0}: {1}", DateTime.Now, ex.StackTrace), ex);
                        Transaction.Rollback();
                        return(null);
                    }
                }
            }
        }
        public bool InsertarCargueMasivoPerfil(List <EDPerfilSocioDemografico> perfiles)
        {
            using (SG_SSTContext context = new SG_SSTContext())
            {
                using (var Transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        foreach (EDPerfilSocioDemografico perfil in perfiles)
                        {
                            PerfilSocioDemograficoPlanificacion perfilSocioDemografico = new PerfilSocioDemograficoPlanificacion()
                            {
                                IDEmpleado_PerfilSocioDemoGrafico = perfil.IDEmpleado_PerfilSocioDemoGrafico,
                                PK_Numero_Documento_Empl          = perfil.PK_Numero_Documento_Empl,
                                GradoEscolaridad              = perfil.GradoEscolaridad,
                                Ingresos                      = perfil.Ingresos,
                                FK_Ciudad                     = perfil.Fk_Id_Municipio,
                                Conyuge                       = perfil.Conyuge,
                                Hijos                         = perfil.Hijos,
                                FK_Estrato                    = perfil.FK_Estrato,
                                FK_Estado_Civil               = perfil.FK_Estado_Civil,
                                Sexo                          = perfil.Sexo,
                                FK_VinculacionLaboral         = perfil.FK_VinculacionLaboral,
                                TurnoTrabajo                  = perfil.TurnoTrabajo,
                                FechaIngresoUltimoCargo       = perfil.FechaIngresoUltimoCargo,
                                evaluacionesMedicasRequeridas = perfil.evaluacionesMedicasRequeridas,
                                caracteristicasPsicologicas   = perfil.caracteristicasPsicologicas,
                                caracteristicasFisicas        = perfil.caracteristicasFisicas,
                                FK_Etnia                      = perfil.FK_Etnia,
                                nitEmpresa                    = perfil.nitEmpresa,
                                FK_Proceso                    = perfil.Procesos,
                                Fk_Sede                       = perfil.Pk_Id_Sede,
                                ZonaLugar                     = perfil.ZonaLugar
                            };


                            context.Tbl_PerfilSocioDemograficoPlanificacion.Add(perfilSocioDemografico);
                            /*inicio auditoria*/
                            if (context.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaPlanificacion)
                            {
                                context.Tbl_AuditoriaPlanificacionSistema.Add(auditoriaSistema.ObtenerAuditoriaPlanificacion(perfil.EDInfoAuditoria,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.Modulos.Planificacion,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.SubModulos.Perfil_sociodemográfico,
                                                                                                                             Enumeraciones.EnumAuditoriaSistema.Opciones.Cargar_Plantilla,
                                                                                                                             perfilSocioDemografico.ToString()));
                            }
                            /*fin auditoria*/
                            context.SaveChanges();
                            List <Condiciones_Riesgo_Perfil> condiciones = new List <Condiciones_Riesgo_Perfil>();
                            foreach (var per in perfil.condicionesRiesgo)
                            {
                                Condiciones_Riesgo_Perfil condicion = new Condiciones_Riesgo_Perfil();
                                condicion.OtroPeligro = per.Otro;
                                condicion.FK_Clasificacion_De_Peligro = per.FK_Clasificacion_De_Peligro;
                                condicion.tiempoExposicion            = per.tiempoExpos;
                                condicion.FK_PerfilSocioDemografico   = perfilSocioDemografico.IDEmpleado_PerfilSocioDemoGrafico;
                                condiciones.Add(condicion);
                                /*inicio auditoria*/
                                if (context.Tbl_ActivaAuditoriaSistema.ToList().FirstOrDefault().EsActivaPlanificacion)
                                {
                                    context.Tbl_AuditoriaPlanificacionSistema.Add(auditoriaSistema.ObtenerAuditoriaPlanificacion(perfil.EDInfoAuditoria,
                                                                                                                                 Enumeraciones.EnumAuditoriaSistema.Acciones.CREACION,
                                                                                                                                 Enumeraciones.EnumAuditoriaSistema.Modulos.Planificacion,
                                                                                                                                 Enumeraciones.EnumAuditoriaSistema.SubModulos.Perfil_sociodemográfico,
                                                                                                                                 Enumeraciones.EnumAuditoriaSistema.Opciones.Cargar_Plantilla,
                                                                                                                                 condicion.ToString()));
                                }
                                /*fin auditoria*/
                            }

                            context.Tbl_Condiciones_Riesgo_Perfil.AddRange(condiciones);
                            context.SaveChanges();
                        }
                        Transaction.Commit();
                        return(true);
                    }
                    catch
                    {
                        Transaction.Rollback();
                        return(false);
                    }
                }
                throw new NotImplementedException();
            }
        }