///<remarks> /// <name>DADocumento.DeleteDocumento</name> /// <create>04-Septiembre-2014</create> /// <author>Ruben.Cobos</author> ///</remarks> ///<summary>Elimina un documento en la BD</summary> ///<param name="oENTDocumento">Entidad de Documento con los parámetros necesarios para realizar la transacción</param> ///<param name="sConnection">Cadena de conexión a la base de datos</param> ///<param name="iAlternateDBTimeout">Valor en milisegundos del Timeout en la consulta a la base de datos. 0 si se desea el Timeout por default</param> ///<returns>Una entidad de respuesta</returns> public ENTResponse DeleteDocumento(ENTDocumento oENTDocumento, String sConnection, Int32 iAlternateDBTimeout) { SqlConnection sqlCnn = new SqlConnection(sConnection); SqlCommand sqlCom; SqlParameter sqlPar; SqlDataAdapter sqlDA; ENTResponse oENTResponse = new ENTResponse(); // Configuración de objetos sqlCom = new SqlCommand("uspDocumento_Del", sqlCnn); sqlCom.CommandType = CommandType.StoredProcedure; // Timeout alternativo en caso de ser solicitado if (iAlternateDBTimeout > 0) { sqlCom.CommandTimeout = iAlternateDBTimeout; } // Parametros sqlPar = new SqlParameter("DocumentoId", SqlDbType.Int); sqlPar.Value = oENTDocumento.DocumentoId; sqlCom.Parameters.Add(sqlPar); // Inicializaciones oENTResponse.dsResponse = new DataSet(); sqlDA = new SqlDataAdapter(sqlCom); // Transacción try{ sqlCnn.Open(); sqlDA.Fill(oENTResponse.dsResponse); sqlCnn.Close(); }catch (SqlException sqlEx){ oENTResponse.ExceptionRaised(sqlEx.Message); }catch (Exception ex){ oENTResponse.ExceptionRaised(ex.Message); }finally{ if (sqlCnn.State == ConnectionState.Open) { sqlCnn.Close(); } sqlCnn.Dispose(); } // Resultado return oENTResponse; }
///<remarks> /// <name>BPDocumento.InsertDocumento</name> /// <create>04-Septiembre-2014</create> /// <author>Ruben.Cobos</author> ///</remarks> ///<summary>Guarda un documento en la BD</summary> ///<param name="oENTDocumento">Entidad de Documento con los parámetros necesarios para realizar la transacción</param> ///<returns>Una entidad de respuesta</returns> public ENTResponse InsertDocumento(ENTDocumento oENTDocumento) { DADocumento oDADocumento = new DADocumento(); ENTResponse oENTResponse = new ENTResponse(); try{ // Transacción en base de datos oENTResponse = oDADocumento.InsertDocumento(oENTDocumento, this.sConnectionApplication, 0); // Validación de error en consulta if (oENTResponse.GeneratesException) { return oENTResponse; } // Validación de mensajes de la BD oENTResponse.sMessage = oENTResponse.dsResponse.Tables[0].Rows[0]["sResponse"].ToString(); if (oENTResponse.sMessage != "") { return oENTResponse; } }catch (Exception ex){ oENTResponse.ExceptionRaised(ex.Message); } // Resultado return oENTResponse; }
void InsertDocumento() { ENTDocumento oENTDocumento = new ENTDocumento(); ENTResponse oENTResponse = new ENTResponse(); ENTSession oENTSession; BPDocumento oBPDocumento = new BPDocumento(); try { // Validaciones if (this.fupArchivo.PostedFile == null) { throw (new Exception("Es necesario seleccionar un Documento")); } if (!this.fupArchivo.HasFile) { throw (new Exception("Es necesario seleccionar un Documento")); } if (this.fupArchivo.PostedFile.ContentLength == 0) { throw (new Exception("Es necesario seleccionar un Documento")); } // Obtener Sesion oENTSession = (ENTSession)this.Session["oENTSession"]; // Formulario oENTDocumento.SolicitudId = Int32.Parse(this.hddSolicitudId.Value); oENTDocumento.ExpedienteId = 0; oENTDocumento.ModuloId = 2; // Quejas oENTDocumento.idUsuarioInsert = oENTSession.idUsuario; oENTDocumento.Extension = Path.GetExtension(this.fupArchivo.PostedFile.FileName); oENTDocumento.Nombre = this.fupArchivo.FileName; oENTDocumento.Descripcion = this.ckeDescripcion.Text.Trim(); oENTDocumento.Ruta = oBPDocumento.UploadFile(this.fupArchivo.PostedFile, this.hddSolicitudId.Value, BPDocumento.RepositoryTypes.Solicitud ); // Transacción oENTResponse = oBPDocumento.InsertDocumento(oENTDocumento); // Errores y Warnings if (oENTResponse.GeneratesException) { throw (new Exception(oENTResponse.sErrorMessage)); } if (oENTResponse.sMessage != "") { throw (new Exception(oENTResponse.sMessage)); } // Estado inicial del formulario this.ckeDescripcion.Text = ""; // Refrescar el formulario SelectSolicitud(); // Foco ScriptManager.RegisterStartupScript(this.Page, this.GetType(), Convert.ToString(Guid.NewGuid()), "function pageLoad(){ focusControl('" + this.fupArchivo.ClientID + "'); }", true); }catch (Exception ex){ throw (ex); } }
// Rutinas el programador void DeleteDocumento(Int32 DocumentoId) { ENTDocumento oENTDocumento = new ENTDocumento(); ENTResponse oENTResponse = new ENTResponse(); BPDocumento oBPDocumento = new BPDocumento(); try { // Formulario oENTDocumento.DocumentoId = DocumentoId; // Consultar información del archivo oENTResponse = oBPDocumento.SelectDocumento_Path(oENTDocumento); // Errores y Warnings if (oENTResponse.GeneratesException) { throw (new Exception(oENTResponse.sErrorMessage)); } if (oENTResponse.sMessage != "") { throw (new Exception(oENTResponse.sMessage)); } // Eliminar físicamente el archivo if (File.Exists(oENTResponse.dsResponse.Tables[1].Rows[0]["Ruta"].ToString())) { File.Delete(oENTResponse.dsResponse.Tables[1].Rows[0]["Ruta"].ToString()); } // Eliminar la referencia del archivo en la base de datos oENTResponse = oBPDocumento.DeleteDocumento(oENTDocumento); // Errores y Warnings if (oENTResponse.GeneratesException) { throw (new Exception(oENTResponse.sErrorMessage)); } if (oENTResponse.sMessage != "") { throw (new Exception(oENTResponse.sMessage)); } // Estado inicial del formulario this.ckeDescripcion.Text = ""; // Refrescar el formulario SelectSolicitud(); // Foco ScriptManager.RegisterStartupScript(this.Page, this.GetType(), Convert.ToString(Guid.NewGuid()), "function pageLoad(){ focusControl('" + this.fupArchivo.ClientID + "'); }", true); }catch ( IOException ioEx){ throw (ioEx); }catch (Exception ex){ throw (ex); } }
// Eventos public void ProcessRequest(HttpContext httpContext) { ENTDocumento oENTDocumento = new ENTDocumento(); ENTResponse oENTResponse = new ENTResponse(); BPDocumento oBPDocumento = new BPDocumento(); MemoryStream msFile; FileStream fsFile; Byte[] byteFile; Int32 DocumentoId; try { // Validaciones de llamada if (httpContext.Request.QueryString["key"] == null) { httpContext.Response.Redirect("~/Application/WebApp/Private/SysApp/saNotificacion.aspx", false); return; } // Obtener el id del documento DocumentoId = Int32.Parse(gcEncryption.DecryptString(httpContext.Request.QueryString["key"], true)); // Consultar la ruta del archivo oENTDocumento.DocumentoId = DocumentoId; oENTResponse = oBPDocumento.SelectDocumento_Path(oENTDocumento); // Errores y Warnings if (oENTResponse.GeneratesException) { throw (new Exception(oENTResponse.sErrorMessage)); } if (oENTResponse.sMessage != "") { throw (new Exception(oENTResponse.sMessage)); } // Obtener el archivo fsFile = new System.IO.FileStream(oENTResponse.dsResponse.Tables[1].Rows[0]["Ruta"].ToString(), System.IO.FileMode.Open, System.IO.FileAccess.Read); byteFile = new Byte[fsFile.Length]; fsFile.Read(byteFile, 0, (int)fsFile.Length); fsFile.Close(); // Validación if (byteFile == null) { throw (new Exception("No se encontró el archivo")); } // Cambiar los contet de la página httpContext.Response.ContentType = "application/x-unknown/octet-stream"; httpContext.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + oENTResponse.dsResponse.Tables[1].Rows[0]["Nombre"].ToString() + "\""); // Descargar el archivo msFile = new MemoryStream(byteFile, true); msFile.Write(byteFile, 0, byteFile.Length); httpContext.Response.BinaryWrite(byteFile); httpContext.Response.Flush(); }catch (IOException ioEx){ httpContext.Response.Write(ioEx.Message); }catch (Exception ex){ httpContext.Response.Write(ex.Message); }finally{ httpContext.Response.End(); } }