public IActionResult Documentos([FromBody] dynamic value)
        {
            try
            {
                int idObjeto                = value.idObjeto != null ? (int)value.idObjeto : default(int);
                int idTipoObjeto            = value.idTipoObjeto != null ? (int)value.idTipoObjeto : default(int);
                List <Documento> documentos = DocumentosAdjuntosDAO.getDocumentos(idObjeto, idTipoObjeto);

                List <datos> datos_ = new List <datos>();
                foreach (Documento documento in documentos)
                {
                    datos dato = new datos();
                    dato.id        = documento.id;
                    dato.nombre    = documento.nombre;
                    dato.extension = documento.extension;
                    datos_.Add(dato);
                }

                return(Ok(new { success = true, documentos = datos_ }));
            }
            catch (Exception e)
            {
                CLogger.write("2", "DocumentoAdjuntoController.class", e);
                return(BadRequest(500));
            }
        }
 public IActionResult Documento(int idDocumento)
 {
     try
     {
         Documento documento = DocumentosAdjuntosDAO.getDocumentoById(idDocumento);
         documento.usuarioActualizo = User.Identity.Name;
         bool eliminar = DocumentosAdjuntosDAO.eliminarDocumentoAdjunto(documento);
         return(Ok(new { success = eliminar }));
     }
     catch (Exception e)
     {
         CLogger.write("4", "DocumentoAdjuntoController.class", e);
         return(BadRequest(500));
     }
 }
        public async Task <IActionResult> Descarga(int idDocumento)
        {
            try
            {
                Documento documento          = DocumentosAdjuntosDAO.getDocumentoById(idDocumento);
                String    directorioTemporal = @"\SIPRO\archivos\documentos\";

                String filePath = directorioTemporal + @"\" + documento.idTipoObjeto + @"\" + documento.idObjeto + @"\" + documento.nombre;

                var memory = new MemoryStream();
                using (var stream = new FileStream(filePath, FileMode.Open))
                {
                    await stream.CopyToAsync(memory);
                }
                memory.Position = 0;
                return(File(memory, GetContentType(filePath), Path.GetFileName(filePath)));
            }
            catch (Exception e)
            {
                CLogger.write("3", "DocumentoAdjuntoController.class", e);
                return(BadRequest(500));
            }
        }
        public async Task <IActionResult> Documento([FromForm] IFormFile file, int objetoId, int tipoObjetoId)
        {
            try
            {
                bool         guardado = false;
                bool         existe   = false;
                List <datos> datos_   = new List <datos>();
                FileStream   documento;
                String       directorioTemporal = @"\SIPRO\archivos\documentos\";
                if (objetoId > 0)
                {
                    directorioTemporal = directorioTemporal + tipoObjetoId + @"\";
                }
                if (tipoObjetoId >= -1)
                {
                    directorioTemporal = directorioTemporal + objetoId + @"\";
                }

                String    nombreDocumento  = file.FileName;
                String[]  tipo             = nombreDocumento.Split('.');
                String    tipoContenido    = tipo[tipo.Length - 1];
                Documento documentoAdjunto = new Documento();
                documentoAdjunto.nombre        = nombreDocumento;
                documentoAdjunto.extension     = tipoContenido;
                documentoAdjunto.idObjeto      = objetoId;
                documentoAdjunto.idTipoObjeto  = tipoObjetoId;
                documentoAdjunto.usuarioCreo   = User.Identity.Name;
                documentoAdjunto.fechaCreacion = DateTime.Now;
                documentoAdjunto.estado        = 1;

                if (!Directory.Exists(directorioTemporal))
                {
                    Directory.CreateDirectory(directorioTemporal);
                }

                if (nombreDocumento.LastIndexOf('/') >= 0)
                {
                    documento = new FileStream(directorioTemporal + nombreDocumento, FileMode.OpenOrCreate);
                }
                else
                {
                    documento = new FileStream(directorioTemporal + @"\" + nombreDocumento, FileMode.OpenOrCreate);
                }

                if (documento.Length == 0)
                {
                    using (var stream = documento)
                    {
                        await file.CopyToAsync(stream);

                        guardado = DocumentosAdjuntosDAO.guardarDocumentoAdjunto(documentoAdjunto);

                        if (guardado)
                        {
                            List <Documento> docs = DocumentosAdjuntosDAO.getDocumentos(objetoId, tipoObjetoId);
                            foreach (Documento doc in docs)
                            {
                                datos dato = new datos();
                                dato.id        = doc.id;
                                dato.nombre    = doc.nombre;
                                dato.extension = doc.extension;
                                datos_.Add(dato);
                            }

                            documento.Close();
                        }
                    }
                }
                else
                {
                    existe = true;
                    documento.Close();
                }


                return(Ok(new { success = guardado, documentos = datos_, existe_archivo = existe }));
            }
            catch (Exception e)
            {
                CLogger.write("1", "DocumentoAdjuntoController.class", e);
                return(BadRequest(500));
            }
        }