Add download input link
This commit is contained in:
@@ -72,6 +72,27 @@ namespace LeafWeb.Core.Entities
|
|||||||
return compressedFileStream.ToArray();
|
return compressedFileStream.ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Contains all input files in a zip
|
||||||
|
/// </summary>
|
||||||
|
public byte[] GetInputFileZip()
|
||||||
|
{
|
||||||
|
using (var compressedFileStream = new MemoryStream())
|
||||||
|
{
|
||||||
|
using (var archive = new ZipArchive(compressedFileStream, ZipArchiveMode.Create, true))
|
||||||
|
{
|
||||||
|
foreach (var inputFile in InputFiles)
|
||||||
|
{
|
||||||
|
var entry = archive.CreateEntry(inputFile.Filename);
|
||||||
|
using (var originalFileStream = new MemoryStream(inputFile.Contents))
|
||||||
|
using (var entryStream = entry.Open())
|
||||||
|
originalFileStream.CopyTo(entryStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return compressedFileStream.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public int GetOutputFileSizeSum()
|
public int GetOutputFileSizeSum()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -28,6 +28,11 @@ namespace LeafWeb.Web.Controllers
|
|||||||
return View(viewModel);
|
return View(viewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ActionResult DownloadInput(int id)
|
||||||
|
{
|
||||||
|
return GetInputZip(id);
|
||||||
|
}
|
||||||
|
|
||||||
public ActionResult DownloadOutputToUser(int id)
|
public ActionResult DownloadOutputToUser(int id)
|
||||||
{
|
{
|
||||||
return GetOutputZip(id, LeafOutputFileType.ToUser);
|
return GetOutputZip(id, LeafOutputFileType.ToUser);
|
||||||
@@ -57,6 +62,20 @@ namespace LeafWeb.Web.Controllers
|
|||||||
return new FileContentResult(zip, "application/zip") { FileDownloadName = filename };
|
return new FileContentResult(zip, "application/zip") { FileDownloadName = filename };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ActionResult GetInputZip(int id)
|
||||||
|
{
|
||||||
|
var leafInput = DataService.GetLeafInput(id);
|
||||||
|
|
||||||
|
if (leafInput == null)
|
||||||
|
return View("DownloadNotFound");
|
||||||
|
|
||||||
|
var zip = leafInput.GetInputFileZip();
|
||||||
|
|
||||||
|
var filename = $"{leafInput.Identifier.FilterValidFilename()}_Input.zip";
|
||||||
|
|
||||||
|
return new FileContentResult(zip, "application/zip") { FileDownloadName = filename };
|
||||||
|
}
|
||||||
|
|
||||||
public ActionResult Delete(int id)
|
public ActionResult Delete(int id)
|
||||||
{
|
{
|
||||||
var leafInput = DataService.GetLeafInput(id);
|
var leafInput = DataService.GetLeafInput(id);
|
||||||
|
|||||||
@@ -20,7 +20,8 @@
|
|||||||
grid.Column("Total Results: " + Model.Count(), format:
|
grid.Column("Total Results: " + Model.Count(), format:
|
||||||
@<div class="btn-group" role="group">
|
@<div class="btn-group" role="group">
|
||||||
@Html.ActionLink("Details", "Details", new { id = item.LeafInputId }, new { @class = "btn btn-default btn-xs", role = "button" })
|
@Html.ActionLink("Details", "Details", new { id = item.LeafInputId }, new { @class = "btn btn-default btn-xs", role = "button" })
|
||||||
@Html.ActionLink("Download", "DownloadOutputToUser", new { id = item.LeafInputId }, new { @class = "btn btn-default btn-xs", role = "button" })
|
@Html.ActionLink("Dwnld", "DownloadOutputToUser", new { id = item.LeafInputId }, new { @class = "btn btn-default btn-xs", role = "button" })
|
||||||
|
@Html.ActionLink("Dwnld Input", "DownloadInput", new { id = item.LeafInputId }, new { @class = "btn btn-default btn-xs", role = "button" })
|
||||||
@Html.ActionLink("Delete", "Delete", new { id = item.LeafInputId }, new { @class = "btn btn-default btn-xs", role="button" })
|
@Html.ActionLink("Delete", "Delete", new { id = item.LeafInputId }, new { @class = "btn btn-default btn-xs", role="button" })
|
||||||
</div>)
|
</div>)
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user