Minify NextPageData & CurrentPageData JSON
Clean JSON output for NextPageData and CurrentPageData Normalize NextPageData & CurrentPageData formatting Fix JSON formatting for NextPageData and CurrentPageData Compact JSON for NextPageData and CurrentPageData
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
using System;
|
||||
using Caspian.WorkflowFramework.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using System.Threading.Tasks;
|
||||
using Caspian.WorkflowFramework.Models;
|
||||
|
||||
namespace Caspian.WorkflowFramework.Utility
|
||||
{
|
||||
@@ -33,21 +35,67 @@ namespace Caspian.WorkflowFramework.Utility
|
||||
? long.TryParse(dictionary[nameof(workflowModel.UserId)]?.ToString(), out var userId) ? userId : (long?)null
|
||||
: null;
|
||||
|
||||
//workflowModel.CurrentPageData = dictionary.ContainsKey(nameof(workflowModel.CurrentPageData))
|
||||
// ? (object?)dictionary[nameof(workflowModel.CurrentPageData)]
|
||||
// : null;
|
||||
//CurrentPageData
|
||||
if (dictionary.TryGetValue(nameof(workflowModel.CurrentPageData), out var currentPageDataObj) &&
|
||||
currentPageDataObj is not null)
|
||||
{
|
||||
switch (currentPageDataObj)
|
||||
{
|
||||
case JsonElement je:
|
||||
workflowModel.CurrentPageData = je;
|
||||
break;
|
||||
|
||||
workflowModel.CurrentPageData = dictionary.ContainsKey(nameof(workflowModel.CurrentPageData))
|
||||
? dictionary[nameof(workflowModel.CurrentPageData)]?.ToString()
|
||||
: null;
|
||||
case JsonNode node:
|
||||
// .NET 6+
|
||||
workflowModel.CurrentPageData = JsonSerializer.SerializeToElement(node);
|
||||
break;
|
||||
|
||||
//workflowModel.NextPageData = dictionary.ContainsKey(nameof(workflowModel.NextPageData))
|
||||
// ? (object?)dictionary[nameof(workflowModel.NextPageData)]
|
||||
// : null;
|
||||
|
||||
workflowModel.NextPageData = dictionary.ContainsKey(nameof(workflowModel.NextPageData))
|
||||
? dictionary[nameof(workflowModel.NextPageData)]?.ToString()
|
||||
: null;
|
||||
case string s:
|
||||
// اگر به صورت string JSON ذخیره شده
|
||||
workflowModel.CurrentPageData = JsonSerializer.Deserialize<JsonElement>(s);
|
||||
break;
|
||||
|
||||
default:
|
||||
// هر نوع دیگری: serialize و تبدیل به JsonElement
|
||||
workflowModel.CurrentPageData = JsonSerializer.SerializeToElement(currentPageDataObj);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
workflowModel.CurrentPageData = null;
|
||||
}
|
||||
|
||||
//NextPageData
|
||||
if (dictionary.TryGetValue(nameof(workflowModel.NextPageData), out var nextPageDataObj) &&
|
||||
nextPageDataObj is not null)
|
||||
{
|
||||
switch (nextPageDataObj)
|
||||
{
|
||||
case JsonElement je:
|
||||
workflowModel.NextPageData = je;
|
||||
break;
|
||||
|
||||
case JsonNode node:
|
||||
// .NET 6+
|
||||
workflowModel.NextPageData = JsonSerializer.SerializeToElement(node);
|
||||
break;
|
||||
|
||||
case string s:
|
||||
// اگر به صورت string JSON ذخیره شده
|
||||
workflowModel.NextPageData = JsonSerializer.Deserialize<JsonElement>(s);
|
||||
break;
|
||||
|
||||
default:
|
||||
// هر نوع دیگری: serialize و تبدیل به JsonElement
|
||||
workflowModel.NextPageData = JsonSerializer.SerializeToElement(nextPageDataObj);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
workflowModel.NextPageData = null;
|
||||
}
|
||||
|
||||
workflowModel.NextPageUrl = dictionary.ContainsKey(nameof(workflowModel.NextPageUrl))
|
||||
? dictionary[nameof(workflowModel.NextPageUrl)]?.ToString()
|
||||
|
||||
Reference in New Issue
Block a user