public JsonResult Download(string id) { try { BuildersCapitalDataProvider BuildersCapitalDataProvider = new BuildersCapitalDataProvider(); Document foundDocument = BuildersCapitalDataProvider.RetrieveDocuments().ToList().Find(x => x.Id == new Guid(id)); ZipProvider ZipProvider = new ZipProvider(); string fileName = $"{id}.zip"; string folderName = "/Output/"; string serverPath = Path.Combine(Server.MapPath("~" + folderName), fileName); ZipProvider.WriteByteArrayToFile(serverPath, foundDocument.DocBlob); var result = new { error = 0, data = folderName + fileName, message = "" }; return(Json(result, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var result = new { error = 1, data = "", message = ex.Message }; return(Json(result, JsonRequestBehavior.AllowGet)); } }
public async Task <JsonResult> DownloadAsync(string id) { try { BuildersCapitalDataProvider BuildersCapitalDataProvider = new BuildersCapitalDataProvider(); Document foundDocument = BuildersCapitalDataProvider.RetrieveDocuments().ToList().Find(x => x.Id == new Guid(id)); ZipProvider ZipProvider = new ZipProvider(); string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads/" + id + ".zip"); await ZipProvider.DownloadZipFile(path, foundDocument.DocBlob); var result = new { error = 0, data = path, message = "" }; return(await Task.FromResult(Json(result, JsonRequestBehavior.AllowGet))); } catch (Exception ex) { var result = new { error = 1, data = "", message = ex.Message }; return(await Task.FromResult(Json(result, JsonRequestBehavior.AllowGet))); } }
public void Should_create_zip_file() { //Arrange _mockTaskRepository = MockRepository.GenerateStub <ITaskRepository>(); var task = new TaskEntity() { Status = "done", DownloadPath = _testDirectoryPath }; _mockTaskRepository.Stub(t => t.GetTaskById(1)).Return(task); _mockTaskRepository.Stub(t => t.UpdateTask(task)); ZipProvider zp = new ZipProvider(_mockTaskRepository); //Act zp.Zip(_testDirectoryPath, 1); //Assert _mockTaskRepository.AssertWasCalled(t => t.GetTaskById(1)); _mockTaskRepository.AssertWasCalled(t => t.UpdateTask(task)); fi = new FileInfo(Path.Combine(Path.GetTempPath(), "Test.zip")); Assert.AreEqual(fi.Exists, true); }