Implement file upload

This commit is contained in:
2025-11-20 09:55:57 +09:00
parent 7c5c889c53
commit 5b3cb2cabd
9 changed files with 128 additions and 16 deletions

View File

@ -1,6 +1,7 @@
using Hcs.WebApp.BackgroundServices;
using Hcs.WebApp.Components.Dialogs;
using Hcs.WebApp.Data.Hcs;
using Hcs.WebApp.Data.Hcs.CampaignArgs;
using Hcs.WebApp.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
@ -74,7 +75,7 @@ namespace Hcs.WebApp.Components.Shared
if (await HeadquartersService.HasActiveCampaignAsync(CampaignType))
{
ChangeState(SyncedPageState.Idle);
ChangeState(SyncedPageState.SyncWaiting);
}
else
{
@ -88,17 +89,19 @@ namespace Hcs.WebApp.Components.Shared
{
if (state == SyncedPageState.SyncWaiting) return;
ChangeState(SyncedPageState.SyncWaiting);
if (await HeadquartersService.HasActiveCampaignAsync(CampaignType))
{
ChangeState(SyncedPageState.Idle);
ChangeState(SyncedPageState.SyncWaiting);
}
else
{
await DialogService.OpenAsync<StartParsing>(
var dialogResult = await DialogService.OpenAsync<StartParsing>(
"Отправка файла",
null,
new Dictionary<string, object>()
{
// TODO: Use user id
{ nameof(StartParsing.UploaderId), "" }
},
new DialogOptions()
{
Width = "600px",
@ -107,9 +110,18 @@ namespace Hcs.WebApp.Components.Shared
ShowClose = false
});
//// TODO: Use user id
//var campaign = await HeadquartersService.InitiateCampaignAsync(CampaignType, "");
//CampaignManagementState.EnqueueCampaign(campaign);
var fileToParseId = -1;
if (dialogResult != null && int.TryParse(dialogResult, out fileToParseId))
{
// TODO: Use user id
var campaign = await HeadquartersService.InitiateCampaignAsync(CampaignType, "", new CampaignParseArgs()
{
FileToParseId = fileToParseId
});
CampaignManagementState.EnqueueCampaign(campaign);
ChangeState(SyncedPageState.SyncWaiting);
}
}
}