public ApiResponse GenerateZipSelect(datosFileDow d) { ApiResponse apiResponse = new ApiResponse("OK", ""); try { string folder = Settings.GetKey(Settings.KEY.templateGen); folder = Path.Combine(folder, TypeFolder.generated.ToString()); string FolderId = Path.Combine(folder, d.id.ToString()); List <string> data = new List <string>(); foreach (string item in Directory.GetDirectories(FolderId)) { foreach (itemDetail i in d.idsDetail) { if (i.idItem == Convert.ToInt32(item.Split('\\')[item.Split('\\').Length - 1])) { data.Add(item); } } } string outString = FolderId + "\\" + d.id + "_Files.zip"; if (File.Exists(outString)) { File.Delete(outString); } using (var archive = ZipFile.Open(outString, ZipArchiveMode.Create, Encoding.UTF8)) { foreach (string item in data) { var iddetail = item.Split('\\')[(item.Split('\\').Count() - 1)]; string FolderItem = Path.Combine(FolderId, item.ToString()); string route = Path.Combine(FolderItem, $"{d.id}_{iddetail}.pdf"); if (System.IO.File.Exists(route)) { archive.CreateEntryFromFile(route, Path.GetFileName(route), CompressionLevel.Optimal); } } } byte[] bytes = System.IO.File.ReadAllBytes(outString); apiResponse.data = Convert.ToBase64String(bytes); } catch (Exception ex) { apiResponse.msg = ex.Message; apiResponse.status = "FAIL"; } return(apiResponse); }
public ActionResult GenerateZipSelect(datosFileDow data) { ApiResponse apiResponse = _IWorkIntegrity.GenerateZipSelect(data); return(Json(new { apiResponse }, JsonRequestBehavior.AllowGet)); }