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); } } } }
/// <summary> /// Actualiza Objetivo /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnActualiza_Click(object sender, EventArgs e) { if (ModelState.IsValid) { if ((!String.IsNullOrEmpty(this.ObjetivoEstrategicoPV.Text))) { int iObjetivoId = Convert.ToInt32(this.hdObjetivoIdEdit.Value); using (Entities c = new Entities()) { try { OBJETIVO obj = c.CONTENIDO.OfType <OBJETIVO>().Where(o => o.CONTENIDO_ID == iObjetivoId).FirstOrDefault(); if (obj.YaPublicado()) { obj.FECHA_MODIFICACION = DateTime.Now; obj.AUTOR_MODIFICACION_USUARIO_ID = User.Identity.GetUserId().ToString(); obj.TIPO_CAMBIO_CONTENIDO_ID = TIPO_CAMBIO_CONTENIDO.MODIFICACION; } else { //Si todavía no ha sido publicado lo trataremos como un alta obj.FECHA_CREACION = DateTime.Now; obj.AUTOR_CREACION_USUARIO_ID = User.Identity.GetUserId().ToString(); obj.TIPO_CAMBIO_CONTENIDO_ID = TIPO_CAMBIO_CONTENIDO.ALTA; } //Si hay cambios guardamos si no no, para no marcar como modificado bool bHayCambios = false; if (String.IsNullOrEmpty(obj.OBJETIVO_ESTRATEGICO_PDTE_VAL)) { bHayCambios = true; } else if (obj.OBJETIVO_ESTRATEGICO_PDTE_VAL.Trim() != this.ObjetivoEstrategicoPV.Text.Trim()) { bHayCambios = true; } if (bHayCambios) { obj.OBJETIVO_ESTRATEGICO_PDTE_VAL = this.ObjetivoEstrategicoPV.Text.Trim(); obj.ESTADO_VALIDACION_ID = ESTADOS_VALIDACION.PDTE_VALIDAR; c.CONTENIDO.Attach(obj); c.Entry(obj).State = EntityState.Modified; c.SaveChanges(); SuccessMessage = "Objetivo actualizado correctamente."; successMessage.Visible = true; } } catch (Exception ex) { logger.Fatal("Error al actualizar objetivo (AdminPlan.aspx). Error: " + ex.Message + " " + ex.InnerException); Notificaciones.NotifySystemOps(ex); ErrorMessage = "Error al actualizar nuevo objetivo."; errorMessage.Visible = true; } } } else { ErrorMessage = "Se deben rellenar los campos del formulario."; errorMessage.Visible = true; } } else { ErrorMessage = "Se deben rellenar los campos del formulario."; errorMessage.Visible = true; } }