varunprocessedFiles=await_Repo.GetFilesByProcessId(31);//Se obtiene el listado de archivos que no se han procesado
if(unprocessedFiles.Count()>0){
FilePaths4ProcessunprocessedFilesRelativePath=await_RepoRelativePath.getPaths4ProcessById(31);//Se obtiene la ruta relativa de los archivos sin procesar
FilePaths4ProcessprocessedFilesRelativePath=await_RepoRelativePath.getPaths4ProcessById(35);//Se obtiene la ruta relativa de los archivos procesados
varunprocessedFilesPath=RootPathCorresponsales+unprocessedFilesRelativePath.Path;//Se genera la ruta completa de los archivos sin procesar
varprocessedFilesPath=RootPathCorresponsales+processedFilesRelativePath.Path;//Se genera la ruta completa de los archivos procesados
stringzipName=$"ZippedFilesToProcess_{DateTime.Now:yyyyMMddHHmmss}.zip";//Se crea el nombre del zip
System.IO.Compression.ZipFile.CreateFromDirectory(unprocessedFilesPath,processedFilesPath+zipName);//Se comprime el folder de los archivos sin procesar.
if(System.IO.File.Exists(processedFilesPath+zipName))//Se valida que se haya creado el archivo zip
MemoryStreamtxtStream=newMemoryStream(txtBytes);//Se obtiene el contenido del archivo actual que no ha sido procesado
using(varprocessedFileStream=System.IO.File.Create(processedFilesPath+unprocessedFile.NombreArchivo))//Se crea un nuevo archivo en la ruta de los procesados con el nombre del archivo sin procesar
{
awaittxtStream.CopyToAsync(processedFileStream);//Se copia el contenido del archivo sin procesar al nuevo archivo en la ruta de los procesados.
System.IO.File.Delete(unprocessedFilesPath+unprocessedFile.NombreArchivo);//Se borra el archivo en la ruta de los no procesados.
await_Repo.UpdateFileProcessById(unprocessedFile.id,32);//Se actualiza el proceso en el log al archivo actual.
}
}//Deberia borrar el registro de la BD del archivo que no existe?
}
System.IO.File.Delete(processedFilesPath+zipName);//Se borra el archivo zip.
returnFile(zipStream,"application/zip",zipName);//Se envia como respuesta el contenido del archivo zip.
}else{
System.IO.File.Delete(processedFilesPath+zipName);//Se borra el archivo zip.
thrownewException("Ocurrio un error al comprimir los archivos de texto. Intentelo de nuevo.");
}
}else{
thrownewException("Ocurrio un error al comprimir los archivos de texto. Intentelo de nuevo.");
}
}else{
returnnewOkObjectResult(new{respuesta="Sin archivos por procesar pro el momento"});