diff options
Diffstat (limited to 'Pages')
-rw-r--r-- | Pages/Report.cshtml | 10 | ||||
-rw-r--r-- | Pages/Report.cshtml.cs | 28 | ||||
-rw-r--r-- | Pages/Shared/_Layout.cshtml | 4 |
3 files changed, 38 insertions, 4 deletions
diff --git a/Pages/Report.cshtml b/Pages/Report.cshtml index 624d61f..4b5907b 100644 --- a/Pages/Report.cshtml +++ b/Pages/Report.cshtml @@ -24,16 +24,18 @@ <h1>Download Details</h1> -<table style width="100%"> +<form method="post" enctype="application/x-www-form-urlencoded"><input type="submit" name="csv" value="Download CSV"></form> + +<table style="width=100%;"> <tr> - <td style="width:20%;"><b>Time</b></td> + <td style="width:25%;"><b>Time</b></td> <td style="width:15%;"><b>Key</b></td> - <td style="width:65%;"><b>Info</b></td> + <td style="width:60%;"><b>Info</b></td> </tr> @foreach(Download obj in Model.Rows) { <tr> - <td>@obj.Time</td> + <td>@obj.Time.ToString("o", System.Globalization.CultureInfo.InvariantCulture)</td> <td>@obj.Key</td> <td> @foreach (string s in obj.Info) 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>(); diff --git a/Pages/Shared/_Layout.cshtml b/Pages/Shared/_Layout.cshtml index cc18cc7..fdce3ee 100644 --- a/Pages/Shared/_Layout.cshtml +++ b/Pages/Shared/_Layout.cshtml @@ -7,6 +7,10 @@ <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" /> <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" /> <link rel="stylesheet" href="~/download_admin.styles.css" asp-append-version="true" /> + <style> + table {border: 1px solid black;border-collapse:collapse;} + td {border: 1px solid black;border-collapse:collapse;text-align: left;vertical-align: top;padding: 5px;} + </style> </head> <body> <header> |