Fix args serialization/deserialization

This commit is contained in:
2025-11-20 11:53:35 +09:00
parent 32783e1842
commit 5c474c4850
5 changed files with 17 additions and 8 deletions

View File

@ -58,7 +58,7 @@ namespace Hcs.WebApp.BackgroundServices.CampaignManagers
var args = campaign.DeserializeArgs() as CampaignParseArgs; var args = campaign.DeserializeArgs() as CampaignParseArgs;
operations = await HeadquartersService.InitiateOperationsAsync(context, 1, campaign.Id, Operation.OperationType.ParseHousesData_15_7_0_1); operations = await HeadquartersService.InitiateOperationsAsync(context, 1, campaign.Id, Operation.OperationType.ParseHousesData_15_7_0_1);
await FileToParseService.SetOperationToFileToParseAsync(context, args!.FileToParseId, operations.First()); await FileToParseService.SetOperationToFileToParseAsync(context, args!.fileToParseId, operations.First());
await transaction.CommitAsync(); await transaction.CommitAsync();
} }

View File

@ -117,7 +117,7 @@ namespace Hcs.WebApp.Components.Shared
// TODO: Use user id // TODO: Use user id
var campaign = await HeadquartersService.InitiateCampaignAsync(CampaignType, "", new CampaignParseArgs() var campaign = await HeadquartersService.InitiateCampaignAsync(CampaignType, "", new CampaignParseArgs()
{ {
FileToParseId = (int)dialogResult fileToParseId = (int)dialogResult
}); });
CampaignManagementState.EnqueueCampaign(campaign); CampaignManagementState.EnqueueCampaign(campaign);
} }

View File

@ -46,17 +46,19 @@ namespace Hcs.WebApp.Data.Hcs
public ICampaignArgs? DeserializeArgs() public ICampaignArgs? DeserializeArgs()
{ {
if (Args == null) return null; if (Args == null)
{
return JsonConvert.DeserializeObject<ICampaignArgs>(Args, new JsonSerializerSettings() return null;
}
return JsonConvert.DeserializeObject<CampaignArgsContainer>(Args, new JsonSerializerSettings()
{ {
TypeNameHandling = TypeNameHandling.Auto TypeNameHandling = TypeNameHandling.Auto
}); }).args;
} }
public void SerializeArgs(ICampaignArgs args) public void SerializeArgs(ICampaignArgs args)
{ {
Args = JsonConvert.SerializeObject(args, Formatting.None, new JsonSerializerSettings() Args = JsonConvert.SerializeObject(new CampaignArgsContainer(args), Formatting.None, new JsonSerializerSettings()
{ {
TypeNameHandling = TypeNameHandling.Auto TypeNameHandling = TypeNameHandling.Auto
}); });

View File

@ -0,0 +1,7 @@
namespace Hcs.WebApp.Data.Hcs.CampaignArgs
{
public class CampaignArgsContainer(ICampaignArgs args)
{
public ICampaignArgs args = args;
}
}

View File

@ -2,6 +2,6 @@
{ {
public class CampaignParseArgs : ICampaignArgs public class CampaignParseArgs : ICampaignArgs
{ {
public int FileToParseId; public int fileToParseId;
} }
} }