Exemplo n.º 1
0
        public ValidacionResponse validarTamanio(Stream dataResult, long maximo) // en megas
        {
            ValidacionResponse respuesta = new ValidacionResponse();
            long fileLen = dataResult.Length;

            if (fileLen <= (maximo * 1048576))
            {
                return(new ValidacionResponse {
                    result = true, message = "OK"
                });
            }
            return(new ValidacionResponse {
                result = false, message = "EL archivo a adjuntar debe ser menor a " + maximo + "MB"
            });
        }
Exemplo n.º 2
0
        public ValidacionResponse validarExtension(string fileName, string extension)
        {
            ValidacionResponse respuesta  = new ValidacionResponse();
            string             _extension = Path.GetExtension(fileName);

            if (_extension == extension)
            {
                return(new ValidacionResponse {
                    result = true, message = "OK"
                });
            }
            return(new ValidacionResponse {
                result = false, message = "Solo puede adjuntar archivos de extención " + extension
            });
        }
Exemplo n.º 3
0
        /* public EOpcionesUbigeo ObtenerOpcionesUbigeo(string IdDre)
         * {
         * throw new NotImplementedException();
         * }*/

        public UploadTempResponse Upload(Stream data)
        {
            // Boundary is auto-detected but can also be specified.
            //var parser = new MultipartFormDataParser(data, Encoding.UTF8
            EUser user = new EUser
            {
                nameId = "_",
                IdUser = 0
            };

            //EDocumento documento = new EDocumento();
            EDocumentoTem documentoTem = new EDocumentoTem();

            string descTipoFuncion; // = "DeCreacion"; //"DeDesignacionDirector"

            UploadTempResponse uploadTempResponse = new UploadTempResponse();
            Complementarias    complementarias    = new Complementarias();

            var parser = MultipartFormDataParser.Parse(data);

            //Parámetros
            string username             = parser.GetParameterValue("usuario");
            string finalidad            = parser.GetParameterValue("finalidad");
            string idDocumentoTemString = parser.GetParameterValue("idDocumentoTem");
            int    _idDocumentoTem      = 0;

            if (idDocumentoTemString != null && idDocumentoTemString != "" && idDocumentoTemString != "0")
            {
                _idDocumentoTem = int.Parse(idDocumentoTemString);

                /*uploadTempResponse.result = false;
                 * uploadTempResponse.message = _idDocumento.ToString() + " **";
                 * uploadTempResponse.data = null;
                 *
                 * return uploadTempResponse;*/
            }

            user.nameId     = username;
            descTipoFuncion = username + finalidad;

            // Files are stored in a list:
            var    file     = parser.Files.First();
            string filename = file.FileName;

            //******Validar la extención****
            ValidacionResponse validarExtension = new ValidacionResponse();

            validarExtension = complementarias.validarExtension(filename, ".pdf");
            if (!(validarExtension.result))
            {
                uploadTempResponse.result  = false;
                uploadTempResponse.message = validarExtension.message;
                uploadTempResponse.data    = null;

                return(uploadTempResponse);
            }

            Stream dataResult = file.Data;
            //******Validar la tamaño****

            ValidacionResponse validarTamanio = new ValidacionResponse();

            validarTamanio = complementarias.validarTamanio(dataResult, 1);
            if (!(validarTamanio.result))
            {
                uploadTempResponse.result  = false;
                uploadTempResponse.message = validarTamanio.message;
                uploadTempResponse.data    = null;

                return(uploadTempResponse);
            }

            ValidacionResponse validarFidelidad = new ValidacionResponse();

            validarFidelidad = complementarias.validarFidelidad(dataResult);
            if (!(validarFidelidad.result))
            {
                uploadTempResponse.result  = false;
                uploadTempResponse.message = validarFidelidad.message;
                uploadTempResponse.data    = null;

                return(uploadTempResponse);
            }

            string rutaBase = ConfigurationManager.AppSettings["URL_FILE_SERVER"];

            //Crear un nombre temporal_aleatorio. combinación de fecha + random
            try
            {
                var ruta = Path.Combine("Temporales", user.nameId);
                var path = Path.Combine(rutaBase, ruta);

                // SI EL DIRECTORIO DE USUARIO NO EXISTE: CREA.
                if (!(Directory.Exists(path)))
                {
                    Directory.CreateDirectory(path);
                }

                //SI DIRECTORIO EXISTE:
                if ((Directory.Exists(path)))
                {
                    //CREA EL NOMBRE DEL ARCHIVO
                    var newFileName = descTipoFuncion + ".pdf";
                    //var fullPath = @"logo-minedu3.pdf";
                    var fullPath = Path.Combine(path, newFileName);

                    try
                    {
                        if (File.Exists(fullPath))
                        {
                            FileInfo fi2 = new FileInfo(fullPath);
                            fi2.Delete();
                        }
                    }
                    catch (Exception e) {
                        newFileName = descTipoFuncion + "1" + ".pdf";
                        fullPath    = Path.Combine(path, newFileName);
                    }

                    using (var fileStream = new FileStream(fullPath, FileMode.Create, FileAccess.Write))
                    {
                        try
                        {
                            dataResult.Seek(0, SeekOrigin.Begin);
                            //dataResult.CopyTo(fileStream, input.Length);
                            dataResult.CopyTo(fileStream);
                            //fileStream.Flush();

                            //EClasificacionDocumento clasificacion = new EClasificacionDocumento();
                            //clasificacion.IdClasificacionDoc = 1;
                            //ETipoDocumento tipoDocumento = new ETipoDocumento();
                            //tipoDocumento.IdTipoDoc = 1;
                            documentoTem.IdDocumentoTem = _idDocumentoTem;
                            documentoTem.NombreArchivo  = newFileName; // fileStream.Name;
                            documentoTem.Ruta           = ruta;        // path.ToString();
                            documentoTem.Finalidad      = finalidad;
                            //documento.Temporal = true;
                            //documento.ClasificacionDocumento = clasificacion; //Resolutivo, cambiar esto depues.
                            //documento.NroDocumento = "1234567891";
                            //documento.TipoDocumento = tipoDocumento;
                            try
                            {
                                EDocumentoTem _documentoTem = new EDocumentoTem();
                                uploadTempResponse = comunRegistro.GrabarDatosDocumentoTemporal(documentoTem);
                                //uploadTempResponse.result = true;
                                //uploadTempResponse.message = "OK";
                                //uploadTempResponse.data = _documentoTem;
                                return(uploadTempResponse);
                            }
                            catch (Exception e)
                            {
                                uploadTempResponse.result  = false;
                                uploadTempResponse.message = e.Message.ToString()
                                                             + e.Source.ToString()
                                                             + e.Data.ToString()
                                                             + "Error al grabar"
                                                             + " id: " + documentoTem.IdDocumentoTem.ToString()
                                                             + " Nombre: " + documentoTem.NombreArchivo
                                                             + " Ruta:" + documentoTem.Ruta
                                                             + " Finalidad: " + documentoTem.Finalidad;
                                uploadTempResponse.data = null;
                                return(uploadTempResponse);
                            }
                        }
                        catch (Exception e)
                        {
                            uploadTempResponse.result  = false;
                            uploadTempResponse.message = e.Message.ToString() + "Error al intentar copiar el archivo"
                                                         + " id: " + documentoTem.IdDocumentoTem.ToString()
                                                         + " Nombre: " + documentoTem.NombreArchivo
                                                         + " Ruta:" + documentoTem.Ruta
                                                         + " Finalidad: " + documentoTem.Finalidad;
                            uploadTempResponse.data = null;

                            return(uploadTempResponse);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("The process failed: {0}", e.ToString());
            }
            finally { }
            //return resp + " tamaño: " + FileLen.ToString(); // "OK-Ana " + filename;
            uploadTempResponse.result  = false;
            uploadTempResponse.message = "Ocurrio Algo";
            uploadTempResponse.data    = null;
            return(uploadTempResponse);
        }