/// <summary> /// Método encargado de Actualizar el Archivo del Registro, junto con sus Campos /// </summary> /// <param name="ruta_archivo_con_extension"></param> /// <param name="referencia"></param> /// <param name="id_usuario"></param> /// <param name="archivo"></param> /// <returns></returns> public RetornoOperacion ActualizaArchivoRegistro(string ruta_archivo_con_extension, string referencia, int id_usuario, byte[] archivo) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Instanciamos el Detalle Archivo using (ArchivoTipoConfiguracion objDetalle = new ArchivoTipoConfiguracion(this._id_archivo_tipo_configuracion)) { //Validamos que exista objeto if (objDetalle.id_archivo_tipo_configuracion > 0) { //Instanciamos Tipo de Archivo using (ArchivoTipo objTipo = new ArchivoTipo(objDetalle.id_archivo_tipo)) { //Validamos que exista objeto if (objTipo.id_archivo_tipo > 0) { //Validamos extension if (objTipo.extension == "." + TSDK.Base.Cadena.InvierteCadena(TSDK.Base.Cadena.RegresaCadenaSeparada(TSDK.Base.Cadena.InvierteCadena(ruta_archivo_con_extension), '.', 0))) { //Convertimos tamaño de Archivo bytes decimal unidad = (decimal)TSDK.Base.Archivo.ConvierteUnidadaBytes((double)objTipo.tamano_archivo, (TSDK.Base.Archivo.UnidadInformacion)objTipo.id_unidad); //Si el tamaño de archivo es menor al establecido if (archivo.LongLength <= unidad) { //Guardamos el Archivo en la Ruta Especifica result = Archivo.GuardaArchivoCreandoRuta(archivo, ruta_archivo_con_extension, false); //Si se Guarda Correctamente if (result.OperacionExitosa) { //Invocando Método de Actualización result = this.actualizaRegistros(this._id_tabla, this._id_registro, this._id_archivo_tipo_configuracion, ruta_archivo_con_extension, referencia, id_usuario, this._habilitar); //Validamos Guardado en Base de Datos, si no se guardó correctamente if (!result.OperacionExitosa) { //Eliminamos Archivo Creado y el directorio, si es que ya no tiene contenido TSDK.Base.Archivo.EliminaArchivo(ruta_archivo_con_extension, true); } else { //Eliminamos Archivo Anterior TSDK.Base.Archivo.EliminaArchivo(this._url, true); } } } else//Mostramos Error { result = new RetornoOperacion(string.Format("El tamaño de archivo excede el permitido: {0} Bytes", archivo.LongLength)); } } else//Mostramos Error { result = new RetornoOperacion("Extensión de Archivo invalida"); } } else//Mostramos Error { result = new RetornoOperacion("No se encontraron datos complementarios Tipo Archivo"); } } } else//Mostramos Error { result = new RetornoOperacion("No se encontraron datos complementarios Detalle Archivo"); } } //Devolviendo Resultado Obtenido return(result); }
/// <summary> /// Método Público encargado de Insertar un Archivo Registro, guardando el archivo de forma física en la ubicación indicada /// </summary> /// <param name="id_tabla">Id de Tabla</param> /// <param name="id_registro">Id de Registro</param> /// <param name="id_archivo_tipo_configuracion">Id de Tipo de Archivo configurado</param> /// <param name="referencia">Referencia descriptiva</param> /// <param name="id_usuario">Id de usuario</param> /// <param name="archivo">Arreglo de bytes con contenido del archivo</param> /// <param name="ruta_archivo_con_extension">Ruta de archivo con extensión</param> /// <returns></returns> public static RetornoOperacion InsertaArchivoRegistro(int id_tabla, int id_registro, int id_archivo_tipo_configuracion, string referencia, int id_usuario, byte[] archivo, string ruta_archivo_con_extension) { //Declaramos Objeto Resultado RetornoOperacion resultado = new RetornoOperacion(); //Instanciamos el Detalle Archivo using (ArchivoTipoConfiguracion objDetalle = new ArchivoTipoConfiguracion(id_archivo_tipo_configuracion)) //Validamos que exista objeto if (objDetalle.id_archivo_tipo_configuracion > 0) { //Instanciamos Tipo de Archivo using (ArchivoTipo objTipo = new ArchivoTipo(objDetalle.id_archivo_tipo)) { //Validamos que exista objeto if (objTipo.id_archivo_tipo > 0) { //Validamos extension if (objTipo.extension.ToLower() == ("." + TSDK.Base.Cadena.InvierteCadena(TSDK.Base.Cadena.RegresaCadenaSeparada(TSDK.Base.Cadena.InvierteCadena(ruta_archivo_con_extension), '.', 0))).ToLower()) { //Convertimos tamaño de Archivo bytes decimal unidad = (decimal)TSDK.Base.Archivo.ConvierteUnidadaBytes((double)objTipo.tamano_archivo, (TSDK.Base.Archivo.UnidadInformacion)objTipo.id_unidad); //Si el tamaño de archivo es menor al establecido if (archivo.LongLength <= unidad) { //Guardamos el Archivo en la Ruta Especifica resultado = Archivo.GuardaArchivoCreandoRuta(archivo, ruta_archivo_con_extension, false); //Si se Guarda Correctamente if (resultado.OperacionExitosa) { //Guardamos Refistro en Base de Datos //Inicializando arreglo de parámetros object[] param = { 1, 0, id_tabla, id_registro, id_archivo_tipo_configuracion, ruta_archivo_con_extension, referencia, id_usuario, true, "", "" }; //Realizamos la inserción del registro resultado = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoObjeto(_nom_sp, param); //Validamos Guardado en Base de Datos, si no se guardó correctamente if (!resultado.OperacionExitosa) { //Eliminamos Archivo Creado y el directorio, si es que ya no tiene contenido TSDK.Base.Archivo.EliminaArchivo(ruta_archivo_con_extension, true); } } } else//Mostramos Error { resultado = new RetornoOperacion(string.Format("El tamaño de archivo excede el permitido: {0} Bytes", archivo.LongLength)); } } else//Mostramos Error { resultado = new RetornoOperacion("Extensión de Archivo invalida"); } } else//Mostramos Error { resultado = new RetornoOperacion("No se encontraron datos complementarios Tipo Archivo"); } } } else//Mostramos Error { resultado = new RetornoOperacion("No se encontraron datos complementarios Detalle Archivo"); } //Devolviendo Resultado Obtenido return(resultado); }