internal RecurrenceSchedule(DateTimeOffset?endOn, ScheduleStatus?scheduleStatus, ScheduleType scheduleType, DateTimeOffset?startOn, string timeZone, RecurrenceFrequency frequency, int interval, RecurrencePattern pattern) : base(endOn, scheduleStatus, scheduleType, startOn, timeZone) { Frequency = frequency; Interval = interval; Pattern = pattern; ScheduleType = scheduleType; }
internal ScheduleBase(DateTimeOffset?endOn, ScheduleStatus?scheduleStatus, ScheduleType scheduleType, DateTimeOffset?startOn, string timeZone) { EndOn = endOn; ScheduleStatus = scheduleStatus; ScheduleType = scheduleType; StartOn = startOn; TimeZone = timeZone; }
void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("expression"); writer.WriteStringValue(Expression); if (Optional.IsDefined(EndOn)) { if (EndOn != null) { writer.WritePropertyName("endTime"); writer.WriteStringValue(EndOn.Value, "O"); } else { writer.WriteNull("endTime"); } } if (Optional.IsDefined(ScheduleStatus)) { writer.WritePropertyName("scheduleStatus"); writer.WriteStringValue(ScheduleStatus.Value.ToString()); } writer.WritePropertyName("scheduleType"); writer.WriteStringValue(ScheduleType.ToString()); if (Optional.IsDefined(StartOn)) { if (StartOn != null) { writer.WritePropertyName("startTime"); writer.WriteStringValue(StartOn.Value, "O"); } else { writer.WriteNull("startTime"); } } if (Optional.IsDefined(TimeZone)) { if (TimeZone != null) { writer.WritePropertyName("timeZone"); writer.WriteStringValue(TimeZone); } else { writer.WriteNull("timeZone"); } } writer.WriteEndObject(); }
internal static ScheduleBase DeserializeScheduleBase(JsonElement element) { if (element.TryGetProperty("scheduleType", out JsonElement discriminator)) { switch (discriminator.GetString()) { case "Cron": return(CronSchedule.DeserializeCronSchedule(element)); case "Recurrence": return(RecurrenceSchedule.DeserializeRecurrenceSchedule(element)); } } Optional <DateTimeOffset?> endTime = default; Optional <ScheduleStatus> scheduleStatus = default; ScheduleType scheduleType = default; Optional <DateTimeOffset?> startTime = default; Optional <string> timeZone = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("endTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { endTime = null; continue; } endTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("scheduleStatus")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } scheduleStatus = new ScheduleStatus(property.Value.GetString()); continue; } if (property.NameEquals("scheduleType")) { scheduleType = new ScheduleType(property.Value.GetString()); continue; } if (property.NameEquals("startTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { startTime = null; continue; } startTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("timeZone")) { if (property.Value.ValueKind == JsonValueKind.Null) { timeZone = null; continue; } timeZone = property.Value.GetString(); continue; } } return(new ScheduleBase(Optional.ToNullable(endTime), Optional.ToNullable(scheduleStatus), scheduleType, Optional.ToNullable(startTime), timeZone.Value)); }
internal static RecurrenceSchedule DeserializeRecurrenceSchedule(JsonElement element) { RecurrenceFrequency frequency = default; int interval = default; Optional <RecurrencePattern> pattern = default; Optional <DateTimeOffset?> endTime = default; Optional <ScheduleStatus> scheduleStatus = default; ScheduleType scheduleType = default; Optional <DateTimeOffset?> startTime = default; Optional <string> timeZone = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("frequency")) { frequency = new RecurrenceFrequency(property.Value.GetString()); continue; } if (property.NameEquals("interval")) { interval = property.Value.GetInt32(); continue; } if (property.NameEquals("pattern")) { if (property.Value.ValueKind == JsonValueKind.Null) { pattern = null; continue; } pattern = RecurrencePattern.DeserializeRecurrencePattern(property.Value); continue; } if (property.NameEquals("endTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { endTime = null; continue; } endTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("scheduleStatus")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } scheduleStatus = new ScheduleStatus(property.Value.GetString()); continue; } if (property.NameEquals("scheduleType")) { scheduleType = new ScheduleType(property.Value.GetString()); continue; } if (property.NameEquals("startTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { startTime = null; continue; } startTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("timeZone")) { if (property.Value.ValueKind == JsonValueKind.Null) { timeZone = null; continue; } timeZone = property.Value.GetString(); continue; } } return(new RecurrenceSchedule(Optional.ToNullable(endTime), Optional.ToNullable(scheduleStatus), scheduleType, Optional.ToNullable(startTime), timeZone.Value, frequency, interval, pattern.Value)); }
void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("frequency"); writer.WriteStringValue(Frequency.ToString()); writer.WritePropertyName("interval"); writer.WriteNumberValue(Interval); if (Optional.IsDefined(Pattern)) { if (Pattern != null) { writer.WritePropertyName("pattern"); writer.WriteObjectValue(Pattern); } else { writer.WriteNull("pattern"); } } if (Optional.IsDefined(EndOn)) { if (EndOn != null) { writer.WritePropertyName("endTime"); writer.WriteStringValue(EndOn.Value, "O"); } else { writer.WriteNull("endTime"); } } if (Optional.IsDefined(ScheduleStatus)) { writer.WritePropertyName("scheduleStatus"); writer.WriteStringValue(ScheduleStatus.Value.ToString()); } writer.WritePropertyName("scheduleType"); writer.WriteStringValue(ScheduleType.ToString()); if (Optional.IsDefined(StartOn)) { if (StartOn != null) { writer.WritePropertyName("startTime"); writer.WriteStringValue(StartOn.Value, "O"); } else { writer.WriteNull("startTime"); } } if (Optional.IsDefined(TimeZone)) { if (TimeZone != null) { writer.WritePropertyName("timeZone"); writer.WriteStringValue(TimeZone); } else { writer.WriteNull("timeZone"); } } writer.WriteEndObject(); }
internal CronSchedule(DateTimeOffset?endOn, ScheduleStatus?scheduleStatus, ScheduleType scheduleType, DateTimeOffset?startOn, string timeZone, string expression) : base(endOn, scheduleStatus, scheduleType, startOn, timeZone) { Expression = expression; ScheduleType = scheduleType; }
internal static CronSchedule DeserializeCronSchedule(JsonElement element) { string expression = default; Optional <DateTimeOffset?> endTime = default; Optional <ScheduleStatus> scheduleStatus = default; ScheduleType scheduleType = default; Optional <DateTimeOffset?> startTime = default; Optional <string> timeZone = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("expression")) { expression = property.Value.GetString(); continue; } if (property.NameEquals("endTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { endTime = null; continue; } endTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("scheduleStatus")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } scheduleStatus = new ScheduleStatus(property.Value.GetString()); continue; } if (property.NameEquals("scheduleType")) { scheduleType = new ScheduleType(property.Value.GetString()); continue; } if (property.NameEquals("startTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { startTime = null; continue; } startTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("timeZone")) { if (property.Value.ValueKind == JsonValueKind.Null) { timeZone = null; continue; } timeZone = property.Value.GetString(); continue; } } return(new CronSchedule(Optional.ToNullable(endTime), Optional.ToNullable(scheduleStatus), scheduleType, Optional.ToNullable(startTime), timeZone.Value, expression)); }