mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-03 17:36:59 +01:00
Updated status message when adding files and related test
This commit is contained in:
parent
590ca4ef56
commit
a7f6bcf36c
3 changed files with 38 additions and 11 deletions
|
@ -10,6 +10,7 @@ using BTCPayServer.Storage.Services.Providers.AzureBlobStorage.Configuration;
|
|||
using BTCPayServer.Storage.Services.Providers.FileSystemStorage.Configuration;
|
||||
using BTCPayServer.Storage.ViewModels;
|
||||
using BTCPayServer.Tests.Logging;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Xunit;
|
||||
|
@ -180,7 +181,10 @@ namespace BTCPayServer.Tests
|
|||
private async Task CanUploadRemoveFiles(ServerController controller)
|
||||
{
|
||||
var fileContent = "content";
|
||||
var uploadFormFileResult = Assert.IsType<RedirectToActionResult>(await controller.CreateFile(TestUtils.GetFormFile("uploadtestfile.txt", fileContent)));
|
||||
List<IFormFile> fileList = new List<IFormFile>();
|
||||
fileList.Add(TestUtils.GetFormFile("uploadtestfile1.txt", fileContent));
|
||||
|
||||
var uploadFormFileResult = Assert.IsType<RedirectToActionResult>(await controller.CreateFiles(fileList));
|
||||
Assert.True(uploadFormFileResult.RouteValues.ContainsKey("fileId"));
|
||||
var fileId = uploadFormFileResult.RouteValues["fileId"].ToString();
|
||||
Assert.Equal("Files", uploadFormFileResult.ActionName);
|
||||
|
|
|
@ -148,25 +148,48 @@ namespace BTCPayServer.Controllers
|
|||
|
||||
|
||||
[HttpPost("server/files/upload")]
|
||||
public async Task<IActionResult> CreateFile(List<IFormFile> files)
|
||||
public async Task<IActionResult> CreateFiles(List<IFormFile> files)
|
||||
{
|
||||
if (files.Count > 0)
|
||||
if (files != null && files.Count > 0)
|
||||
{
|
||||
int invalidFileNameCount = 0;
|
||||
List<string> fileIds = new List<string>();
|
||||
foreach (IFormFile file in files)
|
||||
{
|
||||
if (!file.FileName.IsValidFileName())
|
||||
{
|
||||
this.TempData.SetStatusMessageModel(new StatusMessageModel()
|
||||
{
|
||||
Message = "Invalid file name",
|
||||
Severity = StatusMessageModel.StatusSeverity.Error
|
||||
});
|
||||
invalidFileNameCount++;
|
||||
continue;
|
||||
}
|
||||
var newFile = await _FileService.AddFile(file, GetUserId());
|
||||
fileIds.Add(newFile.Id);
|
||||
}
|
||||
|
||||
StatusMessageModel.StatusSeverity statusMessageSeverity;
|
||||
string statusMessage;
|
||||
|
||||
if (invalidFileNameCount == 0)
|
||||
{
|
||||
statusMessage = "Files Added Successfully";
|
||||
statusMessageSeverity = StatusMessageModel.StatusSeverity.Success;
|
||||
}
|
||||
else if (invalidFileNameCount > 0 && invalidFileNameCount < files.Count)
|
||||
{
|
||||
statusMessage = $"{files.Count - invalidFileNameCount} files were added. {invalidFileNameCount} files had invalid names";
|
||||
statusMessageSeverity = StatusMessageModel.StatusSeverity.Error;
|
||||
}
|
||||
else
|
||||
{
|
||||
statusMessage = $"Files could not be added due to invalid names";
|
||||
statusMessageSeverity = StatusMessageModel.StatusSeverity.Error;
|
||||
}
|
||||
|
||||
this.TempData.SetStatusMessageModel(new StatusMessageModel()
|
||||
{
|
||||
Message = statusMessage,
|
||||
Severity = statusMessageSeverity
|
||||
});
|
||||
|
||||
if (fileIds.Count == 1)
|
||||
{
|
||||
return RedirectToAction(nameof(Files), new
|
||||
|
|
|
@ -92,9 +92,9 @@ else
|
|||
|
||||
@if (Model.StorageConfigured)
|
||||
{
|
||||
<form asp-action="CreateFile" method="post" enctype="multipart/form-data">
|
||||
<form asp-action="CreateFiles" method="post" enctype="multipart/form-data">
|
||||
<h4 class="mt-5 mb-3">Upload Files</h4>
|
||||
<input multiple type="file" class="form-control mb-3" name="files" id="file" required>
|
||||
<input multiple type="file" class="form-control mb-3" name="files" id="files" required>
|
||||
<button class="btn btn-primary" role="button"><span class="fa fa-plus"></span> Upload files</button>
|
||||
</form>
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue