Save all files to wwwroot

This commit is contained in:
2025-11-20 15:44:31 +09:00
parent 34c9a44b03
commit ee80c1a40b
4 changed files with 23 additions and 9 deletions

View File

@ -8,13 +8,19 @@ using Hcs.WebApp.Utils;
namespace Hcs.WebApp.BackgroundServices namespace Hcs.WebApp.BackgroundServices
{ {
public class OperationExecutionService(OperationExecutionState state, ExecutorFactory executorFactory, IServiceScopeFactory scopeFactory) : BackgroundService public class OperationExecutionService(
OperationExecutionState state,
ExecutorFactory executorFactory,
IServiceScopeFactory scopeFactory,
IWebHostEnvironment webHostEnvironment) : BackgroundService
{ {
private const int SLEEP_TIME = 30000; private const int SLEEP_TIME = 30000;
private const string OUTGOING_DIR_NAME = "outgoing";
private readonly OperationExecutionState state = state; private readonly OperationExecutionState state = state;
private readonly ExecutorFactory executorFactory = executorFactory; private readonly ExecutorFactory executorFactory = executorFactory;
private readonly IServiceScopeFactory scopeFactory = scopeFactory; private readonly IServiceScopeFactory scopeFactory = scopeFactory;
private readonly IWebHostEnvironment webHostEnvironment = webHostEnvironment;
private Broker.Logger.ILogger logger; private Broker.Logger.ILogger logger;
private IMessageCapturer messageCapturer; private IMessageCapturer messageCapturer;
@ -87,7 +93,7 @@ namespace Hcs.WebApp.BackgroundServices
private void InitializeClient() private void InitializeClient()
{ {
logger = new ActionLogger(); logger = new ActionLogger();
messageCapturer = new FileMessageCapturer("outgoing", logger); messageCapturer = new FileMessageCapturer(Path.Combine(webHostEnvironment.WebRootPath, OUTGOING_DIR_NAME), logger);
using var scope = scopeFactory.CreateScope(); using var scope = scopeFactory.CreateScope();
var configuration = scope.ServiceProvider.GetRequiredService<IConfiguration>(); var configuration = scope.ServiceProvider.GetRequiredService<IConfiguration>();

View File

@ -12,7 +12,8 @@ namespace Hcs.WebApp.BackgroundServices
public class ResultGetService( public class ResultGetService(
ResultGetState state, ResultGetState state,
ResultGetterFactory resultGetterFactory, ResultGetterFactory resultGetterFactory,
IServiceScopeFactory scopeFactory) : BackgroundService IServiceScopeFactory scopeFactory,
IWebHostEnvironment webHostEnvironment) : BackgroundService
{ {
private class GetState private class GetState
{ {
@ -23,10 +24,12 @@ namespace Hcs.WebApp.BackgroundServices
private const int ITERATION_TIME = 10000; private const int ITERATION_TIME = 10000;
private const int SLEEP_TIME = 30000; private const int SLEEP_TIME = 30000;
private const string INCOMING_DIR_NAME = "incoming";
private readonly ResultGetState state = state; private readonly ResultGetState state = state;
private readonly ResultGetterFactory resultGetterFactory = resultGetterFactory; private readonly ResultGetterFactory resultGetterFactory = resultGetterFactory;
private readonly IServiceScopeFactory scopeFactory = scopeFactory; private readonly IServiceScopeFactory scopeFactory = scopeFactory;
private readonly IWebHostEnvironment webHostEnvironment = webHostEnvironment;
private readonly List<(Operation operation, GetState state)> entries = []; private readonly List<(Operation operation, GetState state)> entries = [];
private Broker.Logger.ILogger logger; private Broker.Logger.ILogger logger;
@ -130,7 +133,7 @@ namespace Hcs.WebApp.BackgroundServices
private void InitializeClient() private void InitializeClient()
{ {
logger = new ActionLogger(); logger = new ActionLogger();
messageCapturer = new FileMessageCapturer("incoming", logger); messageCapturer = new FileMessageCapturer(Path.Combine(webHostEnvironment.WebRootPath, INCOMING_DIR_NAME), logger);
using var scope = scopeFactory.CreateScope(); using var scope = scopeFactory.CreateScope();
var configuration = scope.ServiceProvider.GetRequiredService<IConfiguration>(); var configuration = scope.ServiceProvider.GetRequiredService<IConfiguration>();

View File

@ -5,21 +5,24 @@ namespace Hcs.WebApp.Controllers
{ {
[Authorize] [Authorize]
[DisableRequestSizeLimit] [DisableRequestSizeLimit]
public class UploadController() : Controller public class UploadController(IWebHostEnvironment webHostEnvironment) : Controller
{ {
private readonly IWebHostEnvironment webHostEnvironment = webHostEnvironment;
[HttpPost("upload/parsing")] [HttpPost("upload/parsing")]
public IActionResult Single(IFormFile file) public IActionResult Single(IFormFile file)
{ {
try try
{ {
const string directory = "parsing"; const string directory = "parsing";
if (!Directory.Exists(directory)) var directoryPath = Path.Combine(webHostEnvironment.WebRootPath, directory);
if (!Directory.Exists(directoryPath))
{ {
Directory.CreateDirectory(directory); Directory.CreateDirectory(directoryPath);
} }
var fileName = $"{DateTime.Today:dd-MM-yyyy}-{Guid.NewGuid()}{Path.GetExtension(file.FileName)}"; var fileName = $"{DateTime.Today:dd-MM-yyyy}-{Guid.NewGuid()}{Path.GetExtension(file.FileName)}";
var path = Path.Combine(directory, fileName); var path = Path.Combine(directoryPath, fileName);
using var stream = new FileStream(path, FileMode.Create); using var stream = new FileStream(path, FileMode.Create);
file.CopyTo(stream); file.CopyTo(stream);

View File

@ -33,7 +33,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="wwwroot\" /> <Folder Include="wwwroot\incoming\" />
<Folder Include="wwwroot\outgoing\" />
<Folder Include="wwwroot\parsing\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>