Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }