public List <EDMetaIndicador> EliminarMetaIndicador(int IdMetaInd, int IdEmpresa)
        {
            List <EDMetaIndicador> MetasIndicadores = new List <EDMetaIndicador>();
            MetaIndicador          metaBorrar       = new MetaIndicador();

            using (SG_SSTContext context = new SG_SSTContext())
            {
                using (var Transaction = context.Database.BeginTransaction())
                {
                    RegistraLog registraLog = new RegistraLog();
                    try
                    {
                        metaBorrar = (from part in context.Tbl_MetaIndicador
                                      where part.PK_Id_MetaIndicador == IdMetaInd
                                      select part).First();

                        if (metaBorrar != null)
                        {
                            context.Tbl_MetaIndicador.Remove(metaBorrar);
                        }

                        context.SaveChanges();
                        Transaction.Commit();

                        MetasIndicadores = (from m in context.Tbl_MetaIndicador
                                            where m.FK_Empresa == IdEmpresa
                                            select new EDMetaIndicador
                        {
                            PK_Id_MetaIndicador = m.PK_Id_MetaIndicador,
                            FK_Indicador = m.FK_Indicador,
                            FK_Empresa = m.FK_Empresa,
                            ValorMeta = m.ValorMeta,
                            ValorRojo = m.ValorRojo,
                            ValorAmarillo = m.ValorAmarillo,
                            ValorVerde = m.ValorVerde,
                            Indicador = (from ind in context.Tbl_Indicador
                                         where ind.PK_Id_Indicador == m.FK_Indicador
                                         select new EDIndicador
                            {
                                PK_Id_Indicador = ind.PK_Id_Indicador,
                                Nombre = ind.Nombre,
                                Tipo = ind.Tipo,
                                Unidad = ind.Unidad,
                                Frecuencia = ind.Frecuencia
                            }).FirstOrDefault()
                        }
                                            ).ToList();
                    }
                    catch (Exception ex)
                    {
                        registraLog.RegistrarError(typeof(MetasIndicadoresManager), string.Format("Error al eliminar meta de indicador  {0}: {1}", DateTime.Now, ex.StackTrace), ex);
                        Transaction.Rollback();
                        return(null);
                    }
                }
            }
            return(MetasIndicadores);
        }
        public EDMetaIndicador GuardarMetaIndicador(EDMetaIndicador metaInd)
        {
            using (SG_SSTContext context = new SG_SSTContext())
            {
                using (var Transaction = context.Database.BeginTransaction())
                {
                    RegistraLog registraLog = new RegistraLog();
                    try
                    {
                        var yaExiste = (from m in context.Tbl_MetaIndicador
                                        where m.FK_Indicador == metaInd.FK_Indicador &&
                                        m.FK_Empresa == metaInd.FK_Empresa
                                        select m);

                        if (yaExiste.Count() == 0)
                        {
                            MetaIndicador part = new MetaIndicador()
                            {
                                FK_Indicador  = metaInd.FK_Indicador,
                                FK_Empresa    = metaInd.FK_Empresa,
                                ValorMeta     = metaInd.ValorMeta,
                                ValorRojo     = metaInd.ValorRojo,
                                ValorAmarillo = metaInd.ValorAmarillo,
                                ValorVerde    = metaInd.ValorVerde
                            };
                            context.Tbl_MetaIndicador.Add(part);
                        }

                        context.SaveChanges();
                        Transaction.Commit();

                        var metaRegistrada = (from m in context.Tbl_MetaIndicador
                                              where m.FK_Indicador == metaInd.FK_Indicador &&
                                              m.FK_Empresa == metaInd.FK_Empresa
                                              select new EDMetaIndicador
                        {
                            PK_Id_MetaIndicador = m.PK_Id_MetaIndicador,
                            FK_Indicador = m.FK_Indicador,
                            FK_Empresa = m.FK_Empresa,
                            ValorMeta = m.ValorMeta,
                            ValorRojo = m.ValorRojo,
                            ValorAmarillo = m.ValorAmarillo,
                            ValorVerde = m.ValorVerde
                        }
                                              ).FirstOrDefault();
                        return(metaRegistrada);
                    }
                    catch (Exception ex)
                    {
                        registraLog.RegistrarError(typeof(MetasIndicadoresManager), string.Format("Error al registrar meta de indicador  {0}: {1}", DateTime.Now, ex.StackTrace), ex);
                        Transaction.Rollback();
                        return(null);
                    }
                }
            }
        }