We have a type that we are trying to bind to a column chart. The chart fails to bind if the properties are decorated with JsonPropertyName attribute. Remove the attribute the data binds Ok. Is there a work around that allows us to keep the attribute decoration?
<TelerikGridLayout>
<GridLayoutColumns>
<GridLayoutColumn Width="60%"></GridLayoutColumn>
<GridLayoutColumn Width="40%"></GridLayoutColumn>
</GridLayoutColumns>
<GridLayoutItems>
<GridLayoutItem Column="2">
<TelerikChart>
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Column" Name="Successful" Data=transactionByDateResponse2 Field=@nameof(TransactionSummaryResponse2.SuccessfulCount) CategoryField=@nameof(TransactionSummaryResponse2.TransactionDate)>
<ChartSeriesStack Group="ChartSeriesType.Column" />
</ChartSeries>
<ChartSeries Type="ChartSeriesType.Column" Name="Failed" Data=transactionByDateResponse2 Field=@nameof(TransactionSummaryResponse2.FailedCount)>
<ChartSeriesStack Group="ChartSeriesType.Column" />
</ChartSeries>
<ChartSeries Type="ChartSeriesType.Column" Name="Vend Failed" Data=transactionByDateResponse2 Field=@nameof(TransactionSummaryResponse2.VendFailedCount)>
<ChartSeriesStack Group="ChartSeriesType.Column" />
</ChartSeries>
<ChartSeries Type="ChartSeriesType.Column" Name="Expired" Data=transactionByDateResponse2 Field=@nameof(TransactionSummaryResponse2.ExpiredCount)>
<ChartSeriesStack Group="ChartSeriesType.Column" />
</ChartSeries>
</ChartSeriesItems>
<ChartLegend Position="ChartLegendPosition.Bottom"/>
</TelerikChart>
</GridLayoutItem>
</GridLayoutItems>
</TelerikGridLayout>
namespace Poseidon.BackOffice.Blazor.Features.Transactions.Components
{
public record TransactionSummaryResponse2
{
[JsonPropertyName("transactionDate")]
public DateOnly TransactionDate { get; init; }
[JsonPropertyName("expiredCount")]
public long ExpiredCount { get; init; }
[JsonPropertyName("expiredTotalAmountInMinorUnits")]
public decimal ExpiredTotalAmountInMinorUnits { get; init; }
[JsonPropertyName("successfulCount")]
public long SuccessfulCount { get; init; }
[JsonPropertyName("successfulTotalAmountInMinorUnits")]
public decimal SuccessfulTotalAmountInMinorUnits { get; init; }
[JsonPropertyName("failedCount")]
public long FailedCount { get; init; }
[JsonPropertyName("failedTotalAmountInMinorUnits")]
public decimal FailedTotalAmountInMinorUnits { get; init; }
[JsonPropertyName("vendFailedCount")]
public long VendFailedCount { get; init; }
[JsonPropertyName("vendFailedTotalAmountInMinorUnits")]
public decimal VendFailedTotalAmountInMinorUnits { get; init; }
}
public partial class TransactionReportSummary
{
List<TransactionSummaryResponse2> transactionByDateResponse2 = new();
protected override void OnInitialized()
{
TransactionSummaryResponse2 transactionSummaryResponse2item = new TransactionSummaryResponse2 { TransactionDate = new DateOnly(2024, 11, 5), ExpiredCount = 1, FailedCount = 2, SuccessfulCount = 3, VendFailedCount = 4 };
transactionByDateResponse2.Add(transactionSummaryResponse2item);
transactionSummaryResponse2item = new TransactionSummaryResponse2 { TransactionDate = new DateOnly(2024, 11, 4), ExpiredCount = 1, FailedCount = 2, SuccessfulCount = 3, VendFailedCount = 4 };
transactionByDateResponse2.Add(transactionSummaryResponse2item);
transactionSummaryResponse2item = new TransactionSummaryResponse2 { TransactionDate = new DateOnly(2024, 11, 3), ExpiredCount = 1, FailedCount = 2, SuccessfulCount = 3, VendFailedCount = 4 };
transactionByDateResponse2.Add(transactionSummaryResponse2item);
}
}
}