diff options
Diffstat (limited to 'Pages/Report.cshtml.cs')
-rw-r--r-- | Pages/Report.cshtml.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Pages/Report.cshtml.cs b/Pages/Report.cshtml.cs index 76cfabf..d40f89d 100644 --- a/Pages/Report.cshtml.cs +++ b/Pages/Report.cshtml.cs @@ -19,6 +19,9 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using Npgsql; using System.Collections.Generic; using download_admin; +using Microsoft.AspNetCore.Http.HttpResults; +using System.Text; +using System.Text.Encodings; namespace download_admin.Pages; @@ -27,7 +30,32 @@ public class ReportModel : PageModel public void OnGet() { ViewData["Title"] = "Download Repsoitory Report"; + GetData(); + } + + public IActionResult OnPost() + { + GetData(); + + StringBuilder str = new StringBuilder(); + + foreach (var row in Rows) + { + str.AppendFormat("{0},{1}", row.Time.ToString("o", System.Globalization.CultureInfo.InvariantCulture), row.Key); + foreach (var s in row.Info) + { + str.AppendFormat(",{0}", s); + } + str.AppendLine(); + } + byte[] file_data = UTF8Encoding.UTF8.GetBytes(str.ToString()); + + return File(file_data, "text/csv","downloads.csv"); + } + + private void GetData() + { try { Rows = new List<Download>(); |