Add a JSON deserialization constructor for ScheduledEventData (#92)

This PR fixes an exception that would occur when deserialization of
ScheduledEventData would be attempted. The exception is fixed by
providing a constructor containing all properties and adding the
`[JsonConstructor]` attribute.

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
Octol1ttle 2023-08-15 10:23:58 +05:00 committed by GitHub
parent ef5410b7bb
commit 0bf61ecf39
Signed by: GitHub
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 5 deletions

View file

@ -1,3 +1,4 @@
using System.Text.Json.Serialization;
using Remora.Discord.API.Abstractions.Objects;
namespace Boyfriend.Data;
@ -8,13 +9,26 @@ namespace Boyfriend.Data;
/// <remarks>This information is stored on disk as a JSON file.</remarks>
public sealed class ScheduledEventData
{
public ScheduledEventData(ulong id, string name, GuildScheduledEventStatus status,
DateTimeOffset scheduledStartTime)
public ScheduledEventData(ulong id, string name, DateTimeOffset scheduledStartTime,
GuildScheduledEventStatus status)
{
Id = id;
Name = name;
Status = status;
ScheduledStartTime = scheduledStartTime;
Status = status;
}
[JsonConstructor]
public ScheduledEventData(ulong id, string name, bool earlyNotificationSent, DateTimeOffset scheduledStartTime,
DateTimeOffset? actualStartTime, GuildScheduledEventStatus? status, bool scheduleOnStatusUpdated)
{
Id = id;
Name = name;
EarlyNotificationSent = earlyNotificationSent;
ScheduledStartTime = scheduledStartTime;
ActualStartTime = actualStartTime;
Status = status;
ScheduleOnStatusUpdated = scheduleOnStatusUpdated;
}
public ulong Id { get; }