internal static WorkingHoursSumDailyApiModel DeserializeWorkingHoursSumDailyApiModel(XElement element) { string employeeName = default; bool? hasEntries = default; int? totalDays = default; double? totalHours = default; string totalHoursAndDaysFormatted = default; string totalHoursMinutesAndDaysFormatted = default; int? totalUnclosedEntries = default; string totalWorkedHoursAndMinutesShortFormatted = default; long? userId = default; IReadOnlyList<WorkingHoursReportEntryApiModel> entries = default; if (element.Element("employeeName") is XElement employeeNameElement) { employeeName = (string)employeeNameElement; } if (element.Element("hasEntries") is XElement hasEntriesElement) { hasEntries = (bool?)hasEntriesElement; } if (element.Element("totalDays") is XElement totalDaysElement) { totalDays = (int?)totalDaysElement; } if (element.Element("totalHours") is XElement totalHoursElement) { totalHours = (double?)totalHoursElement; } if (element.Element("totalHoursAndDaysFormatted") is XElement totalHoursAndDaysFormattedElement) { totalHoursAndDaysFormatted = (string)totalHoursAndDaysFormattedElement; } if (element.Element("totalHoursMinutesAndDaysFormatted") is XElement totalHoursMinutesAndDaysFormattedElement) { totalHoursMinutesAndDaysFormatted = (string)totalHoursMinutesAndDaysFormattedElement; } if (element.Element("totalUnclosedEntries") is XElement totalUnclosedEntriesElement) { totalUnclosedEntries = (int?)totalUnclosedEntriesElement; } if (element.Element("totalWorkedHoursAndMinutesShortFormatted") is XElement totalWorkedHoursAndMinutesShortFormattedElement) { totalWorkedHoursAndMinutesShortFormatted = (string)totalWorkedHoursAndMinutesShortFormattedElement; } if (element.Element("userId") is XElement userIdElement) { userId = (long?)userIdElement; } var array = new List<WorkingHoursReportEntryApiModel>(); foreach (var e in element.Elements("WorkingHoursReportEntryApiModel")) { array.Add(WorkingHoursReportEntryApiModel.DeserializeWorkingHoursReportEntryApiModel(e)); } entries = array; return new WorkingHoursSumDailyApiModel(employeeName, entries, hasEntries, totalDays, totalHours, totalHoursAndDaysFormatted, totalHoursMinutesAndDaysFormatted, totalUnclosedEntries, totalWorkedHoursAndMinutesShortFormatted, userId); }
internal static WorkingHoursSumDailyApiModel DeserializeWorkingHoursSumDailyApiModel(JsonElement element) { Optional<string> employeeName = default; Optional<IReadOnlyList<WorkingHoursReportEntryApiModel>> entries = default; Optional<bool> hasEntries = default; Optional<int> totalDays = default; Optional<double> totalHours = default; Optional<string> totalHoursAndDaysFormatted = default; Optional<string> totalHoursMinutesAndDaysFormatted = default; Optional<int> totalUnclosedEntries = default; Optional<string> totalWorkedHoursAndMinutesShortFormatted = default; Optional<long> userId = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("employeeName")) { employeeName = property.Value.GetString(); continue; } if (property.NameEquals("entries")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List<WorkingHoursReportEntryApiModel> array = new List<WorkingHoursReportEntryApiModel>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(WorkingHoursReportEntryApiModel.DeserializeWorkingHoursReportEntryApiModel(item)); } entries = array; continue; } if (property.NameEquals("hasEntries")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } hasEntries = property.Value.GetBoolean(); continue; } if (property.NameEquals("totalDays")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } totalDays = property.Value.GetInt32(); continue; } if (property.NameEquals("totalHours")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } totalHours = property.Value.GetDouble(); continue; } if (property.NameEquals("totalHoursAndDaysFormatted")) { totalHoursAndDaysFormatted = property.Value.GetString(); continue; } if (property.NameEquals("totalHoursMinutesAndDaysFormatted")) { totalHoursMinutesAndDaysFormatted = property.Value.GetString(); continue; } if (property.NameEquals("totalUnclosedEntries")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } totalUnclosedEntries = property.Value.GetInt32(); continue; } if (property.NameEquals("totalWorkedHoursAndMinutesShortFormatted")) { totalWorkedHoursAndMinutesShortFormatted = property.Value.GetString(); continue; } if (property.NameEquals("userId")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } userId = property.Value.GetInt64(); continue; } } return new WorkingHoursSumDailyApiModel(employeeName.Value, Optional.ToList(entries), Optional.ToNullable(hasEntries), Optional.ToNullable(totalDays), Optional.ToNullable(totalHours), totalHoursAndDaysFormatted.Value, totalHoursMinutesAndDaysFormatted.Value, Optional.ToNullable(totalUnclosedEntries), totalWorkedHoursAndMinutesShortFormatted.Value, Optional.ToNullable(userId)); }