Ejemplo n.º 1
0
    protected void btnEliminaObj_Click(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(Request["__EVENTARGUMENT"]))
        {
            using (Entities c = new Entities())
            {
                try
                {
                    int      id       = Convert.ToInt32(Request["__EVENTARGUMENT"]);
                    int      iDeptoId = getDptoId();
                    OBJETIVO obj      = c.CONTENIDO.OfType <OBJETIVO>().SingleOrDefault(x => x.CONTENIDO_ID == id);

                    if (obj.TieneAcceso(User.Identity.GetUserId()))
                    {
                        if (obj.YaPublicado())
                        {
                            //Marcamos el cambio como eliminación
                            obj.FECHA_MODIFICACION            = DateTime.Now;
                            obj.AUTOR_MODIFICACION_USUARIO_ID = User.Identity.GetUserId().ToString();
                            obj.TIPO_CAMBIO_CONTENIDO_ID      = TIPO_CAMBIO_CONTENIDO.ELIMINADO;
                            obj.ESTADO_VALIDACION_ID          = ESTADOS_VALIDACION.PDTE_VALIDAR;

                            c.CONTENIDO.Attach(obj);
                            c.Entry(obj).State = EntityState.Modified;
                            c.SaveChanges();

                            SuccessMessage         = "Objetivo marcado para eliminación (se deberá validar previamente).";
                            successMessage.Visible = true;
                        }
                        else
                        {
                            //Si todavía no ha sido publicado lo eliminamos
                            OBJETIVO.EliminaObjetivo(obj.CONTENIDO_ID);
                            Response.Redirect("AdminPlan?id=" + iDeptoId.ToString() + "&m=" + "Objetivo eliminado correctamente.", false);
                        }
                    }
                    else
                    {
                        logger.Info("Acceso - AdminPlan.aspx Usuario: " + User.Identity.GetUserId() + " sin permiso de modificación en Objetivo: " + id.ToString());
                    }
                }
                catch (Exception ex)
                {
                    ErrorMessage         = "Error al eliminar el objetivo.";
                    errorMessage.Visible = true;
                    logger.Error("ERROR: AdminPlan.aspx Error al eliminar objetivo " + Request["__EVENTARGUMENT"] + ". Error: " + ex.Message + " " + ex.InnerException);
                    Notificaciones.NotifySystemOps(ex);
                }
            }
        }
    }