From 4cab66f41eb91906a1c9f8802929ef7bb1b99b5f Mon Sep 17 00:00:00 2001 From: beppe Date: Tue, 12 May 2026 12:48:11 +0200 Subject: [PATCH 1/4] Update Mustache templates --- .../generichost/ClientUtils.mustache | 2 +- .../generichost/HostConfiguration.mustache | 3 +- .../generichost/JsonConverter.mustache | 19 ++- .../libraries/generichost/modelEnum.mustache | 125 ++++++++++++++++++ .../generichost/modelGeneric.mustache | 4 +- .../generichost/modelInnerEnum.mustache | 2 +- 6 files changed, 139 insertions(+), 16 deletions(-) create mode 100644 templates-v7/csharp/libraries/generichost/modelEnum.mustache diff --git a/templates-v7/csharp/libraries/generichost/ClientUtils.mustache b/templates-v7/csharp/libraries/generichost/ClientUtils.mustache index f1931cac0..25aad0068 100644 --- a/templates-v7/csharp/libraries/generichost/ClientUtils.mustache +++ b/templates-v7/csharp/libraries/generichost/ClientUtils.mustache @@ -143,7 +143,7 @@ namespace {{packageName}}.{{apiName}}.{{clientPackage}} {{#isEnum}} if (obj is Models.{{classname}} {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}) {{! below has #isNumeric as a work around but should probably have ^isString instead https://github.com/OpenAPITools/openapi-generator/issues/15038}} - return {{classname}}ValueConverter{{#isInnerEnum}}{{classname}}.{{/isInnerEnum}}{{{datatypeWithEnum}}}.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}){{#isNumeric}}.ToString(){{/isNumeric}}; + return {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}){{#isNumeric}}.ToString(){{/isNumeric}}; {{/isEnum}} {{^isEnum}} {{#vars}} diff --git a/templates-v7/csharp/libraries/generichost/HostConfiguration.mustache b/templates-v7/csharp/libraries/generichost/HostConfiguration.mustache index 7e732612a..305d5a10a 100644 --- a/templates-v7/csharp/libraries/generichost/HostConfiguration.mustache +++ b/templates-v7/csharp/libraries/generichost/HostConfiguration.mustache @@ -58,8 +58,7 @@ namespace {{packageName}}.{{apiName}}.{{clientPackage}} {{#models}} {{#model}} {{#isEnum}} - _jsonOptions.Converters.Add(new {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}JsonConverter()); - _jsonOptions.Converters.Add(new {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}NullableJsonConverter()); + _jsonOptions.Converters.Add(new {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.{{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}JsonConverter()); {{/isEnum}} {{^isEnum}} _jsonOptions.Converters.Add(new {{classname}}JsonConverter()); diff --git a/templates-v7/csharp/libraries/generichost/JsonConverter.mustache b/templates-v7/csharp/libraries/generichost/JsonConverter.mustache index b8149c028..18df2158f 100644 --- a/templates-v7/csharp/libraries/generichost/JsonConverter.mustache +++ b/templates-v7/csharp/libraries/generichost/JsonConverter.mustache @@ -232,11 +232,10 @@ {{^isNumeric}} string{{nrt?}} {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue = utf8JsonReader.GetString(); {{^isInnerEnum}} - if ({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue != null) - {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = {{>OptionProperty}}{{{datatypeWithEnum}}}ValueConverter.FromStringOrDefault({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue)); + {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = {{>OptionProperty}}{{{datatypeWithEnum}}}.FromStringOrDefault({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue) ?? ({{{datatypeWithEnum}}}){{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue); {{/isInnerEnum}} {{#isInnerEnum}} - {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = {{>OptionProperty}}{{classname}}.{{{datatypeWithEnum}}}.FromStringOrDefault({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue)); + {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = {{>OptionProperty}}{{classname}}.{{{datatypeWithEnum}}}.FromStringOrDefault({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue) ?? ({{classname}}.{{{datatypeWithEnum}}}){{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue); {{/isInnerEnum}} {{/isNumeric}} {{/isMap}} @@ -304,7 +303,7 @@ {{#allVars}} {{^isDiscriminator}} {{#required}} - {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.Value{{nrt!}}{{^isNullable}}{{#vendorExtensions.x-is-value-type}}.Value{{/vendorExtensions.x-is-value-type}}{{/isNullable}}; + {{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} = {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.Value{{nrt!}}{{^isNullable}}{{^isEnum}}{{#vendorExtensions.x-is-value-type}}.Value{{/vendorExtensions.x-is-value-type}}{{/isEnum}}{{/isNullable}}; {{/required}} {{^required}} if ({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.IsSet) @@ -318,7 +317,7 @@ {{#composedSchemas}} {{#oneOf}} {{^vendorExtensions.x-duplicated-data-type}} - if ({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}?.Type != null) + if ({{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}?.Type != null && {{name}}.TypeEnum.FromStringOrDefault((string?){{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}.Type) != null) return new {{classname}}({{#lambda.joinWithComma}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{#vendorExtensions.x-is-value-type}}.Value{{/vendorExtensions.x-is-value-type}} {{#model.composedSchemas.anyOf}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{#vendorExtensions.x-is-value-type}}{{^isNullable}}.Value{{/isNullable}}{{/vendorExtensions.x-is-value-type}} {{/model.composedSchemas.anyOf}}{{#allVars}}{{^isDiscriminator}}{{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}{{#required}}ParsedValue{{/required}} {{/isDiscriminator}}{{/allVars}}{{/lambda.joinWithComma}}); {{/vendorExtensions.x-duplicated-data-type}} @@ -450,7 +449,7 @@ {{^model.composedSchemas.anyOf}} {{^model.composedSchemas.oneOf}} if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}} != null) - writer.WriteString("{{baseName}}", {{^isEnum}}{{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}{{/isEnum}}{{#isEnum}}{{#isInnerEnum}}{{classname}}.{{{datatypeWithEnum}}}.ToJsonValue{{/isInnerEnum}}{{^isInnerEnum}}{{{datatypeWithEnum}}}ValueConverter.ToJsonValue{{/isInnerEnum}}({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}{{^required}}{{/required}}){{/isEnum}}); + writer.WriteString("{{baseName}}", {{^isEnum}}{{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}{{/isEnum}}{{#isEnum}}{{#isInnerEnum}}{{classname}}.{{{datatypeWithEnum}}}.ToJsonValue{{/isInnerEnum}}{{^isInnerEnum}}{{{datatypeWithEnum}}}.ToJsonValue{{/isInnerEnum}}({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}{{^required}}{{/required}}){{/isEnum}}); {{/model.composedSchemas.oneOf}} {{/model.composedSchemas.anyOf}} @@ -555,7 +554,7 @@ writer.WriteNull("{{baseName}}"); else { - var {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue = {{{datatypeWithEnum}}}ValueConverter.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}.Value); + var {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue = {{{datatypeWithEnum}}}.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}); {{#allowableValues}} {{#enumVars}} {{#-first}} @@ -574,7 +573,7 @@ } {{/isNullable}} {{^isNullable}} - var {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue = {{{datatypeWithEnum}}}ValueConverter.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}); + var {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}RawValue = {{{datatypeWithEnum}}}.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}); {{#allowableValues}} {{#enumVars}} {{#-first}} @@ -595,7 +594,7 @@ {{#isNullable}} if ({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}._{{name}}Option{{nrt!}}.Value != null) { - var {{#lambda.paste}}{{/lambda.paste}}RawValue = {{{datatypeWithEnum}}}ValueConverter.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}._{{name}}Option.Value{{nrt!}}.Value); + var {{#lambda.paste}}{{/lambda.paste}}RawValue = {{{datatypeWithEnum}}}.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}._{{name}}Option.Value); writer.{{#lambda.first}}{{#allowableValues}}{{#enumVars}}{{^isNumeric}}WriteString {{/isNumeric}}{{#isNumeric}}WriteNumber {{/isNumeric}}{{/enumVars}}{{/allowableValues}}{{/lambda.first}}("{{baseName}}", {{#lambda.paste}}{{/lambda.paste}}RawValue); } else @@ -603,7 +602,7 @@ {{/isNullable}} {{^isNullable}} { - var {{#lambda.paste}}{{/lambda.paste}}RawValue = {{{datatypeWithEnum}}}ValueConverter.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}{{nrt!}}.Value); + var {{#lambda.paste}}{{/lambda.paste}}RawValue = {{{datatypeWithEnum}}}.ToJsonValue({{#lambda.camelcase_sanitize_param}}{{classname}}{{/lambda.camelcase_sanitize_param}}.{{name}}); writer.{{#lambda.first}}{{#allowableValues}}{{#enumVars}}{{^isNumeric}}WriteString {{/isNumeric}}{{#isNumeric}}WriteNumber {{/isNumeric}}{{/enumVars}}{{/allowableValues}}{{/lambda.first}}("{{baseName}}", {{#lambda.paste}}{{/lambda.paste}}RawValue); } {{/isNullable}} diff --git a/templates-v7/csharp/libraries/generichost/modelEnum.mustache b/templates-v7/csharp/libraries/generichost/modelEnum.mustache new file mode 100644 index 000000000..798ba8fbf --- /dev/null +++ b/templates-v7/csharp/libraries/generichost/modelEnum.mustache @@ -0,0 +1,125 @@ + /// + /// {{{description}}}{{^description}}Defines {{{classname}}}{{/description}} + /// + {{#description}} + /// {{.}} + {{/description}} + {{#isString}} + [JsonConverter(typeof({{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.{{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}JsonConverter))] + {{/isString}} + {{>visibility}} class {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} : IEnum + { + /// + /// Returns the value of the {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}. + /// + public string? Value { get; set; } + + {{#allowableValues}} + {{#enumVars}} + /// + /// {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.{{name}} - {{{value}}} + /// + public static readonly {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} {{name}} = new("{{{value}}}"); + {{^-last}} + + {{/-last}} + {{/enumVars}} + {{/allowableValues}} + + private {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}(string? value) + { + Value = value; + } + + /// + /// Converts a string to a implicitly. + /// + public static implicit operator {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}?(string? value) => value == null ? null : new {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}(value); + + /// + /// Converts a instance to a string implicitly. + /// + public static implicit operator string?({{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? option) => option?.Value; + + /// + /// Compares two instances for equality. + /// + public static bool operator ==({{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? left, {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); + + /// + /// Compares two instances for inequality. + /// + public static bool operator !=({{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? left, {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); + + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); + + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; + + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; + + /// + /// Returns a , or null if the value is not recognized. + /// + public static {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? FromStringOrDefault(string? value) + { + return value switch { + {{#allowableValues}}{{#enumVars}}{{#isString}}"{{{value}}}"{{/isString}} => {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.{{name}}, + {{/enumVars}}{{/allowableValues}}_ => null, + }; + } + + /// + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. + /// + public static string? ToJsonValue({{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? value) + { + if (value == null) + return null; + + {{#allowableValues}} + {{#enumVars}} + if (value == {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.{{name}}) + return {{#isString}}"{{{value}}}"{{/isString}}; + + {{/enumVars}} + {{/allowableValues}} + return value.Value; + } + + {{#isString}} + /// + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. + /// + public class {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}JsonConverter : JsonConverter<{{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}> + { + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.FromStringOrDefault(rawValue) ?? new {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, {{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} value, JsonSerializerOptions options) + { + writer.WriteStringValue({{datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}.ToJsonValue(value)); + } + } + {{/isString}} + } diff --git a/templates-v7/csharp/libraries/generichost/modelGeneric.mustache b/templates-v7/csharp/libraries/generichost/modelGeneric.mustache index 52fec0e4f..ca979ca5e 100644 --- a/templates-v7/csharp/libraries/generichost/modelGeneric.mustache +++ b/templates-v7/csharp/libraries/generichost/modelGeneric.mustache @@ -37,7 +37,7 @@ {{#vendorExtensions.x-is-base-or-new-discriminator}} {{^model.composedSchemas.anyOf}} {{^model.composedSchemas.oneOf}} - {{name}} = {{^isEnum}}this.GetType().Name{{/isEnum}}{{#isEnum}}({{datatypeWithEnum}})Enum.Parse(typeof({{datatypeWithEnum}}), this.GetType().Name){{/isEnum}}; + {{name}} = {{^isEnum}}this.GetType().Name{{/isEnum}}{{#isEnum}}({{{datatypeWithEnum}}})this.GetType().Name{{/isEnum}}; {{/model.composedSchemas.oneOf}} {{/model.composedSchemas.anyOf}} {{/vendorExtensions.x-is-base-or-new-discriminator}} @@ -57,7 +57,7 @@ {{#vendorExtensions.x-is-base-or-new-discriminator}} {{^model.composedSchemas.anyOf}} {{^model.composedSchemas.oneOf}} - {{name}} = {{^isEnum}}this.GetType().Name{{/isEnum}}{{#isEnum}}({{datatypeWithEnum}})Enum.Parse(typeof({{datatypeWithEnum}}), this.GetType().Name){{/isEnum}}; + {{name}} = {{^isEnum}}this.GetType().Name{{/isEnum}}{{#isEnum}}({{{datatypeWithEnum}}})this.GetType().Name{{/isEnum}}; {{/model.composedSchemas.oneOf}} {{/model.composedSchemas.anyOf}} {{/vendorExtensions.x-is-base-or-new-discriminator}} diff --git a/templates-v7/csharp/libraries/generichost/modelInnerEnum.mustache b/templates-v7/csharp/libraries/generichost/modelInnerEnum.mustache index a7aee7af2..d0ce3768c 100644 --- a/templates-v7/csharp/libraries/generichost/modelInnerEnum.mustache +++ b/templates-v7/csharp/libraries/generichost/modelInnerEnum.mustache @@ -104,7 +104,7 @@ {{/enumVars}} {{/allowableValues}} - return null; + return value.Value; } /// From 84e628305363c947a59720502b1166b9a95d22ff Mon Sep 17 00:00:00 2001 From: beppe Date: Tue, 12 May 2026 12:48:25 +0200 Subject: [PATCH 2/4] Generate Checkout --- Adyen/Checkout/Client/ClientUtils.cs | 2 +- Adyen/Checkout/Client/HostConfiguration.cs | 3 +- Adyen/Checkout/Models/AccountInfo.cs | 24 +-- Adyen/Checkout/Models/AcctInfo.cs | 28 +-- Adyen/Checkout/Models/AchDetails.cs | 12 +- .../Checkout/Models/AdditionalData3DSecure.cs | 4 +- Adyen/Checkout/Models/AdditionalDataCommon.cs | 4 +- Adyen/Checkout/Models/AffirmDetails.cs | 4 +- Adyen/Checkout/Models/AfterpayDetails.cs | 6 +- Adyen/Checkout/Models/AlmaDetails.cs | 8 +- Adyen/Checkout/Models/AmazonPayDetails.cs | 4 +- Adyen/Checkout/Models/AncvDetails.cs | 4 +- Adyen/Checkout/Models/AndroidPayDetails.cs | 4 +- Adyen/Checkout/Models/ApplePayDetails.cs | 8 +- Adyen/Checkout/Models/ApplePayDonations.cs | 8 +- Adyen/Checkout/Models/AuthenticationData.cs | 4 +- .../Checkout/Models/BacsDirectDebitDetails.cs | 4 +- Adyen/Checkout/Models/BalanceCheckRequest.cs | 8 +- Adyen/Checkout/Models/BalanceCheckResponse.cs | 6 +- Adyen/Checkout/Models/BillDeskDetails.cs | 6 +- Adyen/Checkout/Models/BlikDetails.cs | 4 +- Adyen/Checkout/Models/CancelOrderResponse.cs | 6 +- Adyen/Checkout/Models/CardDetails.cs | 8 +- Adyen/Checkout/Models/CardDonations.cs | 8 +- Adyen/Checkout/Models/CashAppDetails.cs | 4 +- Adyen/Checkout/Models/CellulantDetails.cs | 4 +- Adyen/Checkout/Models/CheckoutAwaitAction.cs | 6 +- Adyen/Checkout/Models/CheckoutBankAccount.cs | 4 +- .../Models/CheckoutBankTransferAction.cs | 6 +- .../CheckoutDelegatedAuthenticationAction.cs | 6 +- .../Models/CheckoutForwardRequestCard.cs | 4 +- .../Models/CheckoutNativeRedirectAction.cs | 6 +- .../Models/CheckoutOutgoingForwardRequest.cs | 6 +- .../Checkout/Models/CheckoutPaymentMethod.cs | 116 +++++----- Adyen/Checkout/Models/CheckoutQrCodeAction.cs | 6 +- .../Checkout/Models/CheckoutRedirectAction.cs | 6 +- Adyen/Checkout/Models/CheckoutSDKAction.cs | 6 +- .../CheckoutSessionInstallmentOption.cs | 2 +- .../CheckoutSessionThreeDS2RequestData.cs | 4 +- .../Checkout/Models/CheckoutThreeDS2Action.cs | 6 +- .../Checkout/Models/CheckoutVoucherAction.cs | 6 +- .../Models/CreateCheckoutSessionRequest.cs | 24 +-- .../Models/CreateCheckoutSessionResponse.cs | 24 +-- Adyen/Checkout/Models/CreateOrderResponse.cs | 6 +- Adyen/Checkout/Models/DeliveryMethod.cs | 4 +- Adyen/Checkout/Models/DeviceRenderOptions.cs | 6 +- Adyen/Checkout/Models/DirectDebitAuDetails.cs | 4 +- Adyen/Checkout/Models/DokuDetails.cs | 6 +- .../Checkout/Models/DonationPaymentMethod.cs | 10 +- .../Checkout/Models/DonationPaymentRequest.cs | 12 +- .../Models/DonationPaymentResponse.cs | 4 +- Adyen/Checkout/Models/DragonpayDetails.cs | 6 +- .../Checkout/Models/EBankingFinlandDetails.cs | 6 +- .../Checkout/Models/EcontextVoucherDetails.cs | 6 +- Adyen/Checkout/Models/EftDetails.cs | 4 +- Adyen/Checkout/Models/ExternalTokenDetails.cs | 12 +- Adyen/Checkout/Models/FastlaneDetails.cs | 6 +- Adyen/Checkout/Models/FundRecipient.cs | 4 +- .../GenericIssuerPaymentMethodDetails.cs | 6 +- Adyen/Checkout/Models/GooglePayDetails.cs | 8 +- Adyen/Checkout/Models/GooglePayDonations.cs | 8 +- Adyen/Checkout/Models/IdealDetails.cs | 4 +- Adyen/Checkout/Models/IdealDonations.cs | 4 +- Adyen/Checkout/Models/InstallmentOption.cs | 2 +- Adyen/Checkout/Models/Installments.cs | 4 +- Adyen/Checkout/Models/KlarnaDetails.cs | 6 +- Adyen/Checkout/Models/KlarnaNetworkDetails.cs | 6 +- Adyen/Checkout/Models/Mandate.cs | 14 +- Adyen/Checkout/Models/MasterpassDetails.cs | 8 +- Adyen/Checkout/Models/MbwayDetails.cs | 4 +- .../Checkout/Models/MerchantRiskIndicator.cs | 8 +- Adyen/Checkout/Models/MobilePayDetails.cs | 4 +- Adyen/Checkout/Models/MolPayDetails.cs | 6 +- Adyen/Checkout/Models/OpenInvoiceDetails.cs | 4 +- .../Models/PayByBankAISDirectDebitDetails.cs | 6 +- Adyen/Checkout/Models/PayByBankDetails.cs | 6 +- Adyen/Checkout/Models/PayPalDetails.cs | 10 +- Adyen/Checkout/Models/PayPayDetails.cs | 4 +- Adyen/Checkout/Models/PayToDetails.cs | 4 +- Adyen/Checkout/Models/PayUUpiDetails.cs | 6 +- Adyen/Checkout/Models/PayWithGoogleDetails.cs | 8 +- .../Checkout/Models/PayWithGoogleDonations.cs | 8 +- Adyen/Checkout/Models/Payment.cs | 4 +- .../Models/PaymentAmountUpdateRequest.cs | 4 +- .../Models/PaymentAmountUpdateResponse.cs | 10 +- .../Checkout/Models/PaymentCancelResponse.cs | 6 +- .../Checkout/Models/PaymentCaptureResponse.cs | 6 +- Adyen/Checkout/Models/PaymentDetails.cs | 4 +- .../Checkout/Models/PaymentDetailsResponse.cs | 4 +- Adyen/Checkout/Models/PaymentLinkRequest.cs | 10 +- Adyen/Checkout/Models/PaymentLinkResponse.cs | 16 +- Adyen/Checkout/Models/PaymentMethod.cs | 4 +- .../Checkout/Models/PaymentMethodsRequest.cs | 8 +- Adyen/Checkout/Models/PaymentRefundRequest.cs | 4 +- .../Checkout/Models/PaymentRefundResponse.cs | 10 +- Adyen/Checkout/Models/PaymentRequest.cs | 20 +- Adyen/Checkout/Models/PaymentResponse.cs | 4 +- .../Checkout/Models/PaymentResponseAction.cs | 18 +- .../Models/PaymentReversalResponse.cs | 6 +- .../Models/PaymentValidationsNameResponse.cs | 4 +- .../Models/PaypalUpdateOrderResponse.cs | 6 +- Adyen/Checkout/Models/PixDetails.cs | 4 +- Adyen/Checkout/Models/PixPayByBankDetails.cs | 4 +- Adyen/Checkout/Models/PixRecurring.cs | 4 +- .../Models/PlatformChargebackLogic.cs | 4 +- Adyen/Checkout/Models/PseDetails.cs | 4 +- Adyen/Checkout/Models/RakutenPayDetails.cs | 4 +- Adyen/Checkout/Models/RatepayDetails.cs | 6 +- Adyen/Checkout/Models/Recurring.cs | 8 +- .../Models/ResponseAdditionalDataCommon.cs | 16 +- Adyen/Checkout/Models/Result.cs | 203 +++++++----------- Adyen/Checkout/Models/RivertyDetails.cs | 6 +- Adyen/Checkout/Models/SamsungPayDetails.cs | 8 +- .../Checkout/Models/SepaDirectDebitDetails.cs | 4 +- .../Checkout/Models/SessionResultResponse.cs | 4 +- Adyen/Checkout/Models/Split.cs | 6 +- .../Models/StandalonePaymentCancelResponse.cs | 6 +- .../Models/StoredPaymentMethodDetails.cs | 4 +- .../Models/StoredPaymentMethodRequest.cs | 6 +- Adyen/Checkout/Models/ThreeDS2RequestData.cs | 24 +-- .../Checkout/Models/ThreeDS2RequestFields.cs | 24 +-- Adyen/Checkout/Models/ThreeDS2Result.cs | 12 +- Adyen/Checkout/Models/ThreeDSRequestData.cs | 16 +- .../ThreeDSRequestorAuthenticationInfo.cs | 4 +- ...ThreeDSRequestorPriorAuthenticationInfo.cs | 4 +- Adyen/Checkout/Models/ThreeDSecureData.cs | 12 +- Adyen/Checkout/Models/TokenMandate.cs | 18 +- Adyen/Checkout/Models/TwintDetails.cs | 4 +- .../Models/UpdatePaymentLinkRequest.cs | 6 +- Adyen/Checkout/Models/UpiCollectDetails.cs | 6 +- Adyen/Checkout/Models/UpiIntentDetails.cs | 6 +- Adyen/Checkout/Models/UpiQrDetails.cs | 6 +- .../Models/ValidateShopperIdResponse.cs | 5 +- Adyen/Checkout/Models/VippsDetails.cs | 4 +- Adyen/Checkout/Models/VisaCheckoutDetails.cs | 8 +- Adyen/Checkout/Models/WeChatPayDetails.cs | 4 +- .../Models/WeChatPayMiniProgramDetails.cs | 4 +- Adyen/Checkout/Models/ZipDetails.cs | 4 +- 138 files changed, 622 insertions(+), 665 deletions(-) diff --git a/Adyen/Checkout/Client/ClientUtils.cs b/Adyen/Checkout/Client/ClientUtils.cs index 184e3dfd2..6ad54f5a7 100644 --- a/Adyen/Checkout/Client/ClientUtils.cs +++ b/Adyen/Checkout/Client/ClientUtils.cs @@ -449,7 +449,7 @@ public static bool TryDeserialize(ref Utf8JsonReader reader, JsonSerializerOp if (obj is Models.ResponseAdditionalDataCommon.TokenizationStoreOperationTypeEnum responseAdditionalDataCommonTokenizationStoreOperationTypeEnum) return Models.ResponseAdditionalDataCommon.TokenizationStoreOperationTypeEnum.ToJsonValue(responseAdditionalDataCommonTokenizationStoreOperationTypeEnum); if (obj is Models.Result result) - return ResultValueConverter.ToJsonValue(result); + return Result.ToJsonValue(result); if (obj is Models.RivertyDetails.TypeEnum rivertyDetailsTypeEnum) return Models.RivertyDetails.TypeEnum.ToJsonValue(rivertyDetailsTypeEnum); if (obj is Models.SamsungPayDetails.FundingSourceEnum samsungPayDetailsFundingSourceEnum) diff --git a/Adyen/Checkout/Client/HostConfiguration.cs b/Adyen/Checkout/Client/HostConfiguration.cs index 2930f6290..36c5641cb 100644 --- a/Adyen/Checkout/Client/HostConfiguration.cs +++ b/Adyen/Checkout/Client/HostConfiguration.cs @@ -259,8 +259,7 @@ public HostConfiguration(IServiceCollection services) _jsonOptions.Converters.Add(new ResponseAdditionalDataSepaJsonConverter()); _jsonOptions.Converters.Add(new ResponseAdditionalDataSwishJsonConverter()); _jsonOptions.Converters.Add(new ResponsePaymentMethodJsonConverter()); - _jsonOptions.Converters.Add(new ResultJsonConverter()); - _jsonOptions.Converters.Add(new ResultNullableJsonConverter()); + _jsonOptions.Converters.Add(new Result.ResultJsonConverter()); _jsonOptions.Converters.Add(new RiskDataJsonConverter()); _jsonOptions.Converters.Add(new RivertyDetailsJsonConverter()); _jsonOptions.Converters.Add(new SDKEphemPubKeyJsonConverter()); diff --git a/Adyen/Checkout/Models/AccountInfo.cs b/Adyen/Checkout/Models/AccountInfo.cs index 1c96b25d6..440192bb1 100644 --- a/Adyen/Checkout/Models/AccountInfo.cs +++ b/Adyen/Checkout/Models/AccountInfo.cs @@ -167,7 +167,7 @@ private AccountAgeIndicatorEnum(string? value) if (value == AccountAgeIndicatorEnum.MoreThan60Days) return "moreThan60Days"; - return null; + return value.Value; } /// @@ -322,7 +322,7 @@ private AccountChangeIndicatorEnum(string? value) if (value == AccountChangeIndicatorEnum.MoreThan60Days) return "moreThan60Days"; - return null; + return value.Value; } /// @@ -468,7 +468,7 @@ private AccountTypeEnum(string? value) if (value == AccountTypeEnum.Debit) return "debit"; - return null; + return value.Value; } /// @@ -623,7 +623,7 @@ private DeliveryAddressUsageIndicatorEnum(string? value) if (value == DeliveryAddressUsageIndicatorEnum.MoreThan60Days) return "moreThan60Days"; - return null; + return value.Value; } /// @@ -787,7 +787,7 @@ private PasswordChangeIndicatorEnum(string? value) if (value == PasswordChangeIndicatorEnum.MoreThan60Days) return "moreThan60Days"; - return null; + return value.Value; } /// @@ -951,7 +951,7 @@ private PaymentAccountIndicatorEnum(string? value) if (value == PaymentAccountIndicatorEnum.MoreThan60Days) return "moreThan60Days"; - return null; + return value.Value; } /// @@ -1296,21 +1296,21 @@ public override AccountInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToC { case "accountAgeIndicator": string? accountAgeIndicatorRawValue = utf8JsonReader.GetString(); - accountAgeIndicator = new Option(AccountInfo.AccountAgeIndicatorEnum.FromStringOrDefault(accountAgeIndicatorRawValue)); + accountAgeIndicator = new Option(AccountInfo.AccountAgeIndicatorEnum.FromStringOrDefault(accountAgeIndicatorRawValue) ?? (AccountInfo.AccountAgeIndicatorEnum)accountAgeIndicatorRawValue); break; case "accountChangeDate": accountChangeDate = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)); break; case "accountChangeIndicator": string? accountChangeIndicatorRawValue = utf8JsonReader.GetString(); - accountChangeIndicator = new Option(AccountInfo.AccountChangeIndicatorEnum.FromStringOrDefault(accountChangeIndicatorRawValue)); + accountChangeIndicator = new Option(AccountInfo.AccountChangeIndicatorEnum.FromStringOrDefault(accountChangeIndicatorRawValue) ?? (AccountInfo.AccountChangeIndicatorEnum)accountChangeIndicatorRawValue); break; case "accountCreationDate": accountCreationDate = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)); break; case "accountType": string? accountTypeRawValue = utf8JsonReader.GetString(); - accountType = new Option(AccountInfo.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue)); + accountType = new Option(AccountInfo.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue) ?? (AccountInfo.AccountTypeEnum)accountTypeRawValue); break; case "addCardAttemptsDay": addCardAttemptsDay = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); @@ -1320,7 +1320,7 @@ public override AccountInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "deliveryAddressUsageIndicator": string? deliveryAddressUsageIndicatorRawValue = utf8JsonReader.GetString(); - deliveryAddressUsageIndicator = new Option(AccountInfo.DeliveryAddressUsageIndicatorEnum.FromStringOrDefault(deliveryAddressUsageIndicatorRawValue)); + deliveryAddressUsageIndicator = new Option(AccountInfo.DeliveryAddressUsageIndicatorEnum.FromStringOrDefault(deliveryAddressUsageIndicatorRawValue) ?? (AccountInfo.DeliveryAddressUsageIndicatorEnum)deliveryAddressUsageIndicatorRawValue); break; case "homePhone": homePhone = new Option(utf8JsonReader.GetString()!); @@ -1333,7 +1333,7 @@ public override AccountInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "passwordChangeIndicator": string? passwordChangeIndicatorRawValue = utf8JsonReader.GetString(); - passwordChangeIndicator = new Option(AccountInfo.PasswordChangeIndicatorEnum.FromStringOrDefault(passwordChangeIndicatorRawValue)); + passwordChangeIndicator = new Option(AccountInfo.PasswordChangeIndicatorEnum.FromStringOrDefault(passwordChangeIndicatorRawValue) ?? (AccountInfo.PasswordChangeIndicatorEnum)passwordChangeIndicatorRawValue); break; case "pastTransactionsDay": pastTransactionsDay = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); @@ -1346,7 +1346,7 @@ public override AccountInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "paymentAccountIndicator": string? paymentAccountIndicatorRawValue = utf8JsonReader.GetString(); - paymentAccountIndicator = new Option(AccountInfo.PaymentAccountIndicatorEnum.FromStringOrDefault(paymentAccountIndicatorRawValue)); + paymentAccountIndicator = new Option(AccountInfo.PaymentAccountIndicatorEnum.FromStringOrDefault(paymentAccountIndicatorRawValue) ?? (AccountInfo.PaymentAccountIndicatorEnum)paymentAccountIndicatorRawValue); break; case "purchasesLast6Months": purchasesLast6Months = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); diff --git a/Adyen/Checkout/Models/AcctInfo.cs b/Adyen/Checkout/Models/AcctInfo.cs index 1a17c4fb6..9ebcd7b0b 100644 --- a/Adyen/Checkout/Models/AcctInfo.cs +++ b/Adyen/Checkout/Models/AcctInfo.cs @@ -167,7 +167,7 @@ private ChAccAgeIndEnum(string? value) if (value == ChAccAgeIndEnum._05) return "05"; - return null; + return value.Value; } /// @@ -322,7 +322,7 @@ private ChAccChangeIndEnum(string? value) if (value == ChAccChangeIndEnum._04) return "04"; - return null; + return value.Value; } /// @@ -486,7 +486,7 @@ private ChAccPwChangeIndEnum(string? value) if (value == ChAccPwChangeIndEnum._05) return "05"; - return null; + return value.Value; } /// @@ -650,7 +650,7 @@ private PaymentAccIndEnum(string? value) if (value == PaymentAccIndEnum._05) return "05"; - return null; + return value.Value; } /// @@ -805,7 +805,7 @@ private ShipAddressUsageIndEnum(string? value) if (value == ShipAddressUsageIndEnum._04) return "04"; - return null; + return value.Value; } /// @@ -942,7 +942,7 @@ private ShipNameIndicatorEnum(string? value) if (value == ShipNameIndicatorEnum._02) return "02"; - return null; + return value.Value; } /// @@ -1079,7 +1079,7 @@ private SuspiciousAccActivityEnum(string? value) if (value == SuspiciousAccActivityEnum._02) return "02"; - return null; + return value.Value; } /// @@ -1331,21 +1331,21 @@ public override AcctInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv { case "chAccAgeInd": string? chAccAgeIndRawValue = utf8JsonReader.GetString(); - chAccAgeInd = new Option(AcctInfo.ChAccAgeIndEnum.FromStringOrDefault(chAccAgeIndRawValue)); + chAccAgeInd = new Option(AcctInfo.ChAccAgeIndEnum.FromStringOrDefault(chAccAgeIndRawValue) ?? (AcctInfo.ChAccAgeIndEnum)chAccAgeIndRawValue); break; case "chAccChange": chAccChange = new Option(utf8JsonReader.GetString()!); break; case "chAccChangeInd": string? chAccChangeIndRawValue = utf8JsonReader.GetString(); - chAccChangeInd = new Option(AcctInfo.ChAccChangeIndEnum.FromStringOrDefault(chAccChangeIndRawValue)); + chAccChangeInd = new Option(AcctInfo.ChAccChangeIndEnum.FromStringOrDefault(chAccChangeIndRawValue) ?? (AcctInfo.ChAccChangeIndEnum)chAccChangeIndRawValue); break; case "chAccPwChange": chAccPwChange = new Option(utf8JsonReader.GetString()!); break; case "chAccPwChangeInd": string? chAccPwChangeIndRawValue = utf8JsonReader.GetString(); - chAccPwChangeInd = new Option(AcctInfo.ChAccPwChangeIndEnum.FromStringOrDefault(chAccPwChangeIndRawValue)); + chAccPwChangeInd = new Option(AcctInfo.ChAccPwChangeIndEnum.FromStringOrDefault(chAccPwChangeIndRawValue) ?? (AcctInfo.ChAccPwChangeIndEnum)chAccPwChangeIndRawValue); break; case "chAccString": chAccString = new Option(utf8JsonReader.GetString()!); @@ -1358,7 +1358,7 @@ public override AcctInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv break; case "paymentAccInd": string? paymentAccIndRawValue = utf8JsonReader.GetString(); - paymentAccInd = new Option(AcctInfo.PaymentAccIndEnum.FromStringOrDefault(paymentAccIndRawValue)); + paymentAccInd = new Option(AcctInfo.PaymentAccIndEnum.FromStringOrDefault(paymentAccIndRawValue) ?? (AcctInfo.PaymentAccIndEnum)paymentAccIndRawValue); break; case "provisionAttemptsDay": provisionAttemptsDay = new Option(utf8JsonReader.GetString()!); @@ -1368,15 +1368,15 @@ public override AcctInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv break; case "shipAddressUsageInd": string? shipAddressUsageIndRawValue = utf8JsonReader.GetString(); - shipAddressUsageInd = new Option(AcctInfo.ShipAddressUsageIndEnum.FromStringOrDefault(shipAddressUsageIndRawValue)); + shipAddressUsageInd = new Option(AcctInfo.ShipAddressUsageIndEnum.FromStringOrDefault(shipAddressUsageIndRawValue) ?? (AcctInfo.ShipAddressUsageIndEnum)shipAddressUsageIndRawValue); break; case "shipNameIndicator": string? shipNameIndicatorRawValue = utf8JsonReader.GetString(); - shipNameIndicator = new Option(AcctInfo.ShipNameIndicatorEnum.FromStringOrDefault(shipNameIndicatorRawValue)); + shipNameIndicator = new Option(AcctInfo.ShipNameIndicatorEnum.FromStringOrDefault(shipNameIndicatorRawValue) ?? (AcctInfo.ShipNameIndicatorEnum)shipNameIndicatorRawValue); break; case "suspiciousAccActivity": string? suspiciousAccActivityRawValue = utf8JsonReader.GetString(); - suspiciousAccActivity = new Option(AcctInfo.SuspiciousAccActivityEnum.FromStringOrDefault(suspiciousAccActivityRawValue)); + suspiciousAccActivity = new Option(AcctInfo.SuspiciousAccActivityEnum.FromStringOrDefault(suspiciousAccActivityRawValue) ?? (AcctInfo.SuspiciousAccActivityEnum)suspiciousAccActivityRawValue); break; case "txnActivityDay": txnActivityDay = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/AchDetails.cs b/Adyen/Checkout/Models/AchDetails.cs index b78eec57d..015c675c2 100644 --- a/Adyen/Checkout/Models/AchDetails.cs +++ b/Adyen/Checkout/Models/AchDetails.cs @@ -141,7 +141,7 @@ private AccountHolderTypeEnum(string? value) if (value == AccountHolderTypeEnum.Personal) return "personal"; - return null; + return value.Value; } /// @@ -323,7 +323,7 @@ private BankAccountTypeEnum(string? value) if (value == BankAccountTypeEnum.Savings) return "savings"; - return null; + return value.Value; } /// @@ -460,7 +460,7 @@ private TypeEnum(string? value) if (value == TypeEnum.AchPlaid) return "ach_plaid"; - return null; + return value.Value; } /// @@ -722,14 +722,14 @@ public override AchDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToCo { case "accountHolderType": string? accountHolderTypeRawValue = utf8JsonReader.GetString(); - accountHolderType = new Option(AchDetails.AccountHolderTypeEnum.FromStringOrDefault(accountHolderTypeRawValue)); + accountHolderType = new Option(AchDetails.AccountHolderTypeEnum.FromStringOrDefault(accountHolderTypeRawValue) ?? (AchDetails.AccountHolderTypeEnum)accountHolderTypeRawValue); break; case "bankAccountNumber": bankAccountNumber = new Option(utf8JsonReader.GetString()!); break; case "bankAccountType": string? bankAccountTypeRawValue = utf8JsonReader.GetString(); - bankAccountType = new Option(AchDetails.BankAccountTypeEnum.FromStringOrDefault(bankAccountTypeRawValue)); + bankAccountType = new Option(AchDetails.BankAccountTypeEnum.FromStringOrDefault(bankAccountTypeRawValue) ?? (AchDetails.BankAccountTypeEnum)bankAccountTypeRawValue); break; case "bankLocationId": bankLocationId = new Option(utf8JsonReader.GetString()!); @@ -760,7 +760,7 @@ public override AchDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToCo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AchDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AchDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AchDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/AdditionalData3DSecure.cs b/Adyen/Checkout/Models/AdditionalData3DSecure.cs index ebb5511e2..a522e7406 100644 --- a/Adyen/Checkout/Models/AdditionalData3DSecure.cs +++ b/Adyen/Checkout/Models/AdditionalData3DSecure.cs @@ -167,7 +167,7 @@ private ChallengeWindowSizeEnum(string? value) if (value == ChallengeWindowSizeEnum._05) return "05"; - return null; + return value.Value; } /// @@ -350,7 +350,7 @@ public override AdditionalData3DSecure Read(ref Utf8JsonReader utf8JsonReader, T break; case "challengeWindowSize": string? challengeWindowSizeRawValue = utf8JsonReader.GetString(); - challengeWindowSize = new Option(AdditionalData3DSecure.ChallengeWindowSizeEnum.FromStringOrDefault(challengeWindowSizeRawValue)); + challengeWindowSize = new Option(AdditionalData3DSecure.ChallengeWindowSizeEnum.FromStringOrDefault(challengeWindowSizeRawValue) ?? (AdditionalData3DSecure.ChallengeWindowSizeEnum)challengeWindowSizeRawValue); break; case "executeThreeD": executeThreeD = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/AdditionalDataCommon.cs b/Adyen/Checkout/Models/AdditionalDataCommon.cs index 83ba1bc4c..bc0e0f35e 100644 --- a/Adyen/Checkout/Models/AdditionalDataCommon.cs +++ b/Adyen/Checkout/Models/AdditionalDataCommon.cs @@ -140,7 +140,7 @@ private IndustryUsageEnum(string? value) if (value == IndustryUsageEnum.DelayedCharge) return "DelayedCharge"; - return null; + return value.Value; } /// @@ -574,7 +574,7 @@ public override AdditionalDataCommon Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "industryUsage": string? industryUsageRawValue = utf8JsonReader.GetString(); - industryUsage = new Option(AdditionalDataCommon.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue)); + industryUsage = new Option(AdditionalDataCommon.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue) ?? (AdditionalDataCommon.IndustryUsageEnum)industryUsageRawValue); break; case "manualCapture": manualCapture = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/AffirmDetails.cs b/Adyen/Checkout/Models/AffirmDetails.cs index d49f9091c..c2bf5ed4d 100644 --- a/Adyen/Checkout/Models/AffirmDetails.cs +++ b/Adyen/Checkout/Models/AffirmDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Affirm) return "affirm"; - return null; + return value.Value; } /// @@ -266,7 +266,7 @@ public override AffirmDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AffirmDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AffirmDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AffirmDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/AfterpayDetails.cs b/Adyen/Checkout/Models/AfterpayDetails.cs index 4477009fe..f718b88a4 100644 --- a/Adyen/Checkout/Models/AfterpayDetails.cs +++ b/Adyen/Checkout/Models/AfterpayDetails.cs @@ -158,7 +158,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Clearpay) return "clearpay"; - return null; + return value.Value; } /// @@ -382,7 +382,7 @@ public override AfterpayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AfterpayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AfterpayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AfterpayDetails.TypeEnum)typeRawValue); break; default: break; @@ -408,7 +408,7 @@ public override AfterpayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ afterpayDetails.SdkData = sdkData.Value; if (storedPaymentMethodId.IsSet) afterpayDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - afterpayDetails.Type = type.Value!.Value; + afterpayDetails.Type = type.Value!; return afterpayDetails; } diff --git a/Adyen/Checkout/Models/AlmaDetails.cs b/Adyen/Checkout/Models/AlmaDetails.cs index 0228b764c..60c0d975e 100644 --- a/Adyen/Checkout/Models/AlmaDetails.cs +++ b/Adyen/Checkout/Models/AlmaDetails.cs @@ -140,7 +140,7 @@ private FeeTypeEnum(string? value) if (value == FeeTypeEnum.ShopperPays) return "shopperPays"; - return null; + return value.Value; } /// @@ -268,7 +268,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Alma) return "alma"; - return null; + return value.Value; } /// @@ -401,14 +401,14 @@ public override AlmaDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "feeType": string? feeTypeRawValue = utf8JsonReader.GetString(); - feeType = new Option(AlmaDetails.FeeTypeEnum.FromStringOrDefault(feeTypeRawValue)); + feeType = new Option(AlmaDetails.FeeTypeEnum.FromStringOrDefault(feeTypeRawValue) ?? (AlmaDetails.FeeTypeEnum)feeTypeRawValue); break; case "sdkData": sdkData = new Option(utf8JsonReader.GetString()!); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AlmaDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AlmaDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AlmaDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/AmazonPayDetails.cs b/Adyen/Checkout/Models/AmazonPayDetails.cs index b513e921d..fbefa92e9 100644 --- a/Adyen/Checkout/Models/AmazonPayDetails.cs +++ b/Adyen/Checkout/Models/AmazonPayDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Amazonpay) return "amazonpay"; - return null; + return value.Value; } /// @@ -304,7 +304,7 @@ public override AmazonPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AmazonPayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AmazonPayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AmazonPayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/AncvDetails.cs b/Adyen/Checkout/Models/AncvDetails.cs index 09372dcd1..3bf2a6cbb 100644 --- a/Adyen/Checkout/Models/AncvDetails.cs +++ b/Adyen/Checkout/Models/AncvDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Ancv) return "ancv"; - return null; + return value.Value; } /// @@ -324,7 +324,7 @@ public override AncvDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AncvDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AncvDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AncvDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/AndroidPayDetails.cs b/Adyen/Checkout/Models/AndroidPayDetails.cs index 15223c153..399ae59fb 100644 --- a/Adyen/Checkout/Models/AndroidPayDetails.cs +++ b/Adyen/Checkout/Models/AndroidPayDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Androidpay) return "androidpay"; - return null; + return value.Value; } /// @@ -266,7 +266,7 @@ public override AndroidPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AndroidPayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AndroidPayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AndroidPayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/ApplePayDetails.cs b/Adyen/Checkout/Models/ApplePayDetails.cs index c0f54cdc7..bce802a3e 100644 --- a/Adyen/Checkout/Models/ApplePayDetails.cs +++ b/Adyen/Checkout/Models/ApplePayDetails.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Applepay) return "applepay"; - return null; + return value.Value; } /// @@ -457,7 +457,7 @@ public override ApplePayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(ApplePayDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(ApplePayDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (ApplePayDetails.FundingSourceEnum)fundingSourceRawValue); break; case "recurringDetailReference": recurringDetailReference = new Option(utf8JsonReader.GetString()!); @@ -470,7 +470,7 @@ public override ApplePayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(ApplePayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(ApplePayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (ApplePayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/ApplePayDonations.cs b/Adyen/Checkout/Models/ApplePayDonations.cs index 4d60ba65b..854e7fd45 100644 --- a/Adyen/Checkout/Models/ApplePayDonations.cs +++ b/Adyen/Checkout/Models/ApplePayDonations.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Applepay) return "applepay"; - return null; + return value.Value; } /// @@ -457,7 +457,7 @@ public override ApplePayDonations Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(ApplePayDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(ApplePayDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (ApplePayDonations.FundingSourceEnum)fundingSourceRawValue); break; case "recurringDetailReference": recurringDetailReference = new Option(utf8JsonReader.GetString()!); @@ -470,7 +470,7 @@ public override ApplePayDonations Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(ApplePayDonations.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(ApplePayDonations.TypeEnum.FromStringOrDefault(typeRawValue) ?? (ApplePayDonations.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/AuthenticationData.cs b/Adyen/Checkout/Models/AuthenticationData.cs index 993161bf9..0e5525b35 100644 --- a/Adyen/Checkout/Models/AuthenticationData.cs +++ b/Adyen/Checkout/Models/AuthenticationData.cs @@ -140,7 +140,7 @@ private AttemptAuthenticationEnum(string? value) if (value == AttemptAuthenticationEnum.Never) return "never"; - return null; + return value.Value; } /// @@ -267,7 +267,7 @@ public override AuthenticationData Read(ref Utf8JsonReader utf8JsonReader, Type { case "attemptAuthentication": string? attemptAuthenticationRawValue = utf8JsonReader.GetString(); - attemptAuthentication = new Option(AuthenticationData.AttemptAuthenticationEnum.FromStringOrDefault(attemptAuthenticationRawValue)); + attemptAuthentication = new Option(AuthenticationData.AttemptAuthenticationEnum.FromStringOrDefault(attemptAuthenticationRawValue) ?? (AuthenticationData.AttemptAuthenticationEnum)attemptAuthenticationRawValue); break; case "authenticationOnly": authenticationOnly = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (bool?)null : utf8JsonReader.GetBoolean()); diff --git a/Adyen/Checkout/Models/BacsDirectDebitDetails.cs b/Adyen/Checkout/Models/BacsDirectDebitDetails.cs index 5cb0822d2..a3814453d 100644 --- a/Adyen/Checkout/Models/BacsDirectDebitDetails.cs +++ b/Adyen/Checkout/Models/BacsDirectDebitDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.DirectdebitGB) return "directdebit_GB"; - return null; + return value.Value; } /// @@ -382,7 +382,7 @@ public override BacsDirectDebitDetails Read(ref Utf8JsonReader utf8JsonReader, T break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(BacsDirectDebitDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(BacsDirectDebitDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (BacsDirectDebitDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/BalanceCheckRequest.cs b/Adyen/Checkout/Models/BalanceCheckRequest.cs index 76f006779..e185163ac 100644 --- a/Adyen/Checkout/Models/BalanceCheckRequest.cs +++ b/Adyen/Checkout/Models/BalanceCheckRequest.cs @@ -149,7 +149,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -304,7 +304,7 @@ private ShopperInteractionEnum(string? value) if (value == ShopperInteractionEnum.POS) return "POS"; - return null; + return value.Value; } /// @@ -1124,7 +1124,7 @@ public override BalanceCheckRequest Read(ref Utf8JsonReader utf8JsonReader, Type break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(BalanceCheckRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(BalanceCheckRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (BalanceCheckRequest.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "reference": reference = new Option(utf8JsonReader.GetString()!); @@ -1146,7 +1146,7 @@ public override BalanceCheckRequest Read(ref Utf8JsonReader utf8JsonReader, Type break; case "shopperInteraction": string? shopperInteractionRawValue = utf8JsonReader.GetString(); - shopperInteraction = new Option(BalanceCheckRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue)); + shopperInteraction = new Option(BalanceCheckRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue) ?? (BalanceCheckRequest.ShopperInteractionEnum)shopperInteractionRawValue); break; case "shopperLocale": shopperLocale = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/BalanceCheckResponse.cs b/Adyen/Checkout/Models/BalanceCheckResponse.cs index 3a1ef73f0..6804f3e4e 100644 --- a/Adyen/Checkout/Models/BalanceCheckResponse.cs +++ b/Adyen/Checkout/Models/BalanceCheckResponse.cs @@ -149,7 +149,7 @@ private ResultCodeEnum(string? value) if (value == ResultCodeEnum.Failed) return "Failed"; - return null; + return value.Value; } /// @@ -327,7 +327,7 @@ public override BalanceCheckResponse Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "resultCode": string? resultCodeRawValue = utf8JsonReader.GetString(); - resultCode = new Option(BalanceCheckResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue)); + resultCode = new Option(BalanceCheckResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue) ?? (BalanceCheckResponse.ResultCodeEnum)resultCodeRawValue); break; case "additionalData": additionalData = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -358,7 +358,7 @@ public override BalanceCheckResponse Read(ref Utf8JsonReader utf8JsonReader, Typ var balanceCheckResponse = new BalanceCheckResponse(); balanceCheckResponse.Balance = balance.Value!; - balanceCheckResponse.ResultCode = resultCode.Value!.Value; + balanceCheckResponse.ResultCode = resultCode.Value!; if (additionalData.IsSet) balanceCheckResponse.AdditionalData = additionalData.Value; if (fraudResult.IsSet) diff --git a/Adyen/Checkout/Models/BillDeskDetails.cs b/Adyen/Checkout/Models/BillDeskDetails.cs index 537e7a1f3..4fa35316f 100644 --- a/Adyen/Checkout/Models/BillDeskDetails.cs +++ b/Adyen/Checkout/Models/BillDeskDetails.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.BilldeskWallet) return "billdesk_wallet"; - return null; + return value.Value; } /// @@ -273,7 +273,7 @@ public override BillDeskDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(BillDeskDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(BillDeskDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (BillDeskDetails.TypeEnum)typeRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -295,7 +295,7 @@ public override BillDeskDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ var billDeskDetails = new BillDeskDetails(); billDeskDetails.Issuer = issuer.Value!; - billDeskDetails.Type = type.Value!.Value; + billDeskDetails.Type = type.Value!; if (checkoutAttemptId.IsSet) billDeskDetails.CheckoutAttemptId = checkoutAttemptId.Value; if (sdkData.IsSet) diff --git a/Adyen/Checkout/Models/BlikDetails.cs b/Adyen/Checkout/Models/BlikDetails.cs index 85abcae8f..7ceb52406 100644 --- a/Adyen/Checkout/Models/BlikDetails.cs +++ b/Adyen/Checkout/Models/BlikDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Blik) return "blik"; - return null; + return value.Value; } /// @@ -324,7 +324,7 @@ public override BlikDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(BlikDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(BlikDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (BlikDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/CancelOrderResponse.cs b/Adyen/Checkout/Models/CancelOrderResponse.cs index e274638fb..da7ef82e4 100644 --- a/Adyen/Checkout/Models/CancelOrderResponse.cs +++ b/Adyen/Checkout/Models/CancelOrderResponse.cs @@ -131,7 +131,7 @@ private ResultCodeEnum(string? value) if (value == ResultCodeEnum.Received) return "Received"; - return null; + return value.Value; } /// @@ -232,7 +232,7 @@ public override CancelOrderResponse Read(ref Utf8JsonReader utf8JsonReader, Type break; case "resultCode": string? resultCodeRawValue = utf8JsonReader.GetString(); - resultCode = new Option(CancelOrderResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue)); + resultCode = new Option(CancelOrderResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue) ?? (CancelOrderResponse.ResultCodeEnum)resultCodeRawValue); break; default: break; @@ -248,7 +248,7 @@ public override CancelOrderResponse Read(ref Utf8JsonReader utf8JsonReader, Type var cancelOrderResponse = new CancelOrderResponse(); cancelOrderResponse.PspReference = pspReference.Value!; - cancelOrderResponse.ResultCode = resultCode.Value!.Value; + cancelOrderResponse.ResultCode = resultCode.Value!; return cancelOrderResponse; } diff --git a/Adyen/Checkout/Models/CardDetails.cs b/Adyen/Checkout/Models/CardDetails.cs index c5b062984..79488341f 100644 --- a/Adyen/Checkout/Models/CardDetails.cs +++ b/Adyen/Checkout/Models/CardDetails.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -323,7 +323,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Clicktopay) return "clicktopay"; - return null; + return value.Value; } /// @@ -882,7 +882,7 @@ public override CardDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(CardDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(CardDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (CardDetails.FundingSourceEnum)fundingSourceRawValue); break; case "holderName": holderName = new Option(utf8JsonReader.GetString()!); @@ -922,7 +922,7 @@ public override CardDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CardDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CardDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CardDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/CardDonations.cs b/Adyen/Checkout/Models/CardDonations.cs index e5377ba0b..d03c6aefb 100644 --- a/Adyen/Checkout/Models/CardDonations.cs +++ b/Adyen/Checkout/Models/CardDonations.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -323,7 +323,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Clicktopay) return "clicktopay"; - return null; + return value.Value; } /// @@ -882,7 +882,7 @@ public override CardDonations Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(CardDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(CardDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (CardDonations.FundingSourceEnum)fundingSourceRawValue); break; case "holderName": holderName = new Option(utf8JsonReader.GetString()!); @@ -922,7 +922,7 @@ public override CardDonations Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CardDonations.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CardDonations.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CardDonations.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/CashAppDetails.cs b/Adyen/Checkout/Models/CashAppDetails.cs index 1c3d01c7b..af75c37db 100644 --- a/Adyen/Checkout/Models/CashAppDetails.cs +++ b/Adyen/Checkout/Models/CashAppDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Cashapp) return "cashapp"; - return null; + return value.Value; } /// @@ -420,7 +420,7 @@ public override CashAppDetails Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CashAppDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CashAppDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CashAppDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/CellulantDetails.cs b/Adyen/Checkout/Models/CellulantDetails.cs index 4653f0aed..dc0f513ac 100644 --- a/Adyen/Checkout/Models/CellulantDetails.cs +++ b/Adyen/Checkout/Models/CellulantDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Cellulant) return "cellulant"; - return null; + return value.Value; } /// @@ -285,7 +285,7 @@ public override CellulantDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CellulantDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CellulantDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CellulantDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/CheckoutAwaitAction.cs b/Adyen/Checkout/Models/CheckoutAwaitAction.cs index 7b25c3340..6eafd401a 100644 --- a/Adyen/Checkout/Models/CheckoutAwaitAction.cs +++ b/Adyen/Checkout/Models/CheckoutAwaitAction.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Await) return "await"; - return null; + return value.Value; } /// @@ -268,7 +268,7 @@ public override CheckoutAwaitAction Read(ref Utf8JsonReader utf8JsonReader, Type { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutAwaitAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutAwaitAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutAwaitAction.TypeEnum)typeRawValue); break; case "paymentData": paymentData = new Option(utf8JsonReader.GetString()!); @@ -289,7 +289,7 @@ public override CheckoutAwaitAction Read(ref Utf8JsonReader utf8JsonReader, Type throw new ArgumentException("Property is required for class CheckoutAwaitAction.", nameof(type)); var checkoutAwaitAction = new CheckoutAwaitAction(); - checkoutAwaitAction.Type = type.Value!.Value; + checkoutAwaitAction.Type = type.Value!; if (paymentData.IsSet) checkoutAwaitAction.PaymentData = paymentData.Value; if (paymentMethodType.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutBankAccount.cs b/Adyen/Checkout/Models/CheckoutBankAccount.cs index cf6fe99cf..bc3540ad9 100644 --- a/Adyen/Checkout/Models/CheckoutBankAccount.cs +++ b/Adyen/Checkout/Models/CheckoutBankAccount.cs @@ -185,7 +185,7 @@ private AccountTypeEnum(string? value) if (value == AccountTypeEnum.Savings) return "savings"; - return null; + return value.Value; } /// @@ -425,7 +425,7 @@ public override CheckoutBankAccount Read(ref Utf8JsonReader utf8JsonReader, Type { case "accountType": string? accountTypeRawValue = utf8JsonReader.GetString(); - accountType = new Option(CheckoutBankAccount.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue)); + accountType = new Option(CheckoutBankAccount.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue) ?? (CheckoutBankAccount.AccountTypeEnum)accountTypeRawValue); break; case "bankAccountNumber": bankAccountNumber = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/CheckoutBankTransferAction.cs b/Adyen/Checkout/Models/CheckoutBankTransferAction.cs index 60f832069..578b5b68e 100644 --- a/Adyen/Checkout/Models/CheckoutBankTransferAction.cs +++ b/Adyen/Checkout/Models/CheckoutBankTransferAction.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.BankTransfer) return "bankTransfer"; - return null; + return value.Value; } /// @@ -443,7 +443,7 @@ public override CheckoutBankTransferAction Read(ref Utf8JsonReader utf8JsonReade { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutBankTransferAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutBankTransferAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutBankTransferAction.TypeEnum)typeRawValue); break; case "accountNumber": accountNumber = new Option(utf8JsonReader.GetString()!); @@ -497,7 +497,7 @@ public override CheckoutBankTransferAction Read(ref Utf8JsonReader utf8JsonReade throw new ArgumentException("Property is required for class CheckoutBankTransferAction.", nameof(type)); var checkoutBankTransferAction = new CheckoutBankTransferAction(); - checkoutBankTransferAction.Type = type.Value!.Value; + checkoutBankTransferAction.Type = type.Value!; if (accountNumber.IsSet) checkoutBankTransferAction.AccountNumber = accountNumber.Value; if (bankCode.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutDelegatedAuthenticationAction.cs b/Adyen/Checkout/Models/CheckoutDelegatedAuthenticationAction.cs index 7e07b7c7e..c384c5968 100644 --- a/Adyen/Checkout/Models/CheckoutDelegatedAuthenticationAction.cs +++ b/Adyen/Checkout/Models/CheckoutDelegatedAuthenticationAction.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.DelegatedAuthentication) return "delegatedAuthentication"; - return null; + return value.Value; } /// @@ -300,7 +300,7 @@ public override CheckoutDelegatedAuthenticationAction Read(ref Utf8JsonReader ut { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutDelegatedAuthenticationAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutDelegatedAuthenticationAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutDelegatedAuthenticationAction.TypeEnum)typeRawValue); break; case "authorisationToken": authorisationToken = new Option(utf8JsonReader.GetString()!); @@ -327,7 +327,7 @@ public override CheckoutDelegatedAuthenticationAction Read(ref Utf8JsonReader ut throw new ArgumentException("Property is required for class CheckoutDelegatedAuthenticationAction.", nameof(type)); var checkoutDelegatedAuthenticationAction = new CheckoutDelegatedAuthenticationAction(); - checkoutDelegatedAuthenticationAction.Type = type.Value!.Value; + checkoutDelegatedAuthenticationAction.Type = type.Value!; if (authorisationToken.IsSet) checkoutDelegatedAuthenticationAction.AuthorisationToken = authorisationToken.Value; if (paymentData.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutForwardRequestCard.cs b/Adyen/Checkout/Models/CheckoutForwardRequestCard.cs index aa657e0d9..59d537d4a 100644 --- a/Adyen/Checkout/Models/CheckoutForwardRequestCard.cs +++ b/Adyen/Checkout/Models/CheckoutForwardRequestCard.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Scheme) return "scheme"; - return null; + return value.Value; } /// @@ -399,7 +399,7 @@ public override CheckoutForwardRequestCard Read(ref Utf8JsonReader utf8JsonReade break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutForwardRequestCard.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutForwardRequestCard.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutForwardRequestCard.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/CheckoutNativeRedirectAction.cs b/Adyen/Checkout/Models/CheckoutNativeRedirectAction.cs index 164a4d186..a5a1d479e 100644 --- a/Adyen/Checkout/Models/CheckoutNativeRedirectAction.cs +++ b/Adyen/Checkout/Models/CheckoutNativeRedirectAction.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.NativeRedirect) return "nativeRedirect"; - return null; + return value.Value; } /// @@ -300,7 +300,7 @@ public override CheckoutNativeRedirectAction Read(ref Utf8JsonReader utf8JsonRea { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutNativeRedirectAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutNativeRedirectAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutNativeRedirectAction.TypeEnum)typeRawValue); break; case "data": data = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -327,7 +327,7 @@ public override CheckoutNativeRedirectAction Read(ref Utf8JsonReader utf8JsonRea throw new ArgumentException("Property is required for class CheckoutNativeRedirectAction.", nameof(type)); var checkoutNativeRedirectAction = new CheckoutNativeRedirectAction(); - checkoutNativeRedirectAction.Type = type.Value!.Value; + checkoutNativeRedirectAction.Type = type.Value!; if (data.IsSet) checkoutNativeRedirectAction.Data = data.Value; if (method.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutOutgoingForwardRequest.cs b/Adyen/Checkout/Models/CheckoutOutgoingForwardRequest.cs index f9bcf0d34..9ba85e969 100644 --- a/Adyen/Checkout/Models/CheckoutOutgoingForwardRequest.cs +++ b/Adyen/Checkout/Models/CheckoutOutgoingForwardRequest.cs @@ -149,7 +149,7 @@ private HttpMethodEnum(string? value) if (value == HttpMethodEnum.Patch) return "patch"; - return null; + return value.Value; } /// @@ -298,7 +298,7 @@ public override CheckoutOutgoingForwardRequest Read(ref Utf8JsonReader utf8JsonR break; case "httpMethod": string? httpMethodRawValue = utf8JsonReader.GetString(); - httpMethod = new Option(CheckoutOutgoingForwardRequest.HttpMethodEnum.FromStringOrDefault(httpMethodRawValue)); + httpMethod = new Option(CheckoutOutgoingForwardRequest.HttpMethodEnum.FromStringOrDefault(httpMethodRawValue) ?? (CheckoutOutgoingForwardRequest.HttpMethodEnum)httpMethodRawValue); break; case "credentials": credentials = new Option(utf8JsonReader.GetString()!); @@ -323,7 +323,7 @@ public override CheckoutOutgoingForwardRequest Read(ref Utf8JsonReader utf8JsonR var checkoutOutgoingForwardRequest = new CheckoutOutgoingForwardRequest(); checkoutOutgoingForwardRequest.Body = body.Value!; - checkoutOutgoingForwardRequest.HttpMethod = httpMethod.Value!.Value; + checkoutOutgoingForwardRequest.HttpMethod = httpMethod.Value!; if (credentials.IsSet) checkoutOutgoingForwardRequest.Credentials = credentials.Value; if (headers.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutPaymentMethod.cs b/Adyen/Checkout/Models/CheckoutPaymentMethod.cs index e97629d86..723209ee9 100644 --- a/Adyen/Checkout/Models/CheckoutPaymentMethod.cs +++ b/Adyen/Checkout/Models/CheckoutPaymentMethod.cs @@ -1324,178 +1324,178 @@ public override CheckoutPaymentMethod Read(ref Utf8JsonReader utf8JsonReader, Ty } } - if (achDetails?.Type != null) + if (achDetails?.Type != null && AchDetails.TypeEnum.FromStringOrDefault((string?)achDetails.Type) != null) return new CheckoutPaymentMethod(achDetails); - if (affirmDetails?.Type != null) + if (affirmDetails?.Type != null && AffirmDetails.TypeEnum.FromStringOrDefault((string?)affirmDetails.Type) != null) return new CheckoutPaymentMethod(affirmDetails); - if (afterpayDetails?.Type != null) + if (afterpayDetails?.Type != null && AfterpayDetails.TypeEnum.FromStringOrDefault((string?)afterpayDetails.Type) != null) return new CheckoutPaymentMethod(afterpayDetails); - if (almaDetails?.Type != null) + if (almaDetails?.Type != null && AlmaDetails.TypeEnum.FromStringOrDefault((string?)almaDetails.Type) != null) return new CheckoutPaymentMethod(almaDetails); - if (amazonPayDetails?.Type != null) + if (amazonPayDetails?.Type != null && AmazonPayDetails.TypeEnum.FromStringOrDefault((string?)amazonPayDetails.Type) != null) return new CheckoutPaymentMethod(amazonPayDetails); - if (ancvDetails?.Type != null) + if (ancvDetails?.Type != null && AncvDetails.TypeEnum.FromStringOrDefault((string?)ancvDetails.Type) != null) return new CheckoutPaymentMethod(ancvDetails); - if (androidPayDetails?.Type != null) + if (androidPayDetails?.Type != null && AndroidPayDetails.TypeEnum.FromStringOrDefault((string?)androidPayDetails.Type) != null) return new CheckoutPaymentMethod(androidPayDetails); - if (applePayDetails?.Type != null) + if (applePayDetails?.Type != null && ApplePayDetails.TypeEnum.FromStringOrDefault((string?)applePayDetails.Type) != null) return new CheckoutPaymentMethod(applePayDetails); - if (bacsDirectDebitDetails?.Type != null) + if (bacsDirectDebitDetails?.Type != null && BacsDirectDebitDetails.TypeEnum.FromStringOrDefault((string?)bacsDirectDebitDetails.Type) != null) return new CheckoutPaymentMethod(bacsDirectDebitDetails); - if (billDeskDetails?.Type != null) + if (billDeskDetails?.Type != null && BillDeskDetails.TypeEnum.FromStringOrDefault((string?)billDeskDetails.Type) != null) return new CheckoutPaymentMethod(billDeskDetails); - if (blikDetails?.Type != null) + if (blikDetails?.Type != null && BlikDetails.TypeEnum.FromStringOrDefault((string?)blikDetails.Type) != null) return new CheckoutPaymentMethod(blikDetails); - if (cardDetails?.Type != null) + if (cardDetails?.Type != null && CardDetails.TypeEnum.FromStringOrDefault((string?)cardDetails.Type) != null) return new CheckoutPaymentMethod(cardDetails); - if (cashAppDetails?.Type != null) + if (cashAppDetails?.Type != null && CashAppDetails.TypeEnum.FromStringOrDefault((string?)cashAppDetails.Type) != null) return new CheckoutPaymentMethod(cashAppDetails); - if (cellulantDetails?.Type != null) + if (cellulantDetails?.Type != null && CellulantDetails.TypeEnum.FromStringOrDefault((string?)cellulantDetails.Type) != null) return new CheckoutPaymentMethod(cellulantDetails); - if (directDebitAuDetails?.Type != null) + if (directDebitAuDetails?.Type != null && DirectDebitAuDetails.TypeEnum.FromStringOrDefault((string?)directDebitAuDetails.Type) != null) return new CheckoutPaymentMethod(directDebitAuDetails); - if (dokuDetails?.Type != null) + if (dokuDetails?.Type != null && DokuDetails.TypeEnum.FromStringOrDefault((string?)dokuDetails.Type) != null) return new CheckoutPaymentMethod(dokuDetails); - if (dragonpayDetails?.Type != null) + if (dragonpayDetails?.Type != null && DragonpayDetails.TypeEnum.FromStringOrDefault((string?)dragonpayDetails.Type) != null) return new CheckoutPaymentMethod(dragonpayDetails); - if (eBankingFinlandDetails?.Type != null) + if (eBankingFinlandDetails?.Type != null && EBankingFinlandDetails.TypeEnum.FromStringOrDefault((string?)eBankingFinlandDetails.Type) != null) return new CheckoutPaymentMethod(eBankingFinlandDetails); - if (econtextVoucherDetails?.Type != null) + if (econtextVoucherDetails?.Type != null && EcontextVoucherDetails.TypeEnum.FromStringOrDefault((string?)econtextVoucherDetails.Type) != null) return new CheckoutPaymentMethod(econtextVoucherDetails); - if (eftDetails?.Type != null) + if (eftDetails?.Type != null && EftDetails.TypeEnum.FromStringOrDefault((string?)eftDetails.Type) != null) return new CheckoutPaymentMethod(eftDetails); - if (externalTokenDetails?.Type != null) + if (externalTokenDetails?.Type != null && ExternalTokenDetails.TypeEnum.FromStringOrDefault((string?)externalTokenDetails.Type) != null) return new CheckoutPaymentMethod(externalTokenDetails); - if (fastlaneDetails?.Type != null) + if (fastlaneDetails?.Type != null && FastlaneDetails.TypeEnum.FromStringOrDefault((string?)fastlaneDetails.Type) != null) return new CheckoutPaymentMethod(fastlaneDetails); - if (genericIssuerPaymentMethodDetails?.Type != null) + if (genericIssuerPaymentMethodDetails?.Type != null && GenericIssuerPaymentMethodDetails.TypeEnum.FromStringOrDefault((string?)genericIssuerPaymentMethodDetails.Type) != null) return new CheckoutPaymentMethod(genericIssuerPaymentMethodDetails); - if (googlePayDetails?.Type != null) + if (googlePayDetails?.Type != null && GooglePayDetails.TypeEnum.FromStringOrDefault((string?)googlePayDetails.Type) != null) return new CheckoutPaymentMethod(googlePayDetails); - if (idealDetails?.Type != null) + if (idealDetails?.Type != null && IdealDetails.TypeEnum.FromStringOrDefault((string?)idealDetails.Type) != null) return new CheckoutPaymentMethod(idealDetails); - if (klarnaDetails?.Type != null) + if (klarnaDetails?.Type != null && KlarnaDetails.TypeEnum.FromStringOrDefault((string?)klarnaDetails.Type) != null) return new CheckoutPaymentMethod(klarnaDetails); - if (klarnaNetworkDetails?.Type != null) + if (klarnaNetworkDetails?.Type != null && KlarnaNetworkDetails.TypeEnum.FromStringOrDefault((string?)klarnaNetworkDetails.Type) != null) return new CheckoutPaymentMethod(klarnaNetworkDetails); - if (masterpassDetails?.Type != null) + if (masterpassDetails?.Type != null && MasterpassDetails.TypeEnum.FromStringOrDefault((string?)masterpassDetails.Type) != null) return new CheckoutPaymentMethod(masterpassDetails); - if (mbwayDetails?.Type != null) + if (mbwayDetails?.Type != null && MbwayDetails.TypeEnum.FromStringOrDefault((string?)mbwayDetails.Type) != null) return new CheckoutPaymentMethod(mbwayDetails); - if (mobilePayDetails?.Type != null) + if (mobilePayDetails?.Type != null && MobilePayDetails.TypeEnum.FromStringOrDefault((string?)mobilePayDetails.Type) != null) return new CheckoutPaymentMethod(mobilePayDetails); - if (molPayDetails?.Type != null) + if (molPayDetails?.Type != null && MolPayDetails.TypeEnum.FromStringOrDefault((string?)molPayDetails.Type) != null) return new CheckoutPaymentMethod(molPayDetails); - if (openInvoiceDetails?.Type != null) + if (openInvoiceDetails?.Type != null && OpenInvoiceDetails.TypeEnum.FromStringOrDefault((string?)openInvoiceDetails.Type) != null) return new CheckoutPaymentMethod(openInvoiceDetails); - if (payByBankAISDirectDebitDetails?.Type != null) + if (payByBankAISDirectDebitDetails?.Type != null && PayByBankAISDirectDebitDetails.TypeEnum.FromStringOrDefault((string?)payByBankAISDirectDebitDetails.Type) != null) return new CheckoutPaymentMethod(payByBankAISDirectDebitDetails); - if (payByBankDetails?.Type != null) + if (payByBankDetails?.Type != null && PayByBankDetails.TypeEnum.FromStringOrDefault((string?)payByBankDetails.Type) != null) return new CheckoutPaymentMethod(payByBankDetails); - if (payPalDetails?.Type != null) + if (payPalDetails?.Type != null && PayPalDetails.TypeEnum.FromStringOrDefault((string?)payPalDetails.Type) != null) return new CheckoutPaymentMethod(payPalDetails); - if (payPayDetails?.Type != null) + if (payPayDetails?.Type != null && PayPayDetails.TypeEnum.FromStringOrDefault((string?)payPayDetails.Type) != null) return new CheckoutPaymentMethod(payPayDetails); - if (payToDetails?.Type != null) + if (payToDetails?.Type != null && PayToDetails.TypeEnum.FromStringOrDefault((string?)payToDetails.Type) != null) return new CheckoutPaymentMethod(payToDetails); - if (payUUpiDetails?.Type != null) + if (payUUpiDetails?.Type != null && PayUUpiDetails.TypeEnum.FromStringOrDefault((string?)payUUpiDetails.Type) != null) return new CheckoutPaymentMethod(payUUpiDetails); - if (payWithGoogleDetails?.Type != null) + if (payWithGoogleDetails?.Type != null && PayWithGoogleDetails.TypeEnum.FromStringOrDefault((string?)payWithGoogleDetails.Type) != null) return new CheckoutPaymentMethod(payWithGoogleDetails); - if (paymentDetails?.Type != null) + if (paymentDetails?.Type != null && PaymentDetails.TypeEnum.FromStringOrDefault((string?)paymentDetails.Type) != null) return new CheckoutPaymentMethod(paymentDetails); - if (pixDetails?.Type != null) + if (pixDetails?.Type != null && PixDetails.TypeEnum.FromStringOrDefault((string?)pixDetails.Type) != null) return new CheckoutPaymentMethod(pixDetails); - if (pixPayByBankDetails?.Type != null) + if (pixPayByBankDetails?.Type != null && PixPayByBankDetails.TypeEnum.FromStringOrDefault((string?)pixPayByBankDetails.Type) != null) return new CheckoutPaymentMethod(pixPayByBankDetails); - if (pseDetails?.Type != null) + if (pseDetails?.Type != null && PseDetails.TypeEnum.FromStringOrDefault((string?)pseDetails.Type) != null) return new CheckoutPaymentMethod(pseDetails); - if (rakutenPayDetails?.Type != null) + if (rakutenPayDetails?.Type != null && RakutenPayDetails.TypeEnum.FromStringOrDefault((string?)rakutenPayDetails.Type) != null) return new CheckoutPaymentMethod(rakutenPayDetails); - if (ratepayDetails?.Type != null) + if (ratepayDetails?.Type != null && RatepayDetails.TypeEnum.FromStringOrDefault((string?)ratepayDetails.Type) != null) return new CheckoutPaymentMethod(ratepayDetails); - if (rivertyDetails?.Type != null) + if (rivertyDetails?.Type != null && RivertyDetails.TypeEnum.FromStringOrDefault((string?)rivertyDetails.Type) != null) return new CheckoutPaymentMethod(rivertyDetails); - if (samsungPayDetails?.Type != null) + if (samsungPayDetails?.Type != null && SamsungPayDetails.TypeEnum.FromStringOrDefault((string?)samsungPayDetails.Type) != null) return new CheckoutPaymentMethod(samsungPayDetails); - if (sepaDirectDebitDetails?.Type != null) + if (sepaDirectDebitDetails?.Type != null && SepaDirectDebitDetails.TypeEnum.FromStringOrDefault((string?)sepaDirectDebitDetails.Type) != null) return new CheckoutPaymentMethod(sepaDirectDebitDetails); - if (storedPaymentMethodDetails?.Type != null) + if (storedPaymentMethodDetails?.Type != null && StoredPaymentMethodDetails.TypeEnum.FromStringOrDefault((string?)storedPaymentMethodDetails.Type) != null) return new CheckoutPaymentMethod(storedPaymentMethodDetails); - if (twintDetails?.Type != null) + if (twintDetails?.Type != null && TwintDetails.TypeEnum.FromStringOrDefault((string?)twintDetails.Type) != null) return new CheckoutPaymentMethod(twintDetails); - if (upiCollectDetails?.Type != null) + if (upiCollectDetails?.Type != null && UpiCollectDetails.TypeEnum.FromStringOrDefault((string?)upiCollectDetails.Type) != null) return new CheckoutPaymentMethod(upiCollectDetails); - if (upiIntentDetails?.Type != null) + if (upiIntentDetails?.Type != null && UpiIntentDetails.TypeEnum.FromStringOrDefault((string?)upiIntentDetails.Type) != null) return new CheckoutPaymentMethod(upiIntentDetails); - if (upiQrDetails?.Type != null) + if (upiQrDetails?.Type != null && UpiQrDetails.TypeEnum.FromStringOrDefault((string?)upiQrDetails.Type) != null) return new CheckoutPaymentMethod(upiQrDetails); - if (vippsDetails?.Type != null) + if (vippsDetails?.Type != null && VippsDetails.TypeEnum.FromStringOrDefault((string?)vippsDetails.Type) != null) return new CheckoutPaymentMethod(vippsDetails); - if (visaCheckoutDetails?.Type != null) + if (visaCheckoutDetails?.Type != null && VisaCheckoutDetails.TypeEnum.FromStringOrDefault((string?)visaCheckoutDetails.Type) != null) return new CheckoutPaymentMethod(visaCheckoutDetails); - if (weChatPayDetails?.Type != null) + if (weChatPayDetails?.Type != null && WeChatPayDetails.TypeEnum.FromStringOrDefault((string?)weChatPayDetails.Type) != null) return new CheckoutPaymentMethod(weChatPayDetails); - if (weChatPayMiniProgramDetails?.Type != null) + if (weChatPayMiniProgramDetails?.Type != null && WeChatPayMiniProgramDetails.TypeEnum.FromStringOrDefault((string?)weChatPayMiniProgramDetails.Type) != null) return new CheckoutPaymentMethod(weChatPayMiniProgramDetails); - if (zipDetails?.Type != null) + if (zipDetails?.Type != null && ZipDetails.TypeEnum.FromStringOrDefault((string?)zipDetails.Type) != null) return new CheckoutPaymentMethod(zipDetails); throw new JsonException(); diff --git a/Adyen/Checkout/Models/CheckoutQrCodeAction.cs b/Adyen/Checkout/Models/CheckoutQrCodeAction.cs index 7c17fe056..a7f9264d6 100644 --- a/Adyen/Checkout/Models/CheckoutQrCodeAction.cs +++ b/Adyen/Checkout/Models/CheckoutQrCodeAction.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.QrCode) return "qrCode"; - return null; + return value.Value; } /// @@ -300,7 +300,7 @@ public override CheckoutQrCodeAction Read(ref Utf8JsonReader utf8JsonReader, Typ { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutQrCodeAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutQrCodeAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutQrCodeAction.TypeEnum)typeRawValue); break; case "expiresAt": expiresAt = new Option(utf8JsonReader.GetString()!); @@ -327,7 +327,7 @@ public override CheckoutQrCodeAction Read(ref Utf8JsonReader utf8JsonReader, Typ throw new ArgumentException("Property is required for class CheckoutQrCodeAction.", nameof(type)); var checkoutQrCodeAction = new CheckoutQrCodeAction(); - checkoutQrCodeAction.Type = type.Value!.Value; + checkoutQrCodeAction.Type = type.Value!; if (expiresAt.IsSet) checkoutQrCodeAction.ExpiresAt = expiresAt.Value; if (paymentData.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutRedirectAction.cs b/Adyen/Checkout/Models/CheckoutRedirectAction.cs index 6fa1bf77c..4cf159d82 100644 --- a/Adyen/Checkout/Models/CheckoutRedirectAction.cs +++ b/Adyen/Checkout/Models/CheckoutRedirectAction.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Redirect) return "redirect"; - return null; + return value.Value; } /// @@ -284,7 +284,7 @@ public override CheckoutRedirectAction Read(ref Utf8JsonReader utf8JsonReader, T { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutRedirectAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutRedirectAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutRedirectAction.TypeEnum)typeRawValue); break; case "data": data = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -308,7 +308,7 @@ public override CheckoutRedirectAction Read(ref Utf8JsonReader utf8JsonReader, T throw new ArgumentException("Property is required for class CheckoutRedirectAction.", nameof(type)); var checkoutRedirectAction = new CheckoutRedirectAction(); - checkoutRedirectAction.Type = type.Value!.Value; + checkoutRedirectAction.Type = type.Value!; if (data.IsSet) checkoutRedirectAction.Data = data.Value; if (method.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutSDKAction.cs b/Adyen/Checkout/Models/CheckoutSDKAction.cs index 83c9714b5..894d37351 100644 --- a/Adyen/Checkout/Models/CheckoutSDKAction.cs +++ b/Adyen/Checkout/Models/CheckoutSDKAction.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.WechatpaySDK) return "wechatpaySDK"; - return null; + return value.Value; } /// @@ -293,7 +293,7 @@ public override CheckoutSDKAction Read(ref Utf8JsonReader utf8JsonReader, Type t { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutSDKAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutSDKAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutSDKAction.TypeEnum)typeRawValue); break; case "paymentData": paymentData = new Option(utf8JsonReader.GetString()!); @@ -317,7 +317,7 @@ public override CheckoutSDKAction Read(ref Utf8JsonReader utf8JsonReader, Type t throw new ArgumentException("Property is required for class CheckoutSDKAction.", nameof(type)); var checkoutSDKAction = new CheckoutSDKAction(); - checkoutSDKAction.Type = type.Value!.Value; + checkoutSDKAction.Type = type.Value!; if (paymentData.IsSet) checkoutSDKAction.PaymentData = paymentData.Value; if (paymentMethodType.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutSessionInstallmentOption.cs b/Adyen/Checkout/Models/CheckoutSessionInstallmentOption.cs index 282a7c708..ed894e37c 100644 --- a/Adyen/Checkout/Models/CheckoutSessionInstallmentOption.cs +++ b/Adyen/Checkout/Models/CheckoutSessionInstallmentOption.cs @@ -211,7 +211,7 @@ private PlansEnum(string? value) if (value == PlansEnum.WithInterest) return "with_interest"; - return null; + return value.Value; } /// diff --git a/Adyen/Checkout/Models/CheckoutSessionThreeDS2RequestData.cs b/Adyen/Checkout/Models/CheckoutSessionThreeDS2RequestData.cs index 50d06dd2d..a6afb7448 100644 --- a/Adyen/Checkout/Models/CheckoutSessionThreeDS2RequestData.cs +++ b/Adyen/Checkout/Models/CheckoutSessionThreeDS2RequestData.cs @@ -176,7 +176,7 @@ private ThreeDSRequestorChallengeIndEnum(string? value) if (value == ThreeDSRequestorChallengeIndEnum._06) return "06"; - return null; + return value.Value; } /// @@ -323,7 +323,7 @@ public override CheckoutSessionThreeDS2RequestData Read(ref Utf8JsonReader utf8J break; case "threeDSRequestorChallengeInd": string? threeDSRequestorChallengeIndRawValue = utf8JsonReader.GetString(); - threeDSRequestorChallengeInd = new Option(CheckoutSessionThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue)); + threeDSRequestorChallengeInd = new Option(CheckoutSessionThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue) ?? (CheckoutSessionThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum)threeDSRequestorChallengeIndRawValue); break; case "workPhone": workPhone = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/Checkout/Models/CheckoutThreeDS2Action.cs b/Adyen/Checkout/Models/CheckoutThreeDS2Action.cs index 80a793290..1f0723c3e 100644 --- a/Adyen/Checkout/Models/CheckoutThreeDS2Action.cs +++ b/Adyen/Checkout/Models/CheckoutThreeDS2Action.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.ThreeDS2) return "threeDS2"; - return null; + return value.Value; } /// @@ -316,7 +316,7 @@ public override CheckoutThreeDS2Action Read(ref Utf8JsonReader utf8JsonReader, T { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutThreeDS2Action.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutThreeDS2Action.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutThreeDS2Action.TypeEnum)typeRawValue); break; case "authorisationToken": authorisationToken = new Option(utf8JsonReader.GetString()!); @@ -346,7 +346,7 @@ public override CheckoutThreeDS2Action Read(ref Utf8JsonReader utf8JsonReader, T throw new ArgumentException("Property is required for class CheckoutThreeDS2Action.", nameof(type)); var checkoutThreeDS2Action = new CheckoutThreeDS2Action(); - checkoutThreeDS2Action.Type = type.Value!.Value; + checkoutThreeDS2Action.Type = type.Value!; if (authorisationToken.IsSet) checkoutThreeDS2Action.AuthorisationToken = authorisationToken.Value; if (paymentData.IsSet) diff --git a/Adyen/Checkout/Models/CheckoutVoucherAction.cs b/Adyen/Checkout/Models/CheckoutVoucherAction.cs index f9297fafa..41a604321 100644 --- a/Adyen/Checkout/Models/CheckoutVoucherAction.cs +++ b/Adyen/Checkout/Models/CheckoutVoucherAction.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Voucher) return "voucher"; - return null; + return value.Value; } /// @@ -537,7 +537,7 @@ public override CheckoutVoucherAction Read(ref Utf8JsonReader utf8JsonReader, Ty { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CheckoutVoucherAction.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CheckoutVoucherAction.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CheckoutVoucherAction.TypeEnum)typeRawValue); break; case "alternativeReference": alternativeReference = new Option(utf8JsonReader.GetString()!); @@ -609,7 +609,7 @@ public override CheckoutVoucherAction Read(ref Utf8JsonReader utf8JsonReader, Ty throw new ArgumentException("Property is required for class CheckoutVoucherAction.", nameof(type)); var checkoutVoucherAction = new CheckoutVoucherAction(); - checkoutVoucherAction.Type = type.Value!.Value; + checkoutVoucherAction.Type = type.Value!; if (alternativeReference.IsSet) checkoutVoucherAction.AlternativeReference = alternativeReference.Value; if (collectionInstitutionNumber.IsSet) diff --git a/Adyen/Checkout/Models/CreateCheckoutSessionRequest.cs b/Adyen/Checkout/Models/CreateCheckoutSessionRequest.cs index 60022b472..43666be9b 100644 --- a/Adyen/Checkout/Models/CreateCheckoutSessionRequest.cs +++ b/Adyen/Checkout/Models/CreateCheckoutSessionRequest.cs @@ -150,7 +150,7 @@ private ChannelEnum(string? value) if (value == ChannelEnum.Web) return "Web"; - return null; + return value.Value; } /// @@ -287,7 +287,7 @@ private ModeEnum(string? value) if (value == ModeEnum.Hosted) return "hosted"; - return null; + return value.Value; } /// @@ -433,7 +433,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -588,7 +588,7 @@ private ShopperInteractionEnum(string? value) if (value == ShopperInteractionEnum.POS) return "POS"; - return null; + return value.Value; } /// @@ -734,7 +734,7 @@ private StoreFiltrationModeEnum(string? value) if (value == StoreFiltrationModeEnum.SkipFilter) return "skipFilter"; - return null; + return value.Value; } /// @@ -880,7 +880,7 @@ private StorePaymentMethodModeEnum(string? value) if (value == StorePaymentMethodModeEnum.Enabled) return "enabled"; - return null; + return value.Value; } /// @@ -1878,7 +1878,7 @@ public override CreateCheckoutSessionRequest Read(ref Utf8JsonReader utf8JsonRea break; case "channel": string? channelRawValue = utf8JsonReader.GetString(); - channel = new Option(CreateCheckoutSessionRequest.ChannelEnum.FromStringOrDefault(channelRawValue)); + channel = new Option(CreateCheckoutSessionRequest.ChannelEnum.FromStringOrDefault(channelRawValue) ?? (CreateCheckoutSessionRequest.ChannelEnum)channelRawValue); break; case "company": company = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1933,7 +1933,7 @@ public override CreateCheckoutSessionRequest Read(ref Utf8JsonReader utf8JsonRea break; case "mode": string? modeRawValue = utf8JsonReader.GetString(); - mode = new Option(CreateCheckoutSessionRequest.ModeEnum.FromStringOrDefault(modeRawValue)); + mode = new Option(CreateCheckoutSessionRequest.ModeEnum.FromStringOrDefault(modeRawValue) ?? (CreateCheckoutSessionRequest.ModeEnum)modeRawValue); break; case "mpiData": mpiData = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1949,7 +1949,7 @@ public override CreateCheckoutSessionRequest Read(ref Utf8JsonReader utf8JsonRea break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(CreateCheckoutSessionRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(CreateCheckoutSessionRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (CreateCheckoutSessionRequest.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "redirectFromIssuerMethod": redirectFromIssuerMethod = new Option(utf8JsonReader.GetString()!); @@ -1968,7 +1968,7 @@ public override CreateCheckoutSessionRequest Read(ref Utf8JsonReader utf8JsonRea break; case "shopperInteraction": string? shopperInteractionRawValue = utf8JsonReader.GetString(); - shopperInteraction = new Option(CreateCheckoutSessionRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue)); + shopperInteraction = new Option(CreateCheckoutSessionRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue) ?? (CreateCheckoutSessionRequest.ShopperInteractionEnum)shopperInteractionRawValue); break; case "shopperLocale": shopperLocale = new Option(utf8JsonReader.GetString()!); @@ -2002,14 +2002,14 @@ public override CreateCheckoutSessionRequest Read(ref Utf8JsonReader utf8JsonRea break; case "storeFiltrationMode": string? storeFiltrationModeRawValue = utf8JsonReader.GetString(); - storeFiltrationMode = new Option(CreateCheckoutSessionRequest.StoreFiltrationModeEnum.FromStringOrDefault(storeFiltrationModeRawValue)); + storeFiltrationMode = new Option(CreateCheckoutSessionRequest.StoreFiltrationModeEnum.FromStringOrDefault(storeFiltrationModeRawValue) ?? (CreateCheckoutSessionRequest.StoreFiltrationModeEnum)storeFiltrationModeRawValue); break; case "storePaymentMethod": storePaymentMethod = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (bool?)null : utf8JsonReader.GetBoolean()); break; case "storePaymentMethodMode": string? storePaymentMethodModeRawValue = utf8JsonReader.GetString(); - storePaymentMethodMode = new Option(CreateCheckoutSessionRequest.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue)); + storePaymentMethodMode = new Option(CreateCheckoutSessionRequest.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue) ?? (CreateCheckoutSessionRequest.StorePaymentMethodModeEnum)storePaymentMethodModeRawValue); break; case "telephoneNumber": telephoneNumber = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/CreateCheckoutSessionResponse.cs b/Adyen/Checkout/Models/CreateCheckoutSessionResponse.cs index 788421af5..eb878be6f 100644 --- a/Adyen/Checkout/Models/CreateCheckoutSessionResponse.cs +++ b/Adyen/Checkout/Models/CreateCheckoutSessionResponse.cs @@ -150,7 +150,7 @@ private ChannelEnum(string? value) if (value == ChannelEnum.Web) return "Web"; - return null; + return value.Value; } /// @@ -287,7 +287,7 @@ private ModeEnum(string? value) if (value == ModeEnum.Hosted) return "hosted"; - return null; + return value.Value; } /// @@ -433,7 +433,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -588,7 +588,7 @@ private ShopperInteractionEnum(string? value) if (value == ShopperInteractionEnum.POS) return "POS"; - return null; + return value.Value; } /// @@ -734,7 +734,7 @@ private StoreFiltrationModeEnum(string? value) if (value == StoreFiltrationModeEnum.SkipFilter) return "skipFilter"; - return null; + return value.Value; } /// @@ -880,7 +880,7 @@ private StorePaymentMethodModeEnum(string? value) if (value == StorePaymentMethodModeEnum.Enabled) return "enabled"; - return null; + return value.Value; } /// @@ -1919,7 +1919,7 @@ public override CreateCheckoutSessionResponse Read(ref Utf8JsonReader utf8JsonRe break; case "channel": string? channelRawValue = utf8JsonReader.GetString(); - channel = new Option(CreateCheckoutSessionResponse.ChannelEnum.FromStringOrDefault(channelRawValue)); + channel = new Option(CreateCheckoutSessionResponse.ChannelEnum.FromStringOrDefault(channelRawValue) ?? (CreateCheckoutSessionResponse.ChannelEnum)channelRawValue); break; case "company": company = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1971,7 +1971,7 @@ public override CreateCheckoutSessionResponse Read(ref Utf8JsonReader utf8JsonRe break; case "mode": string? modeRawValue = utf8JsonReader.GetString(); - mode = new Option(CreateCheckoutSessionResponse.ModeEnum.FromStringOrDefault(modeRawValue)); + mode = new Option(CreateCheckoutSessionResponse.ModeEnum.FromStringOrDefault(modeRawValue) ?? (CreateCheckoutSessionResponse.ModeEnum)modeRawValue); break; case "mpiData": mpiData = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1987,7 +1987,7 @@ public override CreateCheckoutSessionResponse Read(ref Utf8JsonReader utf8JsonRe break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(CreateCheckoutSessionResponse.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(CreateCheckoutSessionResponse.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (CreateCheckoutSessionResponse.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "redirectFromIssuerMethod": redirectFromIssuerMethod = new Option(utf8JsonReader.GetString()!); @@ -2009,7 +2009,7 @@ public override CreateCheckoutSessionResponse Read(ref Utf8JsonReader utf8JsonRe break; case "shopperInteraction": string? shopperInteractionRawValue = utf8JsonReader.GetString(); - shopperInteraction = new Option(CreateCheckoutSessionResponse.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue)); + shopperInteraction = new Option(CreateCheckoutSessionResponse.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue) ?? (CreateCheckoutSessionResponse.ShopperInteractionEnum)shopperInteractionRawValue); break; case "shopperLocale": shopperLocale = new Option(utf8JsonReader.GetString()!); @@ -2043,14 +2043,14 @@ public override CreateCheckoutSessionResponse Read(ref Utf8JsonReader utf8JsonRe break; case "storeFiltrationMode": string? storeFiltrationModeRawValue = utf8JsonReader.GetString(); - storeFiltrationMode = new Option(CreateCheckoutSessionResponse.StoreFiltrationModeEnum.FromStringOrDefault(storeFiltrationModeRawValue)); + storeFiltrationMode = new Option(CreateCheckoutSessionResponse.StoreFiltrationModeEnum.FromStringOrDefault(storeFiltrationModeRawValue) ?? (CreateCheckoutSessionResponse.StoreFiltrationModeEnum)storeFiltrationModeRawValue); break; case "storePaymentMethod": storePaymentMethod = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (bool?)null : utf8JsonReader.GetBoolean()); break; case "storePaymentMethodMode": string? storePaymentMethodModeRawValue = utf8JsonReader.GetString(); - storePaymentMethodMode = new Option(CreateCheckoutSessionResponse.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue)); + storePaymentMethodMode = new Option(CreateCheckoutSessionResponse.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue) ?? (CreateCheckoutSessionResponse.StorePaymentMethodModeEnum)storePaymentMethodModeRawValue); break; case "telephoneNumber": telephoneNumber = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/CreateOrderResponse.cs b/Adyen/Checkout/Models/CreateOrderResponse.cs index e8283a0e7..591b93aa8 100644 --- a/Adyen/Checkout/Models/CreateOrderResponse.cs +++ b/Adyen/Checkout/Models/CreateOrderResponse.cs @@ -131,7 +131,7 @@ private ResultCodeEnum(string? value) if (value == ResultCodeEnum.Success) return "Success"; - return null; + return value.Value; } /// @@ -345,7 +345,7 @@ public override CreateOrderResponse Read(ref Utf8JsonReader utf8JsonReader, Type break; case "resultCode": string? resultCodeRawValue = utf8JsonReader.GetString(); - resultCode = new Option(CreateOrderResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue)); + resultCode = new Option(CreateOrderResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue) ?? (CreateOrderResponse.ResultCodeEnum)resultCodeRawValue); break; case "additionalData": additionalData = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -388,7 +388,7 @@ public override CreateOrderResponse Read(ref Utf8JsonReader utf8JsonReader, Type createOrderResponse.ExpiresAt = expiresAt.Value!; createOrderResponse.OrderData = orderData.Value!; createOrderResponse.RemainingAmount = remainingAmount.Value!; - createOrderResponse.ResultCode = resultCode.Value!.Value; + createOrderResponse.ResultCode = resultCode.Value!; if (additionalData.IsSet) createOrderResponse.AdditionalData = additionalData.Value; if (fraudResult.IsSet) diff --git a/Adyen/Checkout/Models/DeliveryMethod.cs b/Adyen/Checkout/Models/DeliveryMethod.cs index cc12e7438..b3d75b47a 100644 --- a/Adyen/Checkout/Models/DeliveryMethod.cs +++ b/Adyen/Checkout/Models/DeliveryMethod.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Shipping) return "Shipping"; - return null; + return value.Value; } /// @@ -302,7 +302,7 @@ public override DeliveryMethod Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(DeliveryMethod.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(DeliveryMethod.TypeEnum.FromStringOrDefault(typeRawValue) ?? (DeliveryMethod.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/DeviceRenderOptions.cs b/Adyen/Checkout/Models/DeviceRenderOptions.cs index d62c49f5d..ea5b1b93e 100644 --- a/Adyen/Checkout/Models/DeviceRenderOptions.cs +++ b/Adyen/Checkout/Models/DeviceRenderOptions.cs @@ -150,7 +150,7 @@ private SdkInterfaceEnum(string? value) if (value == SdkInterfaceEnum.Both) return "both"; - return null; + return value.Value; } /// @@ -313,7 +313,7 @@ private SdkUiTypeEnum(string? value) if (value == SdkUiTypeEnum.Text) return "text"; - return null; + return value.Value; } /// @@ -411,7 +411,7 @@ public override DeviceRenderOptions Read(ref Utf8JsonReader utf8JsonReader, Type { case "sdkInterface": string? sdkInterfaceRawValue = utf8JsonReader.GetString(); - sdkInterface = new Option(DeviceRenderOptions.SdkInterfaceEnum.FromStringOrDefault(sdkInterfaceRawValue)); + sdkInterface = new Option(DeviceRenderOptions.SdkInterfaceEnum.FromStringOrDefault(sdkInterfaceRawValue) ?? (DeviceRenderOptions.SdkInterfaceEnum)sdkInterfaceRawValue); break; case "sdkUiType": sdkUiType = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/Checkout/Models/DirectDebitAuDetails.cs b/Adyen/Checkout/Models/DirectDebitAuDetails.cs index 47ecf55e7..b40f5c4d5 100644 --- a/Adyen/Checkout/Models/DirectDebitAuDetails.cs +++ b/Adyen/Checkout/Models/DirectDebitAuDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.DirectdebitAU) return "directdebit_AU"; - return null; + return value.Value; } /// @@ -344,7 +344,7 @@ public override DirectDebitAuDetails Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(DirectDebitAuDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(DirectDebitAuDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (DirectDebitAuDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/DokuDetails.cs b/Adyen/Checkout/Models/DokuDetails.cs index 7c55b0091..136d51581 100644 --- a/Adyen/Checkout/Models/DokuDetails.cs +++ b/Adyen/Checkout/Models/DokuDetails.cs @@ -221,7 +221,7 @@ private TypeEnum(string? value) if (value == TypeEnum.DokuOvo) return "doku_ovo"; - return null; + return value.Value; } /// @@ -378,7 +378,7 @@ public override DokuDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(DokuDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(DokuDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (DokuDetails.TypeEnum)typeRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -408,7 +408,7 @@ public override DokuDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToC dokuDetails.FirstName = firstName.Value!; dokuDetails.LastName = lastName.Value!; dokuDetails.ShopperEmail = shopperEmail.Value!; - dokuDetails.Type = type.Value!.Value; + dokuDetails.Type = type.Value!; if (checkoutAttemptId.IsSet) dokuDetails.CheckoutAttemptId = checkoutAttemptId.Value; if (sdkData.IsSet) diff --git a/Adyen/Checkout/Models/DonationPaymentMethod.cs b/Adyen/Checkout/Models/DonationPaymentMethod.cs index 22ce3f4e6..588630a6d 100644 --- a/Adyen/Checkout/Models/DonationPaymentMethod.cs +++ b/Adyen/Checkout/Models/DonationPaymentMethod.cs @@ -211,19 +211,19 @@ public override DonationPaymentMethod Read(ref Utf8JsonReader utf8JsonReader, Ty } } - if (applePayDonations?.Type != null) + if (applePayDonations?.Type != null && ApplePayDonations.TypeEnum.FromStringOrDefault((string?)applePayDonations.Type) != null) return new DonationPaymentMethod(applePayDonations); - if (cardDonations?.Type != null) + if (cardDonations?.Type != null && CardDonations.TypeEnum.FromStringOrDefault((string?)cardDonations.Type) != null) return new DonationPaymentMethod(cardDonations); - if (googlePayDonations?.Type != null) + if (googlePayDonations?.Type != null && GooglePayDonations.TypeEnum.FromStringOrDefault((string?)googlePayDonations.Type) != null) return new DonationPaymentMethod(googlePayDonations); - if (idealDonations?.Type != null) + if (idealDonations?.Type != null && IdealDonations.TypeEnum.FromStringOrDefault((string?)idealDonations.Type) != null) return new DonationPaymentMethod(idealDonations); - if (payWithGoogleDonations?.Type != null) + if (payWithGoogleDonations?.Type != null && PayWithGoogleDonations.TypeEnum.FromStringOrDefault((string?)payWithGoogleDonations.Type) != null) return new DonationPaymentMethod(payWithGoogleDonations); throw new JsonException(); diff --git a/Adyen/Checkout/Models/DonationPaymentRequest.cs b/Adyen/Checkout/Models/DonationPaymentRequest.cs index 4ff968589..0eeb58ab4 100644 --- a/Adyen/Checkout/Models/DonationPaymentRequest.cs +++ b/Adyen/Checkout/Models/DonationPaymentRequest.cs @@ -149,7 +149,7 @@ private ChannelEnum(string? value) if (value == ChannelEnum.Web) return "Web"; - return null; + return value.Value; } /// @@ -295,7 +295,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -450,7 +450,7 @@ private ShopperInteractionEnum(string? value) if (value == ShopperInteractionEnum.POS) return "POS"; - return null; + return value.Value; } /// @@ -1194,7 +1194,7 @@ public override DonationPaymentRequest Read(ref Utf8JsonReader utf8JsonReader, T break; case "channel": string? channelRawValue = utf8JsonReader.GetString(); - channel = new Option(DonationPaymentRequest.ChannelEnum.FromStringOrDefault(channelRawValue)); + channel = new Option(DonationPaymentRequest.ChannelEnum.FromStringOrDefault(channelRawValue) ?? (DonationPaymentRequest.ChannelEnum)channelRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -1249,7 +1249,7 @@ public override DonationPaymentRequest Read(ref Utf8JsonReader utf8JsonReader, T break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(DonationPaymentRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(DonationPaymentRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (DonationPaymentRequest.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "redirectFromIssuerMethod": redirectFromIssuerMethod = new Option(utf8JsonReader.GetString()!); @@ -1268,7 +1268,7 @@ public override DonationPaymentRequest Read(ref Utf8JsonReader utf8JsonReader, T break; case "shopperInteraction": string? shopperInteractionRawValue = utf8JsonReader.GetString(); - shopperInteraction = new Option(DonationPaymentRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue)); + shopperInteraction = new Option(DonationPaymentRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue) ?? (DonationPaymentRequest.ShopperInteractionEnum)shopperInteractionRawValue); break; case "shopperLocale": shopperLocale = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/DonationPaymentResponse.cs b/Adyen/Checkout/Models/DonationPaymentResponse.cs index 91ba6e9b7..514551edf 100644 --- a/Adyen/Checkout/Models/DonationPaymentResponse.cs +++ b/Adyen/Checkout/Models/DonationPaymentResponse.cs @@ -149,7 +149,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Refused) return "refused"; - return null; + return value.Value; } /// @@ -357,7 +357,7 @@ public override DonationPaymentResponse Read(ref Utf8JsonReader utf8JsonReader, break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(DonationPaymentResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(DonationPaymentResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (DonationPaymentResponse.StatusEnum)statusRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/DragonpayDetails.cs b/Adyen/Checkout/Models/DragonpayDetails.cs index 6de7cd5de..775a62cf6 100644 --- a/Adyen/Checkout/Models/DragonpayDetails.cs +++ b/Adyen/Checkout/Models/DragonpayDetails.cs @@ -158,7 +158,7 @@ private TypeEnum(string? value) if (value == TypeEnum.DragonpayOtcPhilippines) return "dragonpay_otc_philippines"; - return null; + return value.Value; } /// @@ -307,7 +307,7 @@ public override DragonpayDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(DragonpayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(DragonpayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (DragonpayDetails.TypeEnum)typeRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -332,7 +332,7 @@ public override DragonpayDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty var dragonpayDetails = new DragonpayDetails(); dragonpayDetails.Issuer = issuer.Value!; - dragonpayDetails.Type = type.Value!.Value; + dragonpayDetails.Type = type.Value!; if (checkoutAttemptId.IsSet) dragonpayDetails.CheckoutAttemptId = checkoutAttemptId.Value; if (sdkData.IsSet) diff --git a/Adyen/Checkout/Models/EBankingFinlandDetails.cs b/Adyen/Checkout/Models/EBankingFinlandDetails.cs index 65d2e1e0c..adc10b2c0 100644 --- a/Adyen/Checkout/Models/EBankingFinlandDetails.cs +++ b/Adyen/Checkout/Models/EBankingFinlandDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.EbankingFI) return "ebanking_FI"; - return null; + return value.Value; } /// @@ -277,7 +277,7 @@ public override EBankingFinlandDetails Read(ref Utf8JsonReader utf8JsonReader, T break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(EBankingFinlandDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(EBankingFinlandDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (EBankingFinlandDetails.TypeEnum)typeRawValue); break; default: break; @@ -295,7 +295,7 @@ public override EBankingFinlandDetails Read(ref Utf8JsonReader utf8JsonReader, T eBankingFinlandDetails.Issuer = issuer.Value; if (sdkData.IsSet) eBankingFinlandDetails.SdkData = sdkData.Value; - eBankingFinlandDetails.Type = type.Value!.Value; + eBankingFinlandDetails.Type = type.Value!; return eBankingFinlandDetails; } diff --git a/Adyen/Checkout/Models/EcontextVoucherDetails.cs b/Adyen/Checkout/Models/EcontextVoucherDetails.cs index 708da47c1..80115d741 100644 --- a/Adyen/Checkout/Models/EcontextVoucherDetails.cs +++ b/Adyen/Checkout/Models/EcontextVoucherDetails.cs @@ -167,7 +167,7 @@ private TypeEnum(string? value) if (value == TypeEnum.EcontextAtm) return "econtext_atm"; - return null; + return value.Value; } /// @@ -336,7 +336,7 @@ public override EcontextVoucherDetails Read(ref Utf8JsonReader utf8JsonReader, T break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(EcontextVoucherDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(EcontextVoucherDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (EcontextVoucherDetails.TypeEnum)typeRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -370,7 +370,7 @@ public override EcontextVoucherDetails Read(ref Utf8JsonReader utf8JsonReader, T econtextVoucherDetails.LastName = lastName.Value!; econtextVoucherDetails.ShopperEmail = shopperEmail.Value!; econtextVoucherDetails.TelephoneNumber = telephoneNumber.Value!; - econtextVoucherDetails.Type = type.Value!.Value; + econtextVoucherDetails.Type = type.Value!; if (checkoutAttemptId.IsSet) econtextVoucherDetails.CheckoutAttemptId = checkoutAttemptId.Value; if (sdkData.IsSet) diff --git a/Adyen/Checkout/Models/EftDetails.cs b/Adyen/Checkout/Models/EftDetails.cs index 3ef64e270..25740a56c 100644 --- a/Adyen/Checkout/Models/EftDetails.cs +++ b/Adyen/Checkout/Models/EftDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.EftDirectdebitCA) return "eft_directdebit_CA"; - return null; + return value.Value; } /// @@ -382,7 +382,7 @@ public override EftDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToCo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(EftDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(EftDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (EftDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/ExternalTokenDetails.cs b/Adyen/Checkout/Models/ExternalTokenDetails.cs index 0b0701aaf..d264c300a 100644 --- a/Adyen/Checkout/Models/ExternalTokenDetails.cs +++ b/Adyen/Checkout/Models/ExternalTokenDetails.cs @@ -131,7 +131,7 @@ private SubtypeEnum(string? value) if (value == SubtypeEnum.Hilton) return "hilton"; - return null; + return value.Value; } /// @@ -252,7 +252,7 @@ private TypeEnum(string? value) if (value == TypeEnum.ExternalToken) return "externalToken"; - return null; + return value.Value; } /// @@ -435,7 +435,7 @@ public override ExternalTokenDetails Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "subtype": string? subtypeRawValue = utf8JsonReader.GetString(); - subtype = new Option(ExternalTokenDetails.SubtypeEnum.FromStringOrDefault(subtypeRawValue)); + subtype = new Option(ExternalTokenDetails.SubtypeEnum.FromStringOrDefault(subtypeRawValue) ?? (ExternalTokenDetails.SubtypeEnum)subtypeRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -454,7 +454,7 @@ public override ExternalTokenDetails Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(ExternalTokenDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(ExternalTokenDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (ExternalTokenDetails.TypeEnum)typeRawValue); break; default: break; @@ -473,7 +473,7 @@ public override ExternalTokenDetails Read(ref Utf8JsonReader utf8JsonReader, Typ var externalTokenDetails = new ExternalTokenDetails(); externalTokenDetails.StoredPaymentMethodId = storedPaymentMethodId.Value!; - externalTokenDetails.Subtype = subtype.Value!.Value; + externalTokenDetails.Subtype = subtype.Value!; if (checkoutAttemptId.IsSet) externalTokenDetails.CheckoutAttemptId = checkoutAttemptId.Value; if (expiryMonth.IsSet) @@ -484,7 +484,7 @@ public override ExternalTokenDetails Read(ref Utf8JsonReader utf8JsonReader, Typ externalTokenDetails.HolderName = holderName.Value; if (number.IsSet) externalTokenDetails.Number = number.Value; - externalTokenDetails.Type = type.Value!.Value; + externalTokenDetails.Type = type.Value!; return externalTokenDetails; } diff --git a/Adyen/Checkout/Models/FastlaneDetails.cs b/Adyen/Checkout/Models/FastlaneDetails.cs index 8d05811e1..6728bbc97 100644 --- a/Adyen/Checkout/Models/FastlaneDetails.cs +++ b/Adyen/Checkout/Models/FastlaneDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Fastlane) return "fastlane"; - return null; + return value.Value; } /// @@ -310,7 +310,7 @@ public override FastlaneDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(FastlaneDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(FastlaneDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (FastlaneDetails.TypeEnum)typeRawValue); break; default: break; @@ -334,7 +334,7 @@ public override FastlaneDetails Read(ref Utf8JsonReader utf8JsonReader, Type typ fastlaneDetails.SdkData = sdkData.Value; if (storedPaymentMethodId.IsSet) fastlaneDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - fastlaneDetails.Type = type.Value!.Value; + fastlaneDetails.Type = type.Value!; return fastlaneDetails; } diff --git a/Adyen/Checkout/Models/FundRecipient.cs b/Adyen/Checkout/Models/FundRecipient.cs index a7f8f080d..9d31d681c 100644 --- a/Adyen/Checkout/Models/FundRecipient.cs +++ b/Adyen/Checkout/Models/FundRecipient.cs @@ -167,7 +167,7 @@ private WalletPurposeEnum(string? value) if (value == WalletPurposeEnum.UnidentifiedBoleto) return "unidentifiedBoleto"; - return null; + return value.Value; } /// @@ -468,7 +468,7 @@ public override FundRecipient Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "walletPurpose": string? walletPurposeRawValue = utf8JsonReader.GetString(); - walletPurpose = new Option(FundRecipient.WalletPurposeEnum.FromStringOrDefault(walletPurposeRawValue)); + walletPurpose = new Option(FundRecipient.WalletPurposeEnum.FromStringOrDefault(walletPurposeRawValue) ?? (FundRecipient.WalletPurposeEnum)walletPurposeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/GenericIssuerPaymentMethodDetails.cs b/Adyen/Checkout/Models/GenericIssuerPaymentMethodDetails.cs index 4f89702f7..ba59ceaa7 100644 --- a/Adyen/Checkout/Models/GenericIssuerPaymentMethodDetails.cs +++ b/Adyen/Checkout/Models/GenericIssuerPaymentMethodDetails.cs @@ -167,7 +167,7 @@ private TypeEnum(string? value) if (value == TypeEnum.OnlinebankingIN) return "onlinebanking_IN"; - return null; + return value.Value; } /// @@ -334,7 +334,7 @@ public override GenericIssuerPaymentMethodDetails Read(ref Utf8JsonReader utf8Js break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(GenericIssuerPaymentMethodDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(GenericIssuerPaymentMethodDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (GenericIssuerPaymentMethodDetails.TypeEnum)typeRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -362,7 +362,7 @@ public override GenericIssuerPaymentMethodDetails Read(ref Utf8JsonReader utf8Js var genericIssuerPaymentMethodDetails = new GenericIssuerPaymentMethodDetails(); genericIssuerPaymentMethodDetails.Issuer = issuer.Value!; - genericIssuerPaymentMethodDetails.Type = type.Value!.Value; + genericIssuerPaymentMethodDetails.Type = type.Value!; if (checkoutAttemptId.IsSet) genericIssuerPaymentMethodDetails.CheckoutAttemptId = checkoutAttemptId.Value; if (recurringDetailReference.IsSet) diff --git a/Adyen/Checkout/Models/GooglePayDetails.cs b/Adyen/Checkout/Models/GooglePayDetails.cs index 04a3e0e9c..b50265610 100644 --- a/Adyen/Checkout/Models/GooglePayDetails.cs +++ b/Adyen/Checkout/Models/GooglePayDetails.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Googlepay) return "googlepay"; - return null; + return value.Value; } /// @@ -489,7 +489,7 @@ public override GooglePayDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(GooglePayDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(GooglePayDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (GooglePayDetails.FundingSourceEnum)fundingSourceRawValue); break; case "googlePayCardNetwork": googlePayCardNetwork = new Option(utf8JsonReader.GetString()!); @@ -508,7 +508,7 @@ public override GooglePayDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(GooglePayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(GooglePayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (GooglePayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/GooglePayDonations.cs b/Adyen/Checkout/Models/GooglePayDonations.cs index 725bb4fb7..a2a3e65db 100644 --- a/Adyen/Checkout/Models/GooglePayDonations.cs +++ b/Adyen/Checkout/Models/GooglePayDonations.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Googlepay) return "googlepay"; - return null; + return value.Value; } /// @@ -489,7 +489,7 @@ public override GooglePayDonations Read(ref Utf8JsonReader utf8JsonReader, Type break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(GooglePayDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(GooglePayDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (GooglePayDonations.FundingSourceEnum)fundingSourceRawValue); break; case "googlePayCardNetwork": googlePayCardNetwork = new Option(utf8JsonReader.GetString()!); @@ -508,7 +508,7 @@ public override GooglePayDonations Read(ref Utf8JsonReader utf8JsonReader, Type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(GooglePayDonations.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(GooglePayDonations.TypeEnum.FromStringOrDefault(typeRawValue) ?? (GooglePayDonations.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/IdealDetails.cs b/Adyen/Checkout/Models/IdealDetails.cs index cfca37827..325c2dc07 100644 --- a/Adyen/Checkout/Models/IdealDetails.cs +++ b/Adyen/Checkout/Models/IdealDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Ideal) return "ideal"; - return null; + return value.Value; } /// @@ -325,7 +325,7 @@ public override IdealDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(IdealDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(IdealDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (IdealDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/IdealDonations.cs b/Adyen/Checkout/Models/IdealDonations.cs index 4ef80108b..4cc6753e3 100644 --- a/Adyen/Checkout/Models/IdealDonations.cs +++ b/Adyen/Checkout/Models/IdealDonations.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Ideal) return "ideal"; - return null; + return value.Value; } /// @@ -325,7 +325,7 @@ public override IdealDonations Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(IdealDonations.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(IdealDonations.TypeEnum.FromStringOrDefault(typeRawValue) ?? (IdealDonations.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/InstallmentOption.cs b/Adyen/Checkout/Models/InstallmentOption.cs index 5bcaf9b41..050ad453c 100644 --- a/Adyen/Checkout/Models/InstallmentOption.cs +++ b/Adyen/Checkout/Models/InstallmentOption.cs @@ -211,7 +211,7 @@ private PlansEnum(string? value) if (value == PlansEnum.WithInterest) return "with_interest"; - return null; + return value.Value; } /// diff --git a/Adyen/Checkout/Models/Installments.cs b/Adyen/Checkout/Models/Installments.cs index ffc236f77..34465cddc 100644 --- a/Adyen/Checkout/Models/Installments.cs +++ b/Adyen/Checkout/Models/Installments.cs @@ -212,7 +212,7 @@ private PlanEnum(string? value) if (value == PlanEnum.WithInterest) return "with_interest"; - return null; + return value.Value; } /// @@ -339,7 +339,7 @@ public override Installments Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "plan": string? planRawValue = utf8JsonReader.GetString(); - plan = new Option(Installments.PlanEnum.FromStringOrDefault(planRawValue)); + plan = new Option(Installments.PlanEnum.FromStringOrDefault(planRawValue) ?? (Installments.PlanEnum)planRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/KlarnaDetails.cs b/Adyen/Checkout/Models/KlarnaDetails.cs index 97d06bc95..bc3ab03b9 100644 --- a/Adyen/Checkout/Models/KlarnaDetails.cs +++ b/Adyen/Checkout/Models/KlarnaDetails.cs @@ -185,7 +185,7 @@ private TypeEnum(string? value) if (value == TypeEnum.KlarnaB2b) return "klarna_b2b"; - return null; + return value.Value; } /// @@ -428,7 +428,7 @@ public override KlarnaDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(KlarnaDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(KlarnaDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (KlarnaDetails.TypeEnum)typeRawValue); break; default: break; @@ -456,7 +456,7 @@ public override KlarnaDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT klarnaDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; if (subtype.IsSet) klarnaDetails.Subtype = subtype.Value; - klarnaDetails.Type = type.Value!.Value; + klarnaDetails.Type = type.Value!; return klarnaDetails; } diff --git a/Adyen/Checkout/Models/KlarnaNetworkDetails.cs b/Adyen/Checkout/Models/KlarnaNetworkDetails.cs index d37de5367..e3be21ddf 100644 --- a/Adyen/Checkout/Models/KlarnaNetworkDetails.cs +++ b/Adyen/Checkout/Models/KlarnaNetworkDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.KlarnaNetwork) return "klarna_network"; - return null; + return value.Value; } /// @@ -336,7 +336,7 @@ public override KlarnaNetworkDetails Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(KlarnaNetworkDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(KlarnaNetworkDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (KlarnaNetworkDetails.TypeEnum)typeRawValue); break; default: break; @@ -360,7 +360,7 @@ public override KlarnaNetworkDetails Read(ref Utf8JsonReader utf8JsonReader, Typ klarnaNetworkDetails.SdkData = sdkData.Value; if (storedPaymentMethodId.IsSet) klarnaNetworkDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - klarnaNetworkDetails.Type = type.Value!.Value; + klarnaNetworkDetails.Type = type.Value!; return klarnaNetworkDetails; } diff --git a/Adyen/Checkout/Models/Mandate.cs b/Adyen/Checkout/Models/Mandate.cs index e8766552c..e5b79a6b6 100644 --- a/Adyen/Checkout/Models/Mandate.cs +++ b/Adyen/Checkout/Models/Mandate.cs @@ -194,7 +194,7 @@ private FrequencyEnum(string? value) if (value == FrequencyEnum.Yearly) return "yearly"; - return null; + return value.Value; } /// @@ -324,7 +324,7 @@ private AmountRuleEnum(string? value) if (value == AmountRuleEnum.Exact) return "exact"; - return null; + return value.Value; } /// @@ -470,7 +470,7 @@ private BillingAttemptsRuleEnum(string? value) if (value == BillingAttemptsRuleEnum.After) return "after"; - return null; + return value.Value; } /// @@ -658,15 +658,15 @@ public override Mandate Read(ref Utf8JsonReader utf8JsonReader, Type typeToConve break; case "frequency": string? frequencyRawValue = utf8JsonReader.GetString(); - frequency = new Option(Mandate.FrequencyEnum.FromStringOrDefault(frequencyRawValue)); + frequency = new Option(Mandate.FrequencyEnum.FromStringOrDefault(frequencyRawValue) ?? (Mandate.FrequencyEnum)frequencyRawValue); break; case "amountRule": string? amountRuleRawValue = utf8JsonReader.GetString(); - amountRule = new Option(Mandate.AmountRuleEnum.FromStringOrDefault(amountRuleRawValue)); + amountRule = new Option(Mandate.AmountRuleEnum.FromStringOrDefault(amountRuleRawValue) ?? (Mandate.AmountRuleEnum)amountRuleRawValue); break; case "billingAttemptsRule": string? billingAttemptsRuleRawValue = utf8JsonReader.GetString(); - billingAttemptsRule = new Option(Mandate.BillingAttemptsRuleEnum.FromStringOrDefault(billingAttemptsRuleRawValue)); + billingAttemptsRule = new Option(Mandate.BillingAttemptsRuleEnum.FromStringOrDefault(billingAttemptsRuleRawValue) ?? (Mandate.BillingAttemptsRuleEnum)billingAttemptsRuleRawValue); break; case "billingDay": billingDay = new Option(utf8JsonReader.GetString()!); @@ -698,7 +698,7 @@ public override Mandate Read(ref Utf8JsonReader utf8JsonReader, Type typeToConve var mandate = new Mandate(); mandate.Amount = amount.Value!; mandate.EndsAt = endsAt.Value!; - mandate.Frequency = frequency.Value!.Value; + mandate.Frequency = frequency.Value!; if (amountRule.IsSet) mandate.AmountRule = amountRule.Value; if (billingAttemptsRule.IsSet) diff --git a/Adyen/Checkout/Models/MasterpassDetails.cs b/Adyen/Checkout/Models/MasterpassDetails.cs index d6acbbf5f..d2a9400c3 100644 --- a/Adyen/Checkout/Models/MasterpassDetails.cs +++ b/Adyen/Checkout/Models/MasterpassDetails.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Masterpass) return "masterpass"; - return null; + return value.Value; } /// @@ -423,14 +423,14 @@ public override MasterpassDetails Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(MasterpassDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(MasterpassDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (MasterpassDetails.FundingSourceEnum)fundingSourceRawValue); break; case "sdkData": sdkData = new Option(utf8JsonReader.GetString()!); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(MasterpassDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(MasterpassDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (MasterpassDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/MbwayDetails.cs b/Adyen/Checkout/Models/MbwayDetails.cs index 5ef74f6cb..5f157e075 100644 --- a/Adyen/Checkout/Models/MbwayDetails.cs +++ b/Adyen/Checkout/Models/MbwayDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Mbway) return "mbway"; - return null; + return value.Value; } /// @@ -288,7 +288,7 @@ public override MbwayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(MbwayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(MbwayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (MbwayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/MerchantRiskIndicator.cs b/Adyen/Checkout/Models/MerchantRiskIndicator.cs index 9c4e545bc..00bd2f8a0 100644 --- a/Adyen/Checkout/Models/MerchantRiskIndicator.cs +++ b/Adyen/Checkout/Models/MerchantRiskIndicator.cs @@ -185,7 +185,7 @@ private DeliveryAddressIndicatorEnum(string? value) if (value == DeliveryAddressIndicatorEnum.Other) return "other"; - return null; + return value.Value; } /// @@ -340,7 +340,7 @@ private DeliveryTimeframeEnum(string? value) if (value == DeliveryTimeframeEnum.TwoOrMoreDaysShipping) return "twoOrMoreDaysShipping"; - return null; + return value.Value; } /// @@ -639,7 +639,7 @@ public override MerchantRiskIndicator Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "deliveryAddressIndicator": string? deliveryAddressIndicatorRawValue = utf8JsonReader.GetString(); - deliveryAddressIndicator = new Option(MerchantRiskIndicator.DeliveryAddressIndicatorEnum.FromStringOrDefault(deliveryAddressIndicatorRawValue)); + deliveryAddressIndicator = new Option(MerchantRiskIndicator.DeliveryAddressIndicatorEnum.FromStringOrDefault(deliveryAddressIndicatorRawValue) ?? (MerchantRiskIndicator.DeliveryAddressIndicatorEnum)deliveryAddressIndicatorRawValue); break; case "deliveryEmail": deliveryEmail = new Option(utf8JsonReader.GetString()!); @@ -649,7 +649,7 @@ public override MerchantRiskIndicator Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "deliveryTimeframe": string? deliveryTimeframeRawValue = utf8JsonReader.GetString(); - deliveryTimeframe = new Option(MerchantRiskIndicator.DeliveryTimeframeEnum.FromStringOrDefault(deliveryTimeframeRawValue)); + deliveryTimeframe = new Option(MerchantRiskIndicator.DeliveryTimeframeEnum.FromStringOrDefault(deliveryTimeframeRawValue) ?? (MerchantRiskIndicator.DeliveryTimeframeEnum)deliveryTimeframeRawValue); break; case "giftCardAmount": giftCardAmount = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/Checkout/Models/MobilePayDetails.cs b/Adyen/Checkout/Models/MobilePayDetails.cs index dc81aa949..55205010a 100644 --- a/Adyen/Checkout/Models/MobilePayDetails.cs +++ b/Adyen/Checkout/Models/MobilePayDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Mobilepay) return "mobilepay"; - return null; + return value.Value; } /// @@ -266,7 +266,7 @@ public override MobilePayDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(MobilePayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(MobilePayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (MobilePayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/MolPayDetails.cs b/Adyen/Checkout/Models/MolPayDetails.cs index 432202b28..043c061fc 100644 --- a/Adyen/Checkout/Models/MolPayDetails.cs +++ b/Adyen/Checkout/Models/MolPayDetails.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.MolpayEbankingTH) return "molpay_ebanking_TH"; - return null; + return value.Value; } /// @@ -273,7 +273,7 @@ public override MolPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(MolPayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(MolPayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (MolPayDetails.TypeEnum)typeRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -295,7 +295,7 @@ public override MolPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT var molPayDetails = new MolPayDetails(); molPayDetails.Issuer = issuer.Value!; - molPayDetails.Type = type.Value!.Value; + molPayDetails.Type = type.Value!; if (checkoutAttemptId.IsSet) molPayDetails.CheckoutAttemptId = checkoutAttemptId.Value; if (sdkData.IsSet) diff --git a/Adyen/Checkout/Models/OpenInvoiceDetails.cs b/Adyen/Checkout/Models/OpenInvoiceDetails.cs index 7dceb8306..f770de29e 100644 --- a/Adyen/Checkout/Models/OpenInvoiceDetails.cs +++ b/Adyen/Checkout/Models/OpenInvoiceDetails.cs @@ -150,7 +150,7 @@ private TypeEnum(string? value) if (value == TypeEnum.AtomePos) return "atome_pos"; - return null; + return value.Value; } /// @@ -381,7 +381,7 @@ public override OpenInvoiceDetails Read(ref Utf8JsonReader utf8JsonReader, Type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(OpenInvoiceDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(OpenInvoiceDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (OpenInvoiceDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PayByBankAISDirectDebitDetails.cs b/Adyen/Checkout/Models/PayByBankAISDirectDebitDetails.cs index a2de24b02..064d8a0d7 100644 --- a/Adyen/Checkout/Models/PayByBankAISDirectDebitDetails.cs +++ b/Adyen/Checkout/Models/PayByBankAISDirectDebitDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PaybybankAISDD) return "paybybank_AIS_DD"; - return null; + return value.Value; } /// @@ -298,7 +298,7 @@ public override PayByBankAISDirectDebitDetails Read(ref Utf8JsonReader utf8JsonR break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayByBankAISDirectDebitDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayByBankAISDirectDebitDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayByBankAISDirectDebitDetails.TypeEnum)typeRawValue); break; default: break; @@ -318,7 +318,7 @@ public override PayByBankAISDirectDebitDetails Read(ref Utf8JsonReader utf8JsonR payByBankAISDirectDebitDetails.SdkData = sdkData.Value; if (storedPaymentMethodId.IsSet) payByBankAISDirectDebitDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - payByBankAISDirectDebitDetails.Type = type.Value!.Value; + payByBankAISDirectDebitDetails.Type = type.Value!; return payByBankAISDirectDebitDetails; } diff --git a/Adyen/Checkout/Models/PayByBankDetails.cs b/Adyen/Checkout/Models/PayByBankDetails.cs index 75bb86bd8..da475d782 100644 --- a/Adyen/Checkout/Models/PayByBankDetails.cs +++ b/Adyen/Checkout/Models/PayByBankDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Paybybank) return "paybybank"; - return null; + return value.Value; } /// @@ -277,7 +277,7 @@ public override PayByBankDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayByBankDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayByBankDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayByBankDetails.TypeEnum)typeRawValue); break; default: break; @@ -295,7 +295,7 @@ public override PayByBankDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty payByBankDetails.Issuer = issuer.Value; if (sdkData.IsSet) payByBankDetails.SdkData = sdkData.Value; - payByBankDetails.Type = type.Value!.Value; + payByBankDetails.Type = type.Value!; return payByBankDetails; } diff --git a/Adyen/Checkout/Models/PayPalDetails.cs b/Adyen/Checkout/Models/PayPalDetails.cs index ce5102d54..8cb745769 100644 --- a/Adyen/Checkout/Models/PayPalDetails.cs +++ b/Adyen/Checkout/Models/PayPalDetails.cs @@ -149,7 +149,7 @@ private SubtypeEnum(string? value) if (value == SubtypeEnum.Sdk) return "sdk"; - return null; + return value.Value; } /// @@ -277,7 +277,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Paypal) return "paypal"; - return null; + return value.Value; } /// @@ -522,11 +522,11 @@ public override PayPalDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "subtype": string? subtypeRawValue = utf8JsonReader.GetString(); - subtype = new Option(PayPalDetails.SubtypeEnum.FromStringOrDefault(subtypeRawValue)); + subtype = new Option(PayPalDetails.SubtypeEnum.FromStringOrDefault(subtypeRawValue) ?? (PayPalDetails.SubtypeEnum)subtypeRawValue); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayPalDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayPalDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayPalDetails.TypeEnum)typeRawValue); break; default: break; @@ -556,7 +556,7 @@ public override PayPalDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT payPalDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; if (subtype.IsSet) payPalDetails.Subtype = subtype.Value; - payPalDetails.Type = type.Value!.Value; + payPalDetails.Type = type.Value!; return payPalDetails; } diff --git a/Adyen/Checkout/Models/PayPayDetails.cs b/Adyen/Checkout/Models/PayPayDetails.cs index 099b3f20e..3f9f30841 100644 --- a/Adyen/Checkout/Models/PayPayDetails.cs +++ b/Adyen/Checkout/Models/PayPayDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Paypay) return "paypay"; - return null; + return value.Value; } /// @@ -306,7 +306,7 @@ public override PayPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayPayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayPayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayPayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PayToDetails.cs b/Adyen/Checkout/Models/PayToDetails.cs index cbc298893..5a176ff14 100644 --- a/Adyen/Checkout/Models/PayToDetails.cs +++ b/Adyen/Checkout/Models/PayToDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Payto) return "payto"; - return null; + return value.Value; } /// @@ -325,7 +325,7 @@ public override PayToDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayToDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayToDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayToDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PayUUpiDetails.cs b/Adyen/Checkout/Models/PayUUpiDetails.cs index e3f4f49cd..78d8957aa 100644 --- a/Adyen/Checkout/Models/PayUUpiDetails.cs +++ b/Adyen/Checkout/Models/PayUUpiDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PayuINUpi) return "payu_IN_upi"; - return null; + return value.Value; } /// @@ -333,7 +333,7 @@ public override PayUUpiDetails Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayUUpiDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayUUpiDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayUUpiDetails.TypeEnum)typeRawValue); break; case "virtualPaymentAddress": virtualPaymentAddress = new Option(utf8JsonReader.GetString()!); @@ -358,7 +358,7 @@ public override PayUUpiDetails Read(ref Utf8JsonReader utf8JsonReader, Type type payUUpiDetails.ShopperNotificationReference = shopperNotificationReference.Value; if (storedPaymentMethodId.IsSet) payUUpiDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - payUUpiDetails.Type = type.Value!.Value; + payUUpiDetails.Type = type.Value!; if (virtualPaymentAddress.IsSet) payUUpiDetails.VirtualPaymentAddress = virtualPaymentAddress.Value; return payUUpiDetails; diff --git a/Adyen/Checkout/Models/PayWithGoogleDetails.cs b/Adyen/Checkout/Models/PayWithGoogleDetails.cs index e4eb184e3..d7aa36fa0 100644 --- a/Adyen/Checkout/Models/PayWithGoogleDetails.cs +++ b/Adyen/Checkout/Models/PayWithGoogleDetails.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Paywithgoogle) return "paywithgoogle"; - return null; + return value.Value; } /// @@ -473,7 +473,7 @@ public override PayWithGoogleDetails Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(PayWithGoogleDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(PayWithGoogleDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (PayWithGoogleDetails.FundingSourceEnum)fundingSourceRawValue); break; case "recurringDetailReference": recurringDetailReference = new Option(utf8JsonReader.GetString()!); @@ -489,7 +489,7 @@ public override PayWithGoogleDetails Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayWithGoogleDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayWithGoogleDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayWithGoogleDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PayWithGoogleDonations.cs b/Adyen/Checkout/Models/PayWithGoogleDonations.cs index 1a91d9eb3..652d185b9 100644 --- a/Adyen/Checkout/Models/PayWithGoogleDonations.cs +++ b/Adyen/Checkout/Models/PayWithGoogleDonations.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Paywithgoogle) return "paywithgoogle"; - return null; + return value.Value; } /// @@ -473,7 +473,7 @@ public override PayWithGoogleDonations Read(ref Utf8JsonReader utf8JsonReader, T break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(PayWithGoogleDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(PayWithGoogleDonations.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (PayWithGoogleDonations.FundingSourceEnum)fundingSourceRawValue); break; case "recurringDetailReference": recurringDetailReference = new Option(utf8JsonReader.GetString()!); @@ -489,7 +489,7 @@ public override PayWithGoogleDonations Read(ref Utf8JsonReader utf8JsonReader, T break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PayWithGoogleDonations.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PayWithGoogleDonations.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PayWithGoogleDonations.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/Payment.cs b/Adyen/Checkout/Models/Payment.cs index 2c2954507..655d59e67 100644 --- a/Adyen/Checkout/Models/Payment.cs +++ b/Adyen/Checkout/Models/Payment.cs @@ -149,7 +149,7 @@ private ResultCodeEnum(string? value) if (value == ResultCodeEnum.Pending) return "Pending"; - return null; + return value.Value; } /// @@ -300,7 +300,7 @@ public override Payment Read(ref Utf8JsonReader utf8JsonReader, Type typeToConve break; case "resultCode": string? resultCodeRawValue = utf8JsonReader.GetString(); - resultCode = new Option(Payment.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue)); + resultCode = new Option(Payment.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue) ?? (Payment.ResultCodeEnum)resultCodeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PaymentAmountUpdateRequest.cs b/Adyen/Checkout/Models/PaymentAmountUpdateRequest.cs index e6063c68f..eacaf669a 100644 --- a/Adyen/Checkout/Models/PaymentAmountUpdateRequest.cs +++ b/Adyen/Checkout/Models/PaymentAmountUpdateRequest.cs @@ -149,7 +149,7 @@ private IndustryUsageEnum(string? value) if (value == IndustryUsageEnum.NoShow) return "noShow"; - return null; + return value.Value; } /// @@ -352,7 +352,7 @@ public override PaymentAmountUpdateRequest Read(ref Utf8JsonReader utf8JsonReade break; case "industryUsage": string? industryUsageRawValue = utf8JsonReader.GetString(); - industryUsage = new Option(PaymentAmountUpdateRequest.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue)); + industryUsage = new Option(PaymentAmountUpdateRequest.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue) ?? (PaymentAmountUpdateRequest.IndustryUsageEnum)industryUsageRawValue); break; case "lineItems": lineItems = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/Checkout/Models/PaymentAmountUpdateResponse.cs b/Adyen/Checkout/Models/PaymentAmountUpdateResponse.cs index cd821a2d5..ee952de1f 100644 --- a/Adyen/Checkout/Models/PaymentAmountUpdateResponse.cs +++ b/Adyen/Checkout/Models/PaymentAmountUpdateResponse.cs @@ -131,7 +131,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Received) return "received"; - return null; + return value.Value; } /// @@ -270,7 +270,7 @@ private IndustryUsageEnum(string? value) if (value == IndustryUsageEnum.NoShow) return "noShow"; - return null; + return value.Value; } /// @@ -459,11 +459,11 @@ public override PaymentAmountUpdateResponse Read(ref Utf8JsonReader utf8JsonRead break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentAmountUpdateResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentAmountUpdateResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentAmountUpdateResponse.StatusEnum)statusRawValue); break; case "industryUsage": string? industryUsageRawValue = utf8JsonReader.GetString(); - industryUsage = new Option(PaymentAmountUpdateResponse.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue)); + industryUsage = new Option(PaymentAmountUpdateResponse.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue) ?? (PaymentAmountUpdateResponse.IndustryUsageEnum)industryUsageRawValue); break; case "lineItems": lineItems = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -501,7 +501,7 @@ public override PaymentAmountUpdateResponse Read(ref Utf8JsonReader utf8JsonRead paymentAmountUpdateResponse.PaymentPspReference = paymentPspReference.Value!; paymentAmountUpdateResponse.PspReference = pspReference.Value!; paymentAmountUpdateResponse.Reference = reference.Value!; - paymentAmountUpdateResponse.Status = status.Value!.Value; + paymentAmountUpdateResponse.Status = status.Value!; if (industryUsage.IsSet) paymentAmountUpdateResponse.IndustryUsage = industryUsage.Value; if (lineItems.IsSet) diff --git a/Adyen/Checkout/Models/PaymentCancelResponse.cs b/Adyen/Checkout/Models/PaymentCancelResponse.cs index e622f0a94..8b8de3817 100644 --- a/Adyen/Checkout/Models/PaymentCancelResponse.cs +++ b/Adyen/Checkout/Models/PaymentCancelResponse.cs @@ -131,7 +131,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Received) return "received"; - return null; + return value.Value; } /// @@ -272,7 +272,7 @@ public override PaymentCancelResponse Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentCancelResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentCancelResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentCancelResponse.StatusEnum)statusRawValue); break; case "reference": reference = new Option(utf8JsonReader.GetString()!); @@ -299,7 +299,7 @@ public override PaymentCancelResponse Read(ref Utf8JsonReader utf8JsonReader, Ty paymentCancelResponse.MerchantAccount = merchantAccount.Value!; paymentCancelResponse.PaymentPspReference = paymentPspReference.Value!; paymentCancelResponse.PspReference = pspReference.Value!; - paymentCancelResponse.Status = status.Value!.Value; + paymentCancelResponse.Status = status.Value!; if (reference.IsSet) paymentCancelResponse.Reference = reference.Value; return paymentCancelResponse; diff --git a/Adyen/Checkout/Models/PaymentCaptureResponse.cs b/Adyen/Checkout/Models/PaymentCaptureResponse.cs index c65b86644..74e5acf94 100644 --- a/Adyen/Checkout/Models/PaymentCaptureResponse.cs +++ b/Adyen/Checkout/Models/PaymentCaptureResponse.cs @@ -131,7 +131,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Received) return "received"; - return null; + return value.Value; } /// @@ -346,7 +346,7 @@ public override PaymentCaptureResponse Read(ref Utf8JsonReader utf8JsonReader, T break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentCaptureResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentCaptureResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentCaptureResponse.StatusEnum)statusRawValue); break; case "lineItems": lineItems = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -389,7 +389,7 @@ public override PaymentCaptureResponse Read(ref Utf8JsonReader utf8JsonReader, T paymentCaptureResponse.MerchantAccount = merchantAccount.Value!; paymentCaptureResponse.PaymentPspReference = paymentPspReference.Value!; paymentCaptureResponse.PspReference = pspReference.Value!; - paymentCaptureResponse.Status = status.Value!.Value; + paymentCaptureResponse.Status = status.Value!; if (lineItems.IsSet) paymentCaptureResponse.LineItems = lineItems.Value; if (platformChargebackLogic.IsSet) diff --git a/Adyen/Checkout/Models/PaymentDetails.cs b/Adyen/Checkout/Models/PaymentDetails.cs index 9d871f95a..9a38db555 100644 --- a/Adyen/Checkout/Models/PaymentDetails.cs +++ b/Adyen/Checkout/Models/PaymentDetails.cs @@ -905,7 +905,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Balanceplatform) return "balanceplatform"; - return null; + return value.Value; } /// @@ -1039,7 +1039,7 @@ public override PaymentDetails Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PaymentDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PaymentDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PaymentDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PaymentDetailsResponse.cs b/Adyen/Checkout/Models/PaymentDetailsResponse.cs index 793884b04..ca1ec8537 100644 --- a/Adyen/Checkout/Models/PaymentDetailsResponse.cs +++ b/Adyen/Checkout/Models/PaymentDetailsResponse.cs @@ -248,7 +248,7 @@ private ResultCodeEnum(string? value) if (value == ResultCodeEnum.Success) return "Success"; - return null; + return value.Value; } /// @@ -628,7 +628,7 @@ public override PaymentDetailsResponse Read(ref Utf8JsonReader utf8JsonReader, T break; case "resultCode": string? resultCodeRawValue = utf8JsonReader.GetString(); - resultCode = new Option(PaymentDetailsResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue)); + resultCode = new Option(PaymentDetailsResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue) ?? (PaymentDetailsResponse.ResultCodeEnum)resultCodeRawValue); break; case "shopperLocale": shopperLocale = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/PaymentLinkRequest.cs b/Adyen/Checkout/Models/PaymentLinkRequest.cs index 0425a3425..17dcedf78 100644 --- a/Adyen/Checkout/Models/PaymentLinkRequest.cs +++ b/Adyen/Checkout/Models/PaymentLinkRequest.cs @@ -149,7 +149,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -312,7 +312,7 @@ private RequiredShopperFieldsEnum(string? value) if (value == RequiredShopperFieldsEnum.TelephoneNumber) return "telephoneNumber"; - return null; + return value.Value; } /// @@ -444,7 +444,7 @@ private StorePaymentMethodModeEnum(string? value) if (value == StorePaymentMethodModeEnum.Enabled) return "enabled"; - return null; + return value.Value; } /// @@ -1235,7 +1235,7 @@ public override PaymentLinkRequest Read(ref Utf8JsonReader utf8JsonReader, Type break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(PaymentLinkRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(PaymentLinkRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (PaymentLinkRequest.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "requiredShopperFields": requiredShopperFields = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1281,7 +1281,7 @@ public override PaymentLinkRequest Read(ref Utf8JsonReader utf8JsonReader, Type break; case "storePaymentMethodMode": string? storePaymentMethodModeRawValue = utf8JsonReader.GetString(); - storePaymentMethodMode = new Option(PaymentLinkRequest.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue)); + storePaymentMethodMode = new Option(PaymentLinkRequest.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue) ?? (PaymentLinkRequest.StorePaymentMethodModeEnum)storePaymentMethodModeRawValue); break; case "telephoneNumber": telephoneNumber = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/PaymentLinkResponse.cs b/Adyen/Checkout/Models/PaymentLinkResponse.cs index b2e00aa9d..544970129 100644 --- a/Adyen/Checkout/Models/PaymentLinkResponse.cs +++ b/Adyen/Checkout/Models/PaymentLinkResponse.cs @@ -167,7 +167,7 @@ private StatusEnum(string? value) if (value == StatusEnum.PaymentPending) return "paymentPending"; - return null; + return value.Value; } /// @@ -306,7 +306,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -469,7 +469,7 @@ private RequiredShopperFieldsEnum(string? value) if (value == RequiredShopperFieldsEnum.TelephoneNumber) return "telephoneNumber"; - return null; + return value.Value; } /// @@ -601,7 +601,7 @@ private StorePaymentMethodModeEnum(string? value) if (value == StorePaymentMethodModeEnum.Enabled) return "enabled"; - return null; + return value.Value; } /// @@ -1378,7 +1378,7 @@ public override PaymentLinkResponse Read(ref Utf8JsonReader utf8JsonReader, Type break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentLinkResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentLinkResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentLinkResponse.StatusEnum)statusRawValue); break; case "url": url = new Option(utf8JsonReader.GetString()!); @@ -1445,7 +1445,7 @@ public override PaymentLinkResponse Read(ref Utf8JsonReader utf8JsonReader, Type break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(PaymentLinkResponse.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(PaymentLinkResponse.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (PaymentLinkResponse.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "requiredShopperFields": requiredShopperFields = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1491,7 +1491,7 @@ public override PaymentLinkResponse Read(ref Utf8JsonReader utf8JsonReader, Type break; case "storePaymentMethodMode": string? storePaymentMethodModeRawValue = utf8JsonReader.GetString(); - storePaymentMethodMode = new Option(PaymentLinkResponse.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue)); + storePaymentMethodMode = new Option(PaymentLinkResponse.StorePaymentMethodModeEnum.FromStringOrDefault(storePaymentMethodModeRawValue) ?? (PaymentLinkResponse.StorePaymentMethodModeEnum)storePaymentMethodModeRawValue); break; case "telephoneNumber": telephoneNumber = new Option(utf8JsonReader.GetString()!); @@ -1534,7 +1534,7 @@ public override PaymentLinkResponse Read(ref Utf8JsonReader utf8JsonReader, Type paymentLinkResponse.Id = id.Value!; paymentLinkResponse.MerchantAccount = merchantAccount.Value!; paymentLinkResponse.Reference = reference.Value!; - paymentLinkResponse.Status = status.Value!.Value; + paymentLinkResponse.Status = status.Value!; paymentLinkResponse.Url = url.Value!; if (allowedPaymentMethods.IsSet) paymentLinkResponse.AllowedPaymentMethods = allowedPaymentMethods.Value; diff --git a/Adyen/Checkout/Models/PaymentMethod.cs b/Adyen/Checkout/Models/PaymentMethod.cs index 2e7d13dca..a4aaf3854 100644 --- a/Adyen/Checkout/Models/PaymentMethod.cs +++ b/Adyen/Checkout/Models/PaymentMethod.cs @@ -149,7 +149,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -418,7 +418,7 @@ public override PaymentMethod Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(PaymentMethod.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(PaymentMethod.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (PaymentMethod.FundingSourceEnum)fundingSourceRawValue); break; case "group": group = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/Checkout/Models/PaymentMethodsRequest.cs b/Adyen/Checkout/Models/PaymentMethodsRequest.cs index 989fd0e71..48f394900 100644 --- a/Adyen/Checkout/Models/PaymentMethodsRequest.cs +++ b/Adyen/Checkout/Models/PaymentMethodsRequest.cs @@ -149,7 +149,7 @@ private ChannelEnum(string? value) if (value == ChannelEnum.Web) return "Web"; - return null; + return value.Value; } /// @@ -295,7 +295,7 @@ private StoreFiltrationModeEnum(string? value) if (value == StoreFiltrationModeEnum.SkipFilter) return "skipFilter"; - return null; + return value.Value; } /// @@ -657,7 +657,7 @@ public override PaymentMethodsRequest Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "channel": string? channelRawValue = utf8JsonReader.GetString(); - channel = new Option(PaymentMethodsRequest.ChannelEnum.FromStringOrDefault(channelRawValue)); + channel = new Option(PaymentMethodsRequest.ChannelEnum.FromStringOrDefault(channelRawValue) ?? (PaymentMethodsRequest.ChannelEnum)channelRawValue); break; case "countryCode": countryCode = new Option(utf8JsonReader.GetString()!); @@ -688,7 +688,7 @@ public override PaymentMethodsRequest Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "storeFiltrationMode": string? storeFiltrationModeRawValue = utf8JsonReader.GetString(); - storeFiltrationMode = new Option(PaymentMethodsRequest.StoreFiltrationModeEnum.FromStringOrDefault(storeFiltrationModeRawValue)); + storeFiltrationMode = new Option(PaymentMethodsRequest.StoreFiltrationModeEnum.FromStringOrDefault(storeFiltrationModeRawValue) ?? (PaymentMethodsRequest.StoreFiltrationModeEnum)storeFiltrationModeRawValue); break; case "telephoneNumber": telephoneNumber = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/PaymentRefundRequest.cs b/Adyen/Checkout/Models/PaymentRefundRequest.cs index c78195e78..261a376c2 100644 --- a/Adyen/Checkout/Models/PaymentRefundRequest.cs +++ b/Adyen/Checkout/Models/PaymentRefundRequest.cs @@ -167,7 +167,7 @@ private MerchantRefundReasonEnum(string? value) if (value == MerchantRefundReasonEnum.OTHER) return "OTHER"; - return null; + return value.Value; } /// @@ -408,7 +408,7 @@ public override PaymentRefundRequest Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "merchantRefundReason": string? merchantRefundReasonRawValue = utf8JsonReader.GetString(); - merchantRefundReason = new Option(PaymentRefundRequest.MerchantRefundReasonEnum.FromStringOrDefault(merchantRefundReasonRawValue)); + merchantRefundReason = new Option(PaymentRefundRequest.MerchantRefundReasonEnum.FromStringOrDefault(merchantRefundReasonRawValue) ?? (PaymentRefundRequest.MerchantRefundReasonEnum)merchantRefundReasonRawValue); break; case "reference": reference = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/PaymentRefundResponse.cs b/Adyen/Checkout/Models/PaymentRefundResponse.cs index 751df537b..c7332312c 100644 --- a/Adyen/Checkout/Models/PaymentRefundResponse.cs +++ b/Adyen/Checkout/Models/PaymentRefundResponse.cs @@ -131,7 +131,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Received) return "received"; - return null; + return value.Value; } /// @@ -288,7 +288,7 @@ private MerchantRefundReasonEnum(string? value) if (value == MerchantRefundReasonEnum.OTHER) return "OTHER"; - return null; + return value.Value; } /// @@ -513,7 +513,7 @@ public override PaymentRefundResponse Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentRefundResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentRefundResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentRefundResponse.StatusEnum)statusRawValue); break; case "capturePspReference": capturePspReference = new Option(utf8JsonReader.GetString()!); @@ -523,7 +523,7 @@ public override PaymentRefundResponse Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "merchantRefundReason": string? merchantRefundReasonRawValue = utf8JsonReader.GetString(); - merchantRefundReason = new Option(PaymentRefundResponse.MerchantRefundReasonEnum.FromStringOrDefault(merchantRefundReasonRawValue)); + merchantRefundReason = new Option(PaymentRefundResponse.MerchantRefundReasonEnum.FromStringOrDefault(merchantRefundReasonRawValue) ?? (PaymentRefundResponse.MerchantRefundReasonEnum)merchantRefundReasonRawValue); break; case "reference": reference = new Option(utf8JsonReader.GetString()!); @@ -560,7 +560,7 @@ public override PaymentRefundResponse Read(ref Utf8JsonReader utf8JsonReader, Ty paymentRefundResponse.MerchantAccount = merchantAccount.Value!; paymentRefundResponse.PaymentPspReference = paymentPspReference.Value!; paymentRefundResponse.PspReference = pspReference.Value!; - paymentRefundResponse.Status = status.Value!.Value; + paymentRefundResponse.Status = status.Value!; if (capturePspReference.IsSet) paymentRefundResponse.CapturePspReference = capturePspReference.Value; if (lineItems.IsSet) diff --git a/Adyen/Checkout/Models/PaymentRequest.cs b/Adyen/Checkout/Models/PaymentRequest.cs index 3dc488594..922d15d7f 100644 --- a/Adyen/Checkout/Models/PaymentRequest.cs +++ b/Adyen/Checkout/Models/PaymentRequest.cs @@ -149,7 +149,7 @@ private ChannelEnum(string? value) if (value == ChannelEnum.Web) return "Web"; - return null; + return value.Value; } /// @@ -286,7 +286,7 @@ private EntityTypeEnum(string? value) if (value == EntityTypeEnum.CompanyName) return "CompanyName"; - return null; + return value.Value; } /// @@ -432,7 +432,7 @@ private IndustryUsageEnum(string? value) if (value == IndustryUsageEnum.NoShow) return "noShow"; - return null; + return value.Value; } /// @@ -578,7 +578,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -733,7 +733,7 @@ private ShopperInteractionEnum(string? value) if (value == ShopperInteractionEnum.POS) return "POS"; - return null; + return value.Value; } /// @@ -1942,7 +1942,7 @@ public override PaymentRequest Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "channel": string? channelRawValue = utf8JsonReader.GetString(); - channel = new Option(PaymentRequest.ChannelEnum.FromStringOrDefault(channelRawValue)); + channel = new Option(PaymentRequest.ChannelEnum.FromStringOrDefault(channelRawValue) ?? (PaymentRequest.ChannelEnum)channelRawValue); break; case "checkoutAttemptId": checkoutAttemptId = new Option(utf8JsonReader.GetString()!); @@ -1988,7 +1988,7 @@ public override PaymentRequest Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "entityType": string? entityTypeRawValue = utf8JsonReader.GetString(); - entityType = new Option(PaymentRequest.EntityTypeEnum.FromStringOrDefault(entityTypeRawValue)); + entityType = new Option(PaymentRequest.EntityTypeEnum.FromStringOrDefault(entityTypeRawValue) ?? (PaymentRequest.EntityTypeEnum)entityTypeRawValue); break; case "fraudOffset": fraudOffset = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); @@ -2001,7 +2001,7 @@ public override PaymentRequest Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "industryUsage": string? industryUsageRawValue = utf8JsonReader.GetString(); - industryUsage = new Option(PaymentRequest.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue)); + industryUsage = new Option(PaymentRequest.IndustryUsageEnum.FromStringOrDefault(industryUsageRawValue) ?? (PaymentRequest.IndustryUsageEnum)industryUsageRawValue); break; case "installments": installments = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -2053,7 +2053,7 @@ public override PaymentRequest Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(PaymentRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(PaymentRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (PaymentRequest.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "redirectFromIssuerMethod": redirectFromIssuerMethod = new Option(utf8JsonReader.GetString()!); @@ -2078,7 +2078,7 @@ public override PaymentRequest Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "shopperInteraction": string? shopperInteractionRawValue = utf8JsonReader.GetString(); - shopperInteraction = new Option(PaymentRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue)); + shopperInteraction = new Option(PaymentRequest.ShopperInteractionEnum.FromStringOrDefault(shopperInteractionRawValue) ?? (PaymentRequest.ShopperInteractionEnum)shopperInteractionRawValue); break; case "shopperLocale": shopperLocale = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/PaymentResponse.cs b/Adyen/Checkout/Models/PaymentResponse.cs index 338616175..18d622af3 100644 --- a/Adyen/Checkout/Models/PaymentResponse.cs +++ b/Adyen/Checkout/Models/PaymentResponse.cs @@ -248,7 +248,7 @@ private ResultCodeEnum(string? value) if (value == ResultCodeEnum.Success) return "Success"; - return null; + return value.Value; } /// @@ -612,7 +612,7 @@ public override PaymentResponse Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "resultCode": string? resultCodeRawValue = utf8JsonReader.GetString(); - resultCode = new Option(PaymentResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue)); + resultCode = new Option(PaymentResponse.ResultCodeEnum.FromStringOrDefault(resultCodeRawValue) ?? (PaymentResponse.ResultCodeEnum)resultCodeRawValue); break; case "threeDS2ResponseData": threeDS2ResponseData = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/Checkout/Models/PaymentResponseAction.cs b/Adyen/Checkout/Models/PaymentResponseAction.cs index 404c12178..8261c5d1b 100644 --- a/Adyen/Checkout/Models/PaymentResponseAction.cs +++ b/Adyen/Checkout/Models/PaymentResponseAction.cs @@ -295,31 +295,31 @@ public override PaymentResponseAction Read(ref Utf8JsonReader utf8JsonReader, Ty } } - if (checkoutAwaitAction?.Type != null) + if (checkoutAwaitAction?.Type != null && CheckoutAwaitAction.TypeEnum.FromStringOrDefault((string?)checkoutAwaitAction.Type) != null) return new PaymentResponseAction(checkoutAwaitAction); - if (checkoutBankTransferAction?.Type != null) + if (checkoutBankTransferAction?.Type != null && CheckoutBankTransferAction.TypeEnum.FromStringOrDefault((string?)checkoutBankTransferAction.Type) != null) return new PaymentResponseAction(checkoutBankTransferAction); - if (checkoutDelegatedAuthenticationAction?.Type != null) + if (checkoutDelegatedAuthenticationAction?.Type != null && CheckoutDelegatedAuthenticationAction.TypeEnum.FromStringOrDefault((string?)checkoutDelegatedAuthenticationAction.Type) != null) return new PaymentResponseAction(checkoutDelegatedAuthenticationAction); - if (checkoutNativeRedirectAction?.Type != null) + if (checkoutNativeRedirectAction?.Type != null && CheckoutNativeRedirectAction.TypeEnum.FromStringOrDefault((string?)checkoutNativeRedirectAction.Type) != null) return new PaymentResponseAction(checkoutNativeRedirectAction); - if (checkoutQrCodeAction?.Type != null) + if (checkoutQrCodeAction?.Type != null && CheckoutQrCodeAction.TypeEnum.FromStringOrDefault((string?)checkoutQrCodeAction.Type) != null) return new PaymentResponseAction(checkoutQrCodeAction); - if (checkoutRedirectAction?.Type != null) + if (checkoutRedirectAction?.Type != null && CheckoutRedirectAction.TypeEnum.FromStringOrDefault((string?)checkoutRedirectAction.Type) != null) return new PaymentResponseAction(checkoutRedirectAction); - if (checkoutSDKAction?.Type != null) + if (checkoutSDKAction?.Type != null && CheckoutSDKAction.TypeEnum.FromStringOrDefault((string?)checkoutSDKAction.Type) != null) return new PaymentResponseAction(checkoutSDKAction); - if (checkoutThreeDS2Action?.Type != null) + if (checkoutThreeDS2Action?.Type != null && CheckoutThreeDS2Action.TypeEnum.FromStringOrDefault((string?)checkoutThreeDS2Action.Type) != null) return new PaymentResponseAction(checkoutThreeDS2Action); - if (checkoutVoucherAction?.Type != null) + if (checkoutVoucherAction?.Type != null && CheckoutVoucherAction.TypeEnum.FromStringOrDefault((string?)checkoutVoucherAction.Type) != null) return new PaymentResponseAction(checkoutVoucherAction); throw new JsonException(); diff --git a/Adyen/Checkout/Models/PaymentReversalResponse.cs b/Adyen/Checkout/Models/PaymentReversalResponse.cs index cc572c310..1284aa3bc 100644 --- a/Adyen/Checkout/Models/PaymentReversalResponse.cs +++ b/Adyen/Checkout/Models/PaymentReversalResponse.cs @@ -131,7 +131,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Received) return "received"; - return null; + return value.Value; } /// @@ -272,7 +272,7 @@ public override PaymentReversalResponse Read(ref Utf8JsonReader utf8JsonReader, break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentReversalResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentReversalResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentReversalResponse.StatusEnum)statusRawValue); break; case "reference": reference = new Option(utf8JsonReader.GetString()!); @@ -299,7 +299,7 @@ public override PaymentReversalResponse Read(ref Utf8JsonReader utf8JsonReader, paymentReversalResponse.MerchantAccount = merchantAccount.Value!; paymentReversalResponse.PaymentPspReference = paymentPspReference.Value!; paymentReversalResponse.PspReference = pspReference.Value!; - paymentReversalResponse.Status = status.Value!.Value; + paymentReversalResponse.Status = status.Value!; if (reference.IsSet) paymentReversalResponse.Reference = reference.Value; return paymentReversalResponse; diff --git a/Adyen/Checkout/Models/PaymentValidationsNameResponse.cs b/Adyen/Checkout/Models/PaymentValidationsNameResponse.cs index f03444d52..0b2f164d8 100644 --- a/Adyen/Checkout/Models/PaymentValidationsNameResponse.cs +++ b/Adyen/Checkout/Models/PaymentValidationsNameResponse.cs @@ -149,7 +149,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Performed) return "performed"; - return null; + return value.Value; } /// @@ -281,7 +281,7 @@ public override PaymentValidationsNameResponse Read(ref Utf8JsonReader utf8JsonR break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentValidationsNameResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentValidationsNameResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentValidationsNameResponse.StatusEnum)statusRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PaypalUpdateOrderResponse.cs b/Adyen/Checkout/Models/PaypalUpdateOrderResponse.cs index 32db2e473..e115a82b3 100644 --- a/Adyen/Checkout/Models/PaypalUpdateOrderResponse.cs +++ b/Adyen/Checkout/Models/PaypalUpdateOrderResponse.cs @@ -140,7 +140,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Success) return "success"; - return null; + return value.Value; } /// @@ -241,7 +241,7 @@ public override PaypalUpdateOrderResponse Read(ref Utf8JsonReader utf8JsonReader break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaypalUpdateOrderResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaypalUpdateOrderResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaypalUpdateOrderResponse.StatusEnum)statusRawValue); break; default: break; @@ -257,7 +257,7 @@ public override PaypalUpdateOrderResponse Read(ref Utf8JsonReader utf8JsonReader var paypalUpdateOrderResponse = new PaypalUpdateOrderResponse(); paypalUpdateOrderResponse.PaymentData = paymentData.Value!; - paypalUpdateOrderResponse.Status = status.Value!.Value; + paypalUpdateOrderResponse.Status = status.Value!; return paypalUpdateOrderResponse; } diff --git a/Adyen/Checkout/Models/PixDetails.cs b/Adyen/Checkout/Models/PixDetails.cs index 30056fcfb..83d2592db 100644 --- a/Adyen/Checkout/Models/PixDetails.cs +++ b/Adyen/Checkout/Models/PixDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Pix) return "pix"; - return null; + return value.Value; } /// @@ -323,7 +323,7 @@ public override PixDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToCo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PixDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PixDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PixDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PixPayByBankDetails.cs b/Adyen/Checkout/Models/PixPayByBankDetails.cs index 529fcec86..5da8ed237 100644 --- a/Adyen/Checkout/Models/PixPayByBankDetails.cs +++ b/Adyen/Checkout/Models/PixPayByBankDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PaybybankPix) return "paybybank_pix"; - return null; + return value.Value; } /// @@ -360,7 +360,7 @@ public override PixPayByBankDetails Read(ref Utf8JsonReader utf8JsonReader, Type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PixPayByBankDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PixPayByBankDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PixPayByBankDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/PixRecurring.cs b/Adyen/Checkout/Models/PixRecurring.cs index bb989c9fc..4be242c65 100644 --- a/Adyen/Checkout/Models/PixRecurring.cs +++ b/Adyen/Checkout/Models/PixRecurring.cs @@ -167,7 +167,7 @@ private FrequencyEnum(string? value) if (value == FrequencyEnum.Yearly) return "yearly"; - return null; + return value.Value; } /// @@ -414,7 +414,7 @@ public override PixRecurring Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "frequency": string? frequencyRawValue = utf8JsonReader.GetString(); - frequency = new Option(PixRecurring.FrequencyEnum.FromStringOrDefault(frequencyRawValue)); + frequency = new Option(PixRecurring.FrequencyEnum.FromStringOrDefault(frequencyRawValue) ?? (PixRecurring.FrequencyEnum)frequencyRawValue); break; case "minAmount": minAmount = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/Checkout/Models/PlatformChargebackLogic.cs b/Adyen/Checkout/Models/PlatformChargebackLogic.cs index dc7f9bf0b..4f7d9872e 100644 --- a/Adyen/Checkout/Models/PlatformChargebackLogic.cs +++ b/Adyen/Checkout/Models/PlatformChargebackLogic.cs @@ -149,7 +149,7 @@ private BehaviorEnum(string? value) if (value == BehaviorEnum.DeductFromLiableAccount) return "deductFromLiableAccount"; - return null; + return value.Value; } /// @@ -277,7 +277,7 @@ public override PlatformChargebackLogic Read(ref Utf8JsonReader utf8JsonReader, { case "behavior": string? behaviorRawValue = utf8JsonReader.GetString(); - behavior = new Option(PlatformChargebackLogic.BehaviorEnum.FromStringOrDefault(behaviorRawValue)); + behavior = new Option(PlatformChargebackLogic.BehaviorEnum.FromStringOrDefault(behaviorRawValue) ?? (PlatformChargebackLogic.BehaviorEnum)behaviorRawValue); break; case "costAllocationAccount": costAllocationAccount = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/PseDetails.cs b/Adyen/Checkout/Models/PseDetails.cs index 33069aa19..c1ef5f315 100644 --- a/Adyen/Checkout/Models/PseDetails.cs +++ b/Adyen/Checkout/Models/PseDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PsePayulatam) return "pse_payulatam"; - return null; + return value.Value; } /// @@ -313,7 +313,7 @@ public override PseDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToCo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PseDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PseDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PseDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/RakutenPayDetails.cs b/Adyen/Checkout/Models/RakutenPayDetails.cs index 355d364a8..c25698cd3 100644 --- a/Adyen/Checkout/Models/RakutenPayDetails.cs +++ b/Adyen/Checkout/Models/RakutenPayDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Rakutenpay) return "rakutenpay"; - return null; + return value.Value; } /// @@ -306,7 +306,7 @@ public override RakutenPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(RakutenPayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(RakutenPayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (RakutenPayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/RatepayDetails.cs b/Adyen/Checkout/Models/RatepayDetails.cs index 98fe7a0c9..fae356b3e 100644 --- a/Adyen/Checkout/Models/RatepayDetails.cs +++ b/Adyen/Checkout/Models/RatepayDetails.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.RatepayDirectdebit) return "ratepay_directdebit"; - return null; + return value.Value; } /// @@ -364,7 +364,7 @@ public override RatepayDetails Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(RatepayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(RatepayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (RatepayDetails.TypeEnum)typeRawValue); break; default: break; @@ -390,7 +390,7 @@ public override RatepayDetails Read(ref Utf8JsonReader utf8JsonReader, Type type ratepayDetails.SdkData = sdkData.Value; if (storedPaymentMethodId.IsSet) ratepayDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - ratepayDetails.Type = type.Value!.Value; + ratepayDetails.Type = type.Value!; return ratepayDetails; } diff --git a/Adyen/Checkout/Models/Recurring.cs b/Adyen/Checkout/Models/Recurring.cs index 85f0985de..e3b52b478 100644 --- a/Adyen/Checkout/Models/Recurring.cs +++ b/Adyen/Checkout/Models/Recurring.cs @@ -167,7 +167,7 @@ private ContractEnum(string? value) if (value == ContractEnum.EXTERNAL) return "EXTERNAL"; - return null; + return value.Value; } /// @@ -322,7 +322,7 @@ private TokenServiceEnum(string? value) if (value == TokenServiceEnum.TOKENSHARING) return "TOKEN_SHARING"; - return null; + return value.Value; } /// @@ -473,7 +473,7 @@ public override Recurring Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon { case "contract": string? contractRawValue = utf8JsonReader.GetString(); - contract = new Option(Recurring.ContractEnum.FromStringOrDefault(contractRawValue)); + contract = new Option(Recurring.ContractEnum.FromStringOrDefault(contractRawValue) ?? (Recurring.ContractEnum)contractRawValue); break; case "recurringDetailName": recurringDetailName = new Option(utf8JsonReader.GetString()!); @@ -486,7 +486,7 @@ public override Recurring Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon break; case "tokenService": string? tokenServiceRawValue = utf8JsonReader.GetString(); - tokenService = new Option(Recurring.TokenServiceEnum.FromStringOrDefault(tokenServiceRawValue)); + tokenService = new Option(Recurring.TokenServiceEnum.FromStringOrDefault(tokenServiceRawValue) ?? (Recurring.TokenServiceEnum)tokenServiceRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/ResponseAdditionalDataCommon.cs b/Adyen/Checkout/Models/ResponseAdditionalDataCommon.cs index 2caee11d1..8804342d1 100644 --- a/Adyen/Checkout/Models/ResponseAdditionalDataCommon.cs +++ b/Adyen/Checkout/Models/ResponseAdditionalDataCommon.cs @@ -149,7 +149,7 @@ private FraudResultTypeEnum(string? value) if (value == FraudResultTypeEnum.RED) return "RED"; - return null; + return value.Value; } /// @@ -313,7 +313,7 @@ private FraudRiskLevelEnum(string? value) if (value == FraudRiskLevelEnum.VeryHigh) return "veryHigh"; - return null; + return value.Value; } /// @@ -459,7 +459,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -605,7 +605,7 @@ private TokenizationStoreOperationTypeEnum(string? value) if (value == TokenizationStoreOperationTypeEnum.AlreadyExisting) return "alreadyExisting"; - return null; + return value.Value; } /// @@ -1739,11 +1739,11 @@ public override ResponseAdditionalDataCommon Read(ref Utf8JsonReader utf8JsonRea break; case "fraudResultType": string? fraudResultTypeRawValue = utf8JsonReader.GetString(); - fraudResultType = new Option(ResponseAdditionalDataCommon.FraudResultTypeEnum.FromStringOrDefault(fraudResultTypeRawValue)); + fraudResultType = new Option(ResponseAdditionalDataCommon.FraudResultTypeEnum.FromStringOrDefault(fraudResultTypeRawValue) ?? (ResponseAdditionalDataCommon.FraudResultTypeEnum)fraudResultTypeRawValue); break; case "fraudRiskLevel": string? fraudRiskLevelRawValue = utf8JsonReader.GetString(); - fraudRiskLevel = new Option(ResponseAdditionalDataCommon.FraudRiskLevelEnum.FromStringOrDefault(fraudRiskLevelRawValue)); + fraudRiskLevel = new Option(ResponseAdditionalDataCommon.FraudRiskLevelEnum.FromStringOrDefault(fraudRiskLevelRawValue) ?? (ResponseAdditionalDataCommon.FraudRiskLevelEnum)fraudRiskLevelRawValue); break; case "fundingSource": fundingSource = new Option(utf8JsonReader.GetString()!); @@ -1813,7 +1813,7 @@ public override ResponseAdditionalDataCommon Read(ref Utf8JsonReader utf8JsonRea break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(ResponseAdditionalDataCommon.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(ResponseAdditionalDataCommon.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (ResponseAdditionalDataCommon.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "referred": referred = new Option(utf8JsonReader.GetString()!); @@ -1856,7 +1856,7 @@ public override ResponseAdditionalDataCommon Read(ref Utf8JsonReader utf8JsonRea break; case "tokenization.store.operationType": string? tokenizationStoreOperationTypeRawValue = utf8JsonReader.GetString(); - tokenizationStoreOperationType = new Option(ResponseAdditionalDataCommon.TokenizationStoreOperationTypeEnum.FromStringOrDefault(tokenizationStoreOperationTypeRawValue)); + tokenizationStoreOperationType = new Option(ResponseAdditionalDataCommon.TokenizationStoreOperationTypeEnum.FromStringOrDefault(tokenizationStoreOperationTypeRawValue) ?? (ResponseAdditionalDataCommon.TokenizationStoreOperationTypeEnum)tokenizationStoreOperationTypeRawValue); break; case "tokenization.storedPaymentMethodId": tokenizationStoredPaymentMethodId = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/Result.cs b/Adyen/Checkout/Models/Result.cs index 2ab706792..3046bc0e9 100644 --- a/Adyen/Checkout/Models/Result.cs +++ b/Adyen/Checkout/Models/Result.cs @@ -32,86 +32,97 @@ namespace Adyen.Checkout.Models /// /// Defines Result /// - public enum Result + [JsonConverter(typeof(Result.ResultJsonConverter))] + public class Result : IEnum { /// - /// Enum VALID for value: VALID + /// Returns the value of the Result. /// - VALID = 1, + public string? Value { get; set; } /// - /// Enum INVALID for value: INVALID + /// Result.VALID - VALID /// - INVALID = 2, + public static readonly Result VALID = new("VALID"); /// - /// Enum UNKNOWN for value: UNKNOWN + /// Result.INVALID - INVALID /// - UNKNOWN = 3, + public static readonly Result INVALID = new("INVALID"); /// - /// Enum NOTREQUIRED for value: NOT_REQUIRED + /// Result.UNKNOWN - UNKNOWN /// - NOTREQUIRED = 4 - } + public static readonly Result UNKNOWN = new("UNKNOWN"); - /// - /// Converts to and from the JSON value - /// - public static class ResultValueConverter - { /// - /// Parses a given value to + /// Result.NOTREQUIRED - NOT_REQUIRED /// - /// - /// - public static Result FromString(string value) - { - if (value.Equals("VALID")) - return Result.VALID; + public static readonly Result NOTREQUIRED = new("NOT_REQUIRED"); - if (value.Equals("INVALID")) - return Result.INVALID; + private Result(string? value) + { + Value = value; + } - if (value.Equals("UNKNOWN")) - return Result.UNKNOWN; + /// + /// Converts a string to a implicitly. + /// + public static implicit operator Result?(string? value) => value == null ? null : new Result(value); - if (value.Equals("NOT_REQUIRED")) - return Result.NOTREQUIRED; + /// + /// Converts a instance to a string implicitly. + /// + public static implicit operator string?(Result? option) => option?.Value; - throw new NotImplementedException($"Could not convert value to type Result: '{value}'"); - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(Result? left, Result? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); /// - /// Parses a given value to + /// Compares two instances for inequality. /// - /// - /// - public static Result? FromStringOrDefault(string value) - { - if (value.Equals("VALID")) - return Result.VALID; + public static bool operator !=(Result? left, Result? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - if (value.Equals("INVALID")) - return Result.INVALID; + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is Result other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (value.Equals("UNKNOWN")) - return Result.UNKNOWN; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - if (value.Equals("NOT_REQUIRED")) - return Result.NOTREQUIRED; + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; - return null; + /// + /// Returns a , or null if the value is not recognized. + /// + public static Result? FromStringOrDefault(string? value) + { + return value switch { + "VALID" => Result.VALID, + "INVALID" => Result.INVALID, + "UNKNOWN" => Result.UNKNOWN, + "NOT_REQUIRED" => Result.NOTREQUIRED, + _ => null, + }; } /// - /// Converts the to the json value + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - public static string ToJsonValue(Result value) + public static string? ToJsonValue(Result? value) { + if (value == null) + return null; + if (value == Result.VALID) return "VALID"; @@ -124,84 +135,32 @@ public static string ToJsonValue(Result value) if (value == Result.NOTREQUIRED) return "NOT_REQUIRED"; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } - - /// - /// A Json converter for type - /// - /// - public class ResultJsonConverter : JsonConverter - { - /// - /// Returns a from the Json object - /// - /// - /// - /// - /// - public override Result Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); - - Result? result = rawValue == null - ? null - : ResultValueConverter.FromStringOrDefault(rawValue); - - if (result != null) - return result.Value; - - throw new JsonException(); - } - - /// - /// Writes the Result to the json writer - /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, Result result, JsonSerializerOptions options) - { - writer.WriteStringValue(ResultValueConverter.ToJsonValue(result).ToString()); - } - } - - /// - /// A Json converter for type - /// - public class ResultNullableJsonConverter : JsonConverter - { - /// - /// Returns a Result from the Json object - /// - /// - /// - /// - /// - public override Result? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); - - Result? result = rawValue == null - ? null - : ResultValueConverter.FromStringOrDefault(rawValue); - - if (result != null) - return result.Value; - - throw new JsonException(); + return value.Value; } /// - /// Writes the Result to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, Result? result, JsonSerializerOptions options) + public class ResultJsonConverter : JsonConverter { - writer.WriteStringValue(result.HasValue ? ResultValueConverter.ToJsonValue(result.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override Result? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : Result.FromStringOrDefault(rawValue) ?? new Result(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, Result value, JsonSerializerOptions options) + { + writer.WriteStringValue(Result.ToJsonValue(value)); + } } } } diff --git a/Adyen/Checkout/Models/RivertyDetails.cs b/Adyen/Checkout/Models/RivertyDetails.cs index e50eb7501..9ec722b8d 100644 --- a/Adyen/Checkout/Models/RivertyDetails.cs +++ b/Adyen/Checkout/Models/RivertyDetails.cs @@ -158,7 +158,7 @@ private TypeEnum(string? value) if (value == TypeEnum.SepadirectdebitRiverty) return "sepadirectdebit_riverty"; - return null; + return value.Value; } /// @@ -439,7 +439,7 @@ public override RivertyDetails Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(RivertyDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(RivertyDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (RivertyDetails.TypeEnum)typeRawValue); break; default: break; @@ -471,7 +471,7 @@ public override RivertyDetails Read(ref Utf8JsonReader utf8JsonReader, Type type rivertyDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; if (subtype.IsSet) rivertyDetails.Subtype = subtype.Value; - rivertyDetails.Type = type.Value!.Value; + rivertyDetails.Type = type.Value!; return rivertyDetails; } diff --git a/Adyen/Checkout/Models/SamsungPayDetails.cs b/Adyen/Checkout/Models/SamsungPayDetails.cs index 8a142b08d..a2bc83dbb 100644 --- a/Adyen/Checkout/Models/SamsungPayDetails.cs +++ b/Adyen/Checkout/Models/SamsungPayDetails.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Samsungpay) return "samsungpay"; - return null; + return value.Value; } /// @@ -457,7 +457,7 @@ public override SamsungPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(SamsungPayDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(SamsungPayDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (SamsungPayDetails.FundingSourceEnum)fundingSourceRawValue); break; case "recurringDetailReference": recurringDetailReference = new Option(utf8JsonReader.GetString()!); @@ -470,7 +470,7 @@ public override SamsungPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(SamsungPayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(SamsungPayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (SamsungPayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/SepaDirectDebitDetails.cs b/Adyen/Checkout/Models/SepaDirectDebitDetails.cs index 16c537e63..b3fd46656 100644 --- a/Adyen/Checkout/Models/SepaDirectDebitDetails.cs +++ b/Adyen/Checkout/Models/SepaDirectDebitDetails.cs @@ -141,7 +141,7 @@ private TypeEnum(string? value) if (value == TypeEnum.SepadirectdebitAmazonpay) return "sepadirectdebit_amazonpay"; - return null; + return value.Value; } /// @@ -377,7 +377,7 @@ public override SepaDirectDebitDetails Read(ref Utf8JsonReader utf8JsonReader, T break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(SepaDirectDebitDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(SepaDirectDebitDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (SepaDirectDebitDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/SessionResultResponse.cs b/Adyen/Checkout/Models/SessionResultResponse.cs index bb4bf18ad..75cc7104c 100644 --- a/Adyen/Checkout/Models/SessionResultResponse.cs +++ b/Adyen/Checkout/Models/SessionResultResponse.cs @@ -176,7 +176,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Refused) return "refused"; - return null; + return value.Value; } /// @@ -348,7 +348,7 @@ public override SessionResultResponse Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(SessionResultResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(SessionResultResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (SessionResultResponse.StatusEnum)statusRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/Split.cs b/Adyen/Checkout/Models/Split.cs index 75bf8c44e..097601018 100644 --- a/Adyen/Checkout/Models/Split.cs +++ b/Adyen/Checkout/Models/Split.cs @@ -266,7 +266,7 @@ private TypeEnum(string? value) if (value == TypeEnum.VAT) return "VAT"; - return null; + return value.Value; } /// @@ -418,7 +418,7 @@ public override Split Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(Split.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(Split.TypeEnum.FromStringOrDefault(typeRawValue) ?? (Split.TypeEnum)typeRawValue); break; case "account": account = new Option(utf8JsonReader.GetString()!); @@ -442,7 +442,7 @@ public override Split Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert throw new ArgumentException("Property is required for class Split.", nameof(type)); var split = new Split(); - split.Type = type.Value!.Value; + split.Type = type.Value!; if (account.IsSet) split.Account = account.Value; if (amount.IsSet) diff --git a/Adyen/Checkout/Models/StandalonePaymentCancelResponse.cs b/Adyen/Checkout/Models/StandalonePaymentCancelResponse.cs index 65781e950..ff5da786e 100644 --- a/Adyen/Checkout/Models/StandalonePaymentCancelResponse.cs +++ b/Adyen/Checkout/Models/StandalonePaymentCancelResponse.cs @@ -131,7 +131,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Received) return "received"; - return null; + return value.Value; } /// @@ -272,7 +272,7 @@ public override StandalonePaymentCancelResponse Read(ref Utf8JsonReader utf8Json break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(StandalonePaymentCancelResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(StandalonePaymentCancelResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (StandalonePaymentCancelResponse.StatusEnum)statusRawValue); break; case "reference": reference = new Option(utf8JsonReader.GetString()!); @@ -299,7 +299,7 @@ public override StandalonePaymentCancelResponse Read(ref Utf8JsonReader utf8Json standalonePaymentCancelResponse.MerchantAccount = merchantAccount.Value!; standalonePaymentCancelResponse.PaymentReference = paymentReference.Value!; standalonePaymentCancelResponse.PspReference = pspReference.Value!; - standalonePaymentCancelResponse.Status = status.Value!.Value; + standalonePaymentCancelResponse.Status = status.Value!; if (reference.IsSet) standalonePaymentCancelResponse.Reference = reference.Value; return standalonePaymentCancelResponse; diff --git a/Adyen/Checkout/Models/StoredPaymentMethodDetails.cs b/Adyen/Checkout/Models/StoredPaymentMethodDetails.cs index e9188df98..3e33893ee 100644 --- a/Adyen/Checkout/Models/StoredPaymentMethodDetails.cs +++ b/Adyen/Checkout/Models/StoredPaymentMethodDetails.cs @@ -392,7 +392,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Paysafecard) return "paysafecard"; - return null; + return value.Value; } /// @@ -566,7 +566,7 @@ public override StoredPaymentMethodDetails Read(ref Utf8JsonReader utf8JsonReade break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(StoredPaymentMethodDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(StoredPaymentMethodDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (StoredPaymentMethodDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/StoredPaymentMethodRequest.cs b/Adyen/Checkout/Models/StoredPaymentMethodRequest.cs index 4873dfcef..ff53d50cd 100644 --- a/Adyen/Checkout/Models/StoredPaymentMethodRequest.cs +++ b/Adyen/Checkout/Models/StoredPaymentMethodRequest.cs @@ -149,7 +149,7 @@ private RecurringProcessingModelEnum(string? value) if (value == RecurringProcessingModelEnum.UnscheduledCardOnFile) return "UnscheduledCardOnFile"; - return null; + return value.Value; } /// @@ -302,7 +302,7 @@ public override StoredPaymentMethodRequest Read(ref Utf8JsonReader utf8JsonReade break; case "recurringProcessingModel": string? recurringProcessingModelRawValue = utf8JsonReader.GetString(); - recurringProcessingModel = new Option(StoredPaymentMethodRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue)); + recurringProcessingModel = new Option(StoredPaymentMethodRequest.RecurringProcessingModelEnum.FromStringOrDefault(recurringProcessingModelRawValue) ?? (StoredPaymentMethodRequest.RecurringProcessingModelEnum)recurringProcessingModelRawValue); break; case "shopperReference": shopperReference = new Option(utf8JsonReader.GetString()!); @@ -334,7 +334,7 @@ public override StoredPaymentMethodRequest Read(ref Utf8JsonReader utf8JsonReade var storedPaymentMethodRequest = new StoredPaymentMethodRequest(); storedPaymentMethodRequest.MerchantAccount = merchantAccount.Value!; storedPaymentMethodRequest.PaymentMethod = paymentMethod.Value!; - storedPaymentMethodRequest.RecurringProcessingModel = recurringProcessingModel.Value!.Value; + storedPaymentMethodRequest.RecurringProcessingModel = recurringProcessingModel.Value!; storedPaymentMethodRequest.ShopperReference = shopperReference.Value!; if (shopperEmail.IsSet) storedPaymentMethodRequest.ShopperEmail = shopperEmail.Value; diff --git a/Adyen/Checkout/Models/ThreeDS2RequestData.cs b/Adyen/Checkout/Models/ThreeDS2RequestData.cs index b6cbd4c13..39637ec63 100644 --- a/Adyen/Checkout/Models/ThreeDS2RequestData.cs +++ b/Adyen/Checkout/Models/ThreeDS2RequestData.cs @@ -149,7 +149,7 @@ private AcctTypeEnum(string? value) if (value == AcctTypeEnum._03) return "03"; - return null; + return value.Value; } /// @@ -286,7 +286,7 @@ private AddrMatchEnum(string? value) if (value == AddrMatchEnum.N) return "N"; - return null; + return value.Value; } /// @@ -441,7 +441,7 @@ private ChallengeIndicatorEnum(string? value) if (value == ChallengeIndicatorEnum.RequestChallengeAsMandate) return "requestChallengeAsMandate"; - return null; + return value.Value; } /// @@ -616,7 +616,7 @@ private ThreeDSRequestorChallengeIndEnum(string? value) if (value == ThreeDSRequestorChallengeIndEnum._06) return "06"; - return null; + return value.Value; } /// @@ -780,7 +780,7 @@ private TransTypeEnum(string? value) if (value == TransTypeEnum._28) return "28"; - return null; + return value.Value; } /// @@ -944,7 +944,7 @@ private TransactionTypeEnum(string? value) if (value == TransactionTypeEnum.PrepaidActivationAndLoad) return "prepaidActivationAndLoad"; - return null; + return value.Value; } /// @@ -1571,7 +1571,7 @@ public override ThreeDS2RequestData Read(ref Utf8JsonReader utf8JsonReader, Type break; case "acctType": string? acctTypeRawValue = utf8JsonReader.GetString(); - acctType = new Option(ThreeDS2RequestData.AcctTypeEnum.FromStringOrDefault(acctTypeRawValue)); + acctType = new Option(ThreeDS2RequestData.AcctTypeEnum.FromStringOrDefault(acctTypeRawValue) ?? (ThreeDS2RequestData.AcctTypeEnum)acctTypeRawValue); break; case "acquirerBIN": acquirerBIN = new Option(utf8JsonReader.GetString()!); @@ -1581,14 +1581,14 @@ public override ThreeDS2RequestData Read(ref Utf8JsonReader utf8JsonReader, Type break; case "addrMatch": string? addrMatchRawValue = utf8JsonReader.GetString(); - addrMatch = new Option(ThreeDS2RequestData.AddrMatchEnum.FromStringOrDefault(addrMatchRawValue)); + addrMatch = new Option(ThreeDS2RequestData.AddrMatchEnum.FromStringOrDefault(addrMatchRawValue) ?? (ThreeDS2RequestData.AddrMatchEnum)addrMatchRawValue); break; case "authenticationOnly": authenticationOnly = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (bool?)null : utf8JsonReader.GetBoolean()); break; case "challengeIndicator": string? challengeIndicatorRawValue = utf8JsonReader.GetString(); - challengeIndicator = new Option(ThreeDS2RequestData.ChallengeIndicatorEnum.FromStringOrDefault(challengeIndicatorRawValue)); + challengeIndicator = new Option(ThreeDS2RequestData.ChallengeIndicatorEnum.FromStringOrDefault(challengeIndicatorRawValue) ?? (ThreeDS2RequestData.ChallengeIndicatorEnum)challengeIndicatorRawValue); break; case "deviceRenderOptions": deviceRenderOptions = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1658,7 +1658,7 @@ public override ThreeDS2RequestData Read(ref Utf8JsonReader utf8JsonReader, Type break; case "threeDSRequestorChallengeInd": string? threeDSRequestorChallengeIndRawValue = utf8JsonReader.GetString(); - threeDSRequestorChallengeInd = new Option(ThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue)); + threeDSRequestorChallengeInd = new Option(ThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue) ?? (ThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum)threeDSRequestorChallengeIndRawValue); break; case "threeDSRequestorID": threeDSRequestorID = new Option(utf8JsonReader.GetString()!); @@ -1674,11 +1674,11 @@ public override ThreeDS2RequestData Read(ref Utf8JsonReader utf8JsonReader, Type break; case "transType": string? transTypeRawValue = utf8JsonReader.GetString(); - transType = new Option(ThreeDS2RequestData.TransTypeEnum.FromStringOrDefault(transTypeRawValue)); + transType = new Option(ThreeDS2RequestData.TransTypeEnum.FromStringOrDefault(transTypeRawValue) ?? (ThreeDS2RequestData.TransTypeEnum)transTypeRawValue); break; case "transactionType": string? transactionTypeRawValue = utf8JsonReader.GetString(); - transactionType = new Option(ThreeDS2RequestData.TransactionTypeEnum.FromStringOrDefault(transactionTypeRawValue)); + transactionType = new Option(ThreeDS2RequestData.TransactionTypeEnum.FromStringOrDefault(transactionTypeRawValue) ?? (ThreeDS2RequestData.TransactionTypeEnum)transactionTypeRawValue); break; case "whiteListStatus": whiteListStatus = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/ThreeDS2RequestFields.cs b/Adyen/Checkout/Models/ThreeDS2RequestFields.cs index ae4493c10..e411308af 100644 --- a/Adyen/Checkout/Models/ThreeDS2RequestFields.cs +++ b/Adyen/Checkout/Models/ThreeDS2RequestFields.cs @@ -149,7 +149,7 @@ private AcctTypeEnum(string? value) if (value == AcctTypeEnum._03) return "03"; - return null; + return value.Value; } /// @@ -286,7 +286,7 @@ private AddrMatchEnum(string? value) if (value == AddrMatchEnum.N) return "N"; - return null; + return value.Value; } /// @@ -441,7 +441,7 @@ private ChallengeIndicatorEnum(string? value) if (value == ChallengeIndicatorEnum.RequestChallengeAsMandate) return "requestChallengeAsMandate"; - return null; + return value.Value; } /// @@ -616,7 +616,7 @@ private ThreeDSRequestorChallengeIndEnum(string? value) if (value == ThreeDSRequestorChallengeIndEnum._06) return "06"; - return null; + return value.Value; } /// @@ -780,7 +780,7 @@ private TransTypeEnum(string? value) if (value == TransTypeEnum._28) return "28"; - return null; + return value.Value; } /// @@ -944,7 +944,7 @@ private TransactionTypeEnum(string? value) if (value == TransactionTypeEnum.PrepaidActivationAndLoad) return "prepaidActivationAndLoad"; - return null; + return value.Value; } /// @@ -1528,7 +1528,7 @@ public override ThreeDS2RequestFields Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "acctType": string? acctTypeRawValue = utf8JsonReader.GetString(); - acctType = new Option(ThreeDS2RequestFields.AcctTypeEnum.FromStringOrDefault(acctTypeRawValue)); + acctType = new Option(ThreeDS2RequestFields.AcctTypeEnum.FromStringOrDefault(acctTypeRawValue) ?? (ThreeDS2RequestFields.AcctTypeEnum)acctTypeRawValue); break; case "acquirerBIN": acquirerBIN = new Option(utf8JsonReader.GetString()!); @@ -1538,14 +1538,14 @@ public override ThreeDS2RequestFields Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "addrMatch": string? addrMatchRawValue = utf8JsonReader.GetString(); - addrMatch = new Option(ThreeDS2RequestFields.AddrMatchEnum.FromStringOrDefault(addrMatchRawValue)); + addrMatch = new Option(ThreeDS2RequestFields.AddrMatchEnum.FromStringOrDefault(addrMatchRawValue) ?? (ThreeDS2RequestFields.AddrMatchEnum)addrMatchRawValue); break; case "authenticationOnly": authenticationOnly = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (bool?)null : utf8JsonReader.GetBoolean()); break; case "challengeIndicator": string? challengeIndicatorRawValue = utf8JsonReader.GetString(); - challengeIndicator = new Option(ThreeDS2RequestFields.ChallengeIndicatorEnum.FromStringOrDefault(challengeIndicatorRawValue)); + challengeIndicator = new Option(ThreeDS2RequestFields.ChallengeIndicatorEnum.FromStringOrDefault(challengeIndicatorRawValue) ?? (ThreeDS2RequestFields.ChallengeIndicatorEnum)challengeIndicatorRawValue); break; case "deviceRenderOptions": deviceRenderOptions = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1609,7 +1609,7 @@ public override ThreeDS2RequestFields Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "threeDSRequestorChallengeInd": string? threeDSRequestorChallengeIndRawValue = utf8JsonReader.GetString(); - threeDSRequestorChallengeInd = new Option(ThreeDS2RequestFields.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue)); + threeDSRequestorChallengeInd = new Option(ThreeDS2RequestFields.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue) ?? (ThreeDS2RequestFields.ThreeDSRequestorChallengeIndEnum)threeDSRequestorChallengeIndRawValue); break; case "threeDSRequestorID": threeDSRequestorID = new Option(utf8JsonReader.GetString()!); @@ -1625,11 +1625,11 @@ public override ThreeDS2RequestFields Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "transType": string? transTypeRawValue = utf8JsonReader.GetString(); - transType = new Option(ThreeDS2RequestFields.TransTypeEnum.FromStringOrDefault(transTypeRawValue)); + transType = new Option(ThreeDS2RequestFields.TransTypeEnum.FromStringOrDefault(transTypeRawValue) ?? (ThreeDS2RequestFields.TransTypeEnum)transTypeRawValue); break; case "transactionType": string? transactionTypeRawValue = utf8JsonReader.GetString(); - transactionType = new Option(ThreeDS2RequestFields.TransactionTypeEnum.FromStringOrDefault(transactionTypeRawValue)); + transactionType = new Option(ThreeDS2RequestFields.TransactionTypeEnum.FromStringOrDefault(transactionTypeRawValue) ?? (ThreeDS2RequestFields.TransactionTypeEnum)transactionTypeRawValue); break; case "whiteListStatus": whiteListStatus = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/ThreeDS2Result.cs b/Adyen/Checkout/Models/ThreeDS2Result.cs index 2c1ceb226..0a1163ce5 100644 --- a/Adyen/Checkout/Models/ThreeDS2Result.cs +++ b/Adyen/Checkout/Models/ThreeDS2Result.cs @@ -185,7 +185,7 @@ private ChallengeCancelEnum(string? value) if (value == ChallengeCancelEnum._07) return "07"; - return null; + return value.Value; } /// @@ -340,7 +340,7 @@ private ExemptionIndicatorEnum(string? value) if (value == ExemptionIndicatorEnum.TransactionRiskAnalysis) return "transactionRiskAnalysis"; - return null; + return value.Value; } /// @@ -513,7 +513,7 @@ private ThreeDSRequestorChallengeIndEnum(string? value) if (value == ThreeDSRequestorChallengeIndEnum._06) return "06"; - return null; + return value.Value; } /// @@ -795,7 +795,7 @@ public override ThreeDS2Result Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "challengeCancel": string? challengeCancelRawValue = utf8JsonReader.GetString(); - challengeCancel = new Option(ThreeDS2Result.ChallengeCancelEnum.FromStringOrDefault(challengeCancelRawValue)); + challengeCancel = new Option(ThreeDS2Result.ChallengeCancelEnum.FromStringOrDefault(challengeCancelRawValue) ?? (ThreeDS2Result.ChallengeCancelEnum)challengeCancelRawValue); break; case "dsTransID": dsTransID = new Option(utf8JsonReader.GetString()!); @@ -805,7 +805,7 @@ public override ThreeDS2Result Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "exemptionIndicator": string? exemptionIndicatorRawValue = utf8JsonReader.GetString(); - exemptionIndicator = new Option(ThreeDS2Result.ExemptionIndicatorEnum.FromStringOrDefault(exemptionIndicatorRawValue)); + exemptionIndicator = new Option(ThreeDS2Result.ExemptionIndicatorEnum.FromStringOrDefault(exemptionIndicatorRawValue) ?? (ThreeDS2Result.ExemptionIndicatorEnum)exemptionIndicatorRawValue); break; case "messageVersion": messageVersion = new Option(utf8JsonReader.GetString()!); @@ -815,7 +815,7 @@ public override ThreeDS2Result Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "threeDSRequestorChallengeInd": string? threeDSRequestorChallengeIndRawValue = utf8JsonReader.GetString(); - threeDSRequestorChallengeInd = new Option(ThreeDS2Result.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue)); + threeDSRequestorChallengeInd = new Option(ThreeDS2Result.ThreeDSRequestorChallengeIndEnum.FromStringOrDefault(threeDSRequestorChallengeIndRawValue) ?? (ThreeDS2Result.ThreeDSRequestorChallengeIndEnum)threeDSRequestorChallengeIndRawValue); break; case "threeDSServerTransID": threeDSServerTransID = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/ThreeDSRequestData.cs b/Adyen/Checkout/Models/ThreeDSRequestData.cs index a8f0718b6..8f41a44b9 100644 --- a/Adyen/Checkout/Models/ThreeDSRequestData.cs +++ b/Adyen/Checkout/Models/ThreeDSRequestData.cs @@ -167,7 +167,7 @@ private ChallengeWindowSizeEnum(string? value) if (value == ChallengeWindowSizeEnum._05) return "05"; - return null; + return value.Value; } /// @@ -304,7 +304,7 @@ private DataOnlyEnum(string? value) if (value == DataOnlyEnum.True) return "true"; - return null; + return value.Value; } /// @@ -441,7 +441,7 @@ private NativeThreeDSEnum(string? value) if (value == NativeThreeDSEnum.Disabled) return "disabled"; - return null; + return value.Value; } /// @@ -578,7 +578,7 @@ private ThreeDSVersionEnum(string? value) if (value == ThreeDSVersionEnum._220) return "2.2.0"; - return null; + return value.Value; } /// @@ -680,19 +680,19 @@ public override ThreeDSRequestData Read(ref Utf8JsonReader utf8JsonReader, Type { case "challengeWindowSize": string? challengeWindowSizeRawValue = utf8JsonReader.GetString(); - challengeWindowSize = new Option(ThreeDSRequestData.ChallengeWindowSizeEnum.FromStringOrDefault(challengeWindowSizeRawValue)); + challengeWindowSize = new Option(ThreeDSRequestData.ChallengeWindowSizeEnum.FromStringOrDefault(challengeWindowSizeRawValue) ?? (ThreeDSRequestData.ChallengeWindowSizeEnum)challengeWindowSizeRawValue); break; case "dataOnly": string? dataOnlyRawValue = utf8JsonReader.GetString(); - dataOnly = new Option(ThreeDSRequestData.DataOnlyEnum.FromStringOrDefault(dataOnlyRawValue)); + dataOnly = new Option(ThreeDSRequestData.DataOnlyEnum.FromStringOrDefault(dataOnlyRawValue) ?? (ThreeDSRequestData.DataOnlyEnum)dataOnlyRawValue); break; case "nativeThreeDS": string? nativeThreeDSRawValue = utf8JsonReader.GetString(); - nativeThreeDS = new Option(ThreeDSRequestData.NativeThreeDSEnum.FromStringOrDefault(nativeThreeDSRawValue)); + nativeThreeDS = new Option(ThreeDSRequestData.NativeThreeDSEnum.FromStringOrDefault(nativeThreeDSRawValue) ?? (ThreeDSRequestData.NativeThreeDSEnum)nativeThreeDSRawValue); break; case "threeDSVersion": string? threeDSVersionRawValue = utf8JsonReader.GetString(); - threeDSVersion = new Option(ThreeDSRequestData.ThreeDSVersionEnum.FromStringOrDefault(threeDSVersionRawValue)); + threeDSVersion = new Option(ThreeDSRequestData.ThreeDSVersionEnum.FromStringOrDefault(threeDSVersionRawValue) ?? (ThreeDSRequestData.ThreeDSVersionEnum)threeDSVersionRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/ThreeDSRequestorAuthenticationInfo.cs b/Adyen/Checkout/Models/ThreeDSRequestorAuthenticationInfo.cs index f54ed2e5f..f5d864381 100644 --- a/Adyen/Checkout/Models/ThreeDSRequestorAuthenticationInfo.cs +++ b/Adyen/Checkout/Models/ThreeDSRequestorAuthenticationInfo.cs @@ -176,7 +176,7 @@ private ThreeDSReqAuthMethodEnum(string? value) if (value == ThreeDSReqAuthMethodEnum._06) return "06"; - return null; + return value.Value; } /// @@ -307,7 +307,7 @@ public override ThreeDSRequestorAuthenticationInfo Read(ref Utf8JsonReader utf8J break; case "threeDSReqAuthMethod": string? threeDSReqAuthMethodRawValue = utf8JsonReader.GetString(); - threeDSReqAuthMethod = new Option(ThreeDSRequestorAuthenticationInfo.ThreeDSReqAuthMethodEnum.FromStringOrDefault(threeDSReqAuthMethodRawValue)); + threeDSReqAuthMethod = new Option(ThreeDSRequestorAuthenticationInfo.ThreeDSReqAuthMethodEnum.FromStringOrDefault(threeDSReqAuthMethodRawValue) ?? (ThreeDSRequestorAuthenticationInfo.ThreeDSReqAuthMethodEnum)threeDSReqAuthMethodRawValue); break; case "threeDSReqAuthTimestamp": threeDSReqAuthTimestamp = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/ThreeDSRequestorPriorAuthenticationInfo.cs b/Adyen/Checkout/Models/ThreeDSRequestorPriorAuthenticationInfo.cs index 6201a3eb6..aa01d4f8a 100644 --- a/Adyen/Checkout/Models/ThreeDSRequestorPriorAuthenticationInfo.cs +++ b/Adyen/Checkout/Models/ThreeDSRequestorPriorAuthenticationInfo.cs @@ -158,7 +158,7 @@ private ThreeDSReqPriorAuthMethodEnum(string? value) if (value == ThreeDSReqPriorAuthMethodEnum._04) return "04"; - return null; + return value.Value; } /// @@ -305,7 +305,7 @@ public override ThreeDSRequestorPriorAuthenticationInfo Read(ref Utf8JsonReader break; case "threeDSReqPriorAuthMethod": string? threeDSReqPriorAuthMethodRawValue = utf8JsonReader.GetString(); - threeDSReqPriorAuthMethod = new Option(ThreeDSRequestorPriorAuthenticationInfo.ThreeDSReqPriorAuthMethodEnum.FromStringOrDefault(threeDSReqPriorAuthMethodRawValue)); + threeDSReqPriorAuthMethod = new Option(ThreeDSRequestorPriorAuthenticationInfo.ThreeDSReqPriorAuthMethodEnum.FromStringOrDefault(threeDSReqPriorAuthMethodRawValue) ?? (ThreeDSRequestorPriorAuthenticationInfo.ThreeDSReqPriorAuthMethodEnum)threeDSReqPriorAuthMethodRawValue); break; case "threeDSReqPriorAuthTimestamp": threeDSReqPriorAuthTimestamp = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/ThreeDSecureData.cs b/Adyen/Checkout/Models/ThreeDSecureData.cs index 408cf093c..78d520ee9 100644 --- a/Adyen/Checkout/Models/ThreeDSecureData.cs +++ b/Adyen/Checkout/Models/ThreeDSecureData.cs @@ -158,7 +158,7 @@ private AuthenticationResponseEnum(string? value) if (value == AuthenticationResponseEnum.A) return "A"; - return null; + return value.Value; } /// @@ -340,7 +340,7 @@ private ChallengeCancelEnum(string? value) if (value == ChallengeCancelEnum._07) return "07"; - return null; + return value.Value; } /// @@ -531,7 +531,7 @@ private DirectoryResponseEnum(string? value) if (value == DirectoryResponseEnum.Y) return "Y"; - return null; + return value.Value; } /// @@ -775,7 +775,7 @@ public override ThreeDSecureData Read(ref Utf8JsonReader utf8JsonReader, Type ty { case "authenticationResponse": string? authenticationResponseRawValue = utf8JsonReader.GetString(); - authenticationResponse = new Option(ThreeDSecureData.AuthenticationResponseEnum.FromStringOrDefault(authenticationResponseRawValue)); + authenticationResponse = new Option(ThreeDSecureData.AuthenticationResponseEnum.FromStringOrDefault(authenticationResponseRawValue) ?? (ThreeDSecureData.AuthenticationResponseEnum)authenticationResponseRawValue); break; case "cavv": cavv = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -785,11 +785,11 @@ public override ThreeDSecureData Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "challengeCancel": string? challengeCancelRawValue = utf8JsonReader.GetString(); - challengeCancel = new Option(ThreeDSecureData.ChallengeCancelEnum.FromStringOrDefault(challengeCancelRawValue)); + challengeCancel = new Option(ThreeDSecureData.ChallengeCancelEnum.FromStringOrDefault(challengeCancelRawValue) ?? (ThreeDSecureData.ChallengeCancelEnum)challengeCancelRawValue); break; case "directoryResponse": string? directoryResponseRawValue = utf8JsonReader.GetString(); - directoryResponse = new Option(ThreeDSecureData.DirectoryResponseEnum.FromStringOrDefault(directoryResponseRawValue)); + directoryResponse = new Option(ThreeDSecureData.DirectoryResponseEnum.FromStringOrDefault(directoryResponseRawValue) ?? (ThreeDSecureData.DirectoryResponseEnum)directoryResponseRawValue); break; case "dsTransID": dsTransID = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/Checkout/Models/TokenMandate.cs b/Adyen/Checkout/Models/TokenMandate.cs index 6faa17b14..5b6ec22f1 100644 --- a/Adyen/Checkout/Models/TokenMandate.cs +++ b/Adyen/Checkout/Models/TokenMandate.cs @@ -194,7 +194,7 @@ private FrequencyEnum(string? value) if (value == FrequencyEnum.Yearly) return "yearly"; - return null; + return value.Value; } /// @@ -324,7 +324,7 @@ private AmountRuleEnum(string? value) if (value == AmountRuleEnum.Exact) return "exact"; - return null; + return value.Value; } /// @@ -470,7 +470,7 @@ private BillingAttemptsRuleEnum(string? value) if (value == BillingAttemptsRuleEnum.After) return "after"; - return null; + return value.Value; } /// @@ -607,7 +607,7 @@ private RetryPolicyEnum(string? value) if (value == RetryPolicyEnum.False) return "false"; - return null; + return value.Value; } /// @@ -925,7 +925,7 @@ public override TokenMandate Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "frequency": string? frequencyRawValue = utf8JsonReader.GetString(); - frequency = new Option(TokenMandate.FrequencyEnum.FromStringOrDefault(frequencyRawValue)); + frequency = new Option(TokenMandate.FrequencyEnum.FromStringOrDefault(frequencyRawValue) ?? (TokenMandate.FrequencyEnum)frequencyRawValue); break; case "mandateId": mandateId = new Option(utf8JsonReader.GetString()!); @@ -944,11 +944,11 @@ public override TokenMandate Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "amountRule": string? amountRuleRawValue = utf8JsonReader.GetString(); - amountRule = new Option(TokenMandate.AmountRuleEnum.FromStringOrDefault(amountRuleRawValue)); + amountRule = new Option(TokenMandate.AmountRuleEnum.FromStringOrDefault(amountRuleRawValue) ?? (TokenMandate.AmountRuleEnum)amountRuleRawValue); break; case "billingAttemptsRule": string? billingAttemptsRuleRawValue = utf8JsonReader.GetString(); - billingAttemptsRule = new Option(TokenMandate.BillingAttemptsRuleEnum.FromStringOrDefault(billingAttemptsRuleRawValue)); + billingAttemptsRule = new Option(TokenMandate.BillingAttemptsRuleEnum.FromStringOrDefault(billingAttemptsRuleRawValue) ?? (TokenMandate.BillingAttemptsRuleEnum)billingAttemptsRuleRawValue); break; case "billingDay": billingDay = new Option(utf8JsonReader.GetString()!); @@ -973,7 +973,7 @@ public override TokenMandate Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "retryPolicy": string? retryPolicyRawValue = utf8JsonReader.GetString(); - retryPolicy = new Option(TokenMandate.RetryPolicyEnum.FromStringOrDefault(retryPolicyRawValue)); + retryPolicy = new Option(TokenMandate.RetryPolicyEnum.FromStringOrDefault(retryPolicyRawValue) ?? (TokenMandate.RetryPolicyEnum)retryPolicyRawValue); break; case "startsAt": startsAt = new Option(utf8JsonReader.GetString()!); @@ -1012,7 +1012,7 @@ public override TokenMandate Read(ref Utf8JsonReader utf8JsonReader, Type typeTo tokenMandate.Amount = amount.Value!; tokenMandate.Currency = currency.Value!; tokenMandate.EndsAt = endsAt.Value!; - tokenMandate.Frequency = frequency.Value!.Value; + tokenMandate.Frequency = frequency.Value!; tokenMandate.MandateId = mandateId.Value!; tokenMandate.ProviderId = providerId.Value!; tokenMandate.Status = status.Value!; diff --git a/Adyen/Checkout/Models/TwintDetails.cs b/Adyen/Checkout/Models/TwintDetails.cs index 649b9f3f5..e21efe5e2 100644 --- a/Adyen/Checkout/Models/TwintDetails.cs +++ b/Adyen/Checkout/Models/TwintDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Twint) return "twint"; - return null; + return value.Value; } /// @@ -324,7 +324,7 @@ public override TwintDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(TwintDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(TwintDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (TwintDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/UpdatePaymentLinkRequest.cs b/Adyen/Checkout/Models/UpdatePaymentLinkRequest.cs index 92292666c..91e61ab06 100644 --- a/Adyen/Checkout/Models/UpdatePaymentLinkRequest.cs +++ b/Adyen/Checkout/Models/UpdatePaymentLinkRequest.cs @@ -131,7 +131,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Expired) return "expired"; - return null; + return value.Value; } /// @@ -220,7 +220,7 @@ public override UpdatePaymentLinkRequest Read(ref Utf8JsonReader utf8JsonReader, { case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(UpdatePaymentLinkRequest.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(UpdatePaymentLinkRequest.StatusEnum.FromStringOrDefault(statusRawValue) ?? (UpdatePaymentLinkRequest.StatusEnum)statusRawValue); break; default: break; @@ -232,7 +232,7 @@ public override UpdatePaymentLinkRequest Read(ref Utf8JsonReader utf8JsonReader, throw new ArgumentException("Property is required for class UpdatePaymentLinkRequest.", nameof(status)); var updatePaymentLinkRequest = new UpdatePaymentLinkRequest(); - updatePaymentLinkRequest.Status = status.Value!.Value; + updatePaymentLinkRequest.Status = status.Value!; return updatePaymentLinkRequest; } diff --git a/Adyen/Checkout/Models/UpiCollectDetails.cs b/Adyen/Checkout/Models/UpiCollectDetails.cs index 18e0d7572..9fd2846e5 100644 --- a/Adyen/Checkout/Models/UpiCollectDetails.cs +++ b/Adyen/Checkout/Models/UpiCollectDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UpiCollect) return "upi_collect"; - return null; + return value.Value; } /// @@ -352,7 +352,7 @@ public override UpiCollectDetails Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(UpiCollectDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(UpiCollectDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (UpiCollectDetails.TypeEnum)typeRawValue); break; case "virtualPaymentAddress": virtualPaymentAddress = new Option(utf8JsonReader.GetString()!); @@ -379,7 +379,7 @@ public override UpiCollectDetails Read(ref Utf8JsonReader utf8JsonReader, Type t upiCollectDetails.ShopperNotificationReference = shopperNotificationReference.Value; if (storedPaymentMethodId.IsSet) upiCollectDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - upiCollectDetails.Type = type.Value!.Value; + upiCollectDetails.Type = type.Value!; if (virtualPaymentAddress.IsSet) upiCollectDetails.VirtualPaymentAddress = virtualPaymentAddress.Value; return upiCollectDetails; diff --git a/Adyen/Checkout/Models/UpiIntentDetails.cs b/Adyen/Checkout/Models/UpiIntentDetails.cs index b1b620ef0..8364c2ae7 100644 --- a/Adyen/Checkout/Models/UpiIntentDetails.cs +++ b/Adyen/Checkout/Models/UpiIntentDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UpiIntent) return "upi_intent"; - return null; + return value.Value; } /// @@ -355,7 +355,7 @@ public override UpiIntentDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(UpiIntentDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(UpiIntentDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (UpiIntentDetails.TypeEnum)typeRawValue); break; default: break; @@ -381,7 +381,7 @@ public override UpiIntentDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty upiIntentDetails.ShopperNotificationReference = shopperNotificationReference.Value; if (storedPaymentMethodId.IsSet) upiIntentDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - upiIntentDetails.Type = type.Value!.Value; + upiIntentDetails.Type = type.Value!; return upiIntentDetails; } diff --git a/Adyen/Checkout/Models/UpiQrDetails.cs b/Adyen/Checkout/Models/UpiQrDetails.cs index 1baddb76b..c280ea9bb 100644 --- a/Adyen/Checkout/Models/UpiQrDetails.cs +++ b/Adyen/Checkout/Models/UpiQrDetails.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UpiQr) return "upi_qr"; - return null; + return value.Value; } /// @@ -336,7 +336,7 @@ public override UpiQrDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(UpiQrDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(UpiQrDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (UpiQrDetails.TypeEnum)typeRawValue); break; default: break; @@ -360,7 +360,7 @@ public override UpiQrDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeTo upiQrDetails.ShopperNotificationReference = shopperNotificationReference.Value; if (storedPaymentMethodId.IsSet) upiQrDetails.StoredPaymentMethodId = storedPaymentMethodId.Value; - upiQrDetails.Type = type.Value!.Value; + upiQrDetails.Type = type.Value!; return upiQrDetails; } diff --git a/Adyen/Checkout/Models/ValidateShopperIdResponse.cs b/Adyen/Checkout/Models/ValidateShopperIdResponse.cs index 5b257bb92..36a819de4 100644 --- a/Adyen/Checkout/Models/ValidateShopperIdResponse.cs +++ b/Adyen/Checkout/Models/ValidateShopperIdResponse.cs @@ -131,8 +131,7 @@ public override ValidateShopperIdResponse Read(ref Utf8JsonReader utf8JsonReader break; case "result": string? resultRawValue = utf8JsonReader.GetString(); - if (resultRawValue != null) - result = new Option(ResultValueConverter.FromStringOrDefault(resultRawValue)); + result = new Option(Result.FromStringOrDefault(resultRawValue) ?? (Result)resultRawValue); break; default: break; @@ -180,7 +179,7 @@ public void WriteProperties(Utf8JsonWriter writer, ValidateShopperIdResponse val if (validateShopperIdResponse._ResultOption.IsSet) { - var resultRawValue = ResultValueConverter.ToJsonValue(validateShopperIdResponse.Result!.Value); + var resultRawValue = Result.ToJsonValue(validateShopperIdResponse.Result); writer.WriteString("result", resultRawValue); } } diff --git a/Adyen/Checkout/Models/VippsDetails.cs b/Adyen/Checkout/Models/VippsDetails.cs index 39afb4b73..f130a739c 100644 --- a/Adyen/Checkout/Models/VippsDetails.cs +++ b/Adyen/Checkout/Models/VippsDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Vipps) return "vipps"; - return null; + return value.Value; } /// @@ -317,7 +317,7 @@ public override VippsDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(VippsDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(VippsDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (VippsDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/VisaCheckoutDetails.cs b/Adyen/Checkout/Models/VisaCheckoutDetails.cs index e5b3343db..f0fd733eb 100644 --- a/Adyen/Checkout/Models/VisaCheckoutDetails.cs +++ b/Adyen/Checkout/Models/VisaCheckoutDetails.cs @@ -150,7 +150,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -278,7 +278,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Visacheckout) return "visacheckout"; - return null; + return value.Value; } /// @@ -423,14 +423,14 @@ public override VisaCheckoutDetails Read(ref Utf8JsonReader utf8JsonReader, Type break; case "fundingSource": string? fundingSourceRawValue = utf8JsonReader.GetString(); - fundingSource = new Option(VisaCheckoutDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue)); + fundingSource = new Option(VisaCheckoutDetails.FundingSourceEnum.FromStringOrDefault(fundingSourceRawValue) ?? (VisaCheckoutDetails.FundingSourceEnum)fundingSourceRawValue); break; case "sdkData": sdkData = new Option(utf8JsonReader.GetString()!); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(VisaCheckoutDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(VisaCheckoutDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (VisaCheckoutDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/WeChatPayDetails.cs b/Adyen/Checkout/Models/WeChatPayDetails.cs index a637af78b..468454c5b 100644 --- a/Adyen/Checkout/Models/WeChatPayDetails.cs +++ b/Adyen/Checkout/Models/WeChatPayDetails.cs @@ -141,7 +141,7 @@ private TypeEnum(string? value) if (value == TypeEnum.WechatpayPos) return "wechatpay_pos"; - return null; + return value.Value; } /// @@ -275,7 +275,7 @@ public override WeChatPayDetails Read(ref Utf8JsonReader utf8JsonReader, Type ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(WeChatPayDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(WeChatPayDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (WeChatPayDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/WeChatPayMiniProgramDetails.cs b/Adyen/Checkout/Models/WeChatPayMiniProgramDetails.cs index e1fd56f5d..d383d1b93 100644 --- a/Adyen/Checkout/Models/WeChatPayMiniProgramDetails.cs +++ b/Adyen/Checkout/Models/WeChatPayMiniProgramDetails.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.WechatpayMiniProgram) return "wechatpayMiniProgram"; - return null; + return value.Value; } /// @@ -342,7 +342,7 @@ public override WeChatPayMiniProgramDetails Read(ref Utf8JsonReader utf8JsonRead break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(WeChatPayMiniProgramDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(WeChatPayMiniProgramDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (WeChatPayMiniProgramDetails.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/Checkout/Models/ZipDetails.cs b/Adyen/Checkout/Models/ZipDetails.cs index fdb7c8809..7c4b7dead 100644 --- a/Adyen/Checkout/Models/ZipDetails.cs +++ b/Adyen/Checkout/Models/ZipDetails.cs @@ -141,7 +141,7 @@ private TypeEnum(string? value) if (value == TypeEnum.ZipPos) return "zip_pos"; - return null; + return value.Value; } /// @@ -334,7 +334,7 @@ public override ZipDetails Read(ref Utf8JsonReader utf8JsonReader, Type typeToCo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(ZipDetails.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(ZipDetails.TypeEnum.FromStringOrDefault(typeRawValue) ?? (ZipDetails.TypeEnum)typeRawValue); break; default: break; From 115781c6637b70bdf7856ada99ecc19d4e233c30 Mon Sep 17 00:00:00 2001 From: beppe Date: Tue, 12 May 2026 12:48:48 +0200 Subject: [PATCH 3/4] Testing enums --- Adyen.Test/Checkout/IEnumCheckoutTest.cs | 254 +++++++++++ Adyen.Test/Core/IEnumTest.cs | 20 +- Adyen.Test/Core/StandaloneEnumTest.cs | 544 +++++++++++++++++++++++ 3 files changed, 810 insertions(+), 8 deletions(-) create mode 100644 Adyen.Test/Checkout/IEnumCheckoutTest.cs create mode 100644 Adyen.Test/Core/StandaloneEnumTest.cs diff --git a/Adyen.Test/Checkout/IEnumCheckoutTest.cs b/Adyen.Test/Checkout/IEnumCheckoutTest.cs new file mode 100644 index 000000000..71d6df56e --- /dev/null +++ b/Adyen.Test/Checkout/IEnumCheckoutTest.cs @@ -0,0 +1,254 @@ +using Adyen.Checkout.Client; +using Adyen.Checkout.Extensions; +using Adyen.Checkout.Models; +using Adyen.Core.Options; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Text.Json; + +namespace Adyen.Test.Checkout +{ + /// + /// Tests for the IEnum pattern applied to generated Checkout models: + /// - Result (standalone IEnum, generated by modelEnum.mustache) + /// - PixPayByBankDetails (model with optional inner TypeEnum, generated by modelInnerEnum.mustache) + /// + [TestClass] + public class IEnumCheckoutTest + { + private readonly JsonSerializerOptionsProvider _jsonSerializerOptionsProvider; + + public IEnumCheckoutTest() + { + IHost testHost = Host.CreateDefaultBuilder() + .ConfigureCheckout((context, services, config) => + { + config.ConfigureAdyenOptions(options => + { + options.Environment = AdyenEnvironment.Test; + }); + }) + .Build(); + + _jsonSerializerOptionsProvider = testHost.Services.GetRequiredService(); + } + + // ── Result: standalone IEnum ────────────────────────────────────────────── + + [TestMethod] + public void Given_Result_When_DeserializeKnownValue_Then_ReturnsStaticInstance() + { + Result? result = JsonSerializer.Deserialize("\"VALID\"", _jsonSerializerOptionsProvider.Options); + Assert.AreEqual(Result.VALID, result); + Assert.AreEqual("VALID", result?.Value); + } + + [TestMethod] + public void Given_Result_When_DeserializeAllKnownValues_Then_EachMatchesStaticInstance() + { + var opts = _jsonSerializerOptionsProvider.Options; + Assert.AreEqual(Result.VALID, JsonSerializer.Deserialize("\"VALID\"", opts)); + Assert.AreEqual(Result.INVALID, JsonSerializer.Deserialize("\"INVALID\"", opts)); + Assert.AreEqual(Result.UNKNOWN, JsonSerializer.Deserialize("\"UNKNOWN\"", opts)); + Assert.AreEqual(Result.NOTREQUIRED, JsonSerializer.Deserialize("\"NOT_REQUIRED\"", opts)); + } + + [TestMethod] + public void Given_Result_When_DeserializeUnknownValue_Then_PreservesRawString() + { + Result? result = JsonSerializer.Deserialize("\"FUTURE_VALUE\"", _jsonSerializerOptionsProvider.Options); + Assert.IsNotNull(result); + Assert.AreEqual("FUTURE_VALUE", result!.Value); + Assert.AreNotEqual(Result.VALID, result); + } + + [TestMethod] + public void Given_Result_When_DeserializeUnknownValue_Then_DoesNotThrow() + { + Exception? ex = null; + Result? result = null; + try { result = JsonSerializer.Deserialize("\"NEW_RESULT_TYPE\"", _jsonSerializerOptionsProvider.Options); } + catch (Exception e) { ex = e; } + Assert.IsNull(ex); + Assert.IsNotNull(result); + } + + [TestMethod] + public void Given_Result_When_DeserializeNull_Then_ReturnsNull() + { + Result? result = JsonSerializer.Deserialize("null", _jsonSerializerOptionsProvider.Options); + Assert.IsNull(result); + } + + [TestMethod] + public void Given_Result_When_SerializeKnownValue_Then_WritesCorrectString() + { + string json = JsonSerializer.Serialize(Result.VALID, _jsonSerializerOptionsProvider.Options); + Assert.AreEqual("\"VALID\"", json); + + json = JsonSerializer.Serialize(Result.NOTREQUIRED, _jsonSerializerOptionsProvider.Options); + Assert.AreEqual("\"NOT_REQUIRED\"", json); + } + + [TestMethod] + public void Given_Result_When_SerializeUnknownValue_Then_PreservesRawString() + { + Result unknown = (Result)"FUTURE_RESULT"; + string json = JsonSerializer.Serialize(unknown, _jsonSerializerOptionsProvider.Options); + Assert.AreEqual("\"FUTURE_RESULT\"", json); + } + + [TestMethod] + public void Given_Result_When_RoundTripUnknownValue_Then_ValueIsPreserved() + { + var opts = _jsonSerializerOptionsProvider.Options; + Result original = (Result)"FUTURE_RESULT"; + string serialized = JsonSerializer.Serialize(original, opts); + Result? deserialized = JsonSerializer.Deserialize(serialized, opts); + Assert.IsNotNull(deserialized); + Assert.AreEqual("FUTURE_RESULT", deserialized!.Value); + } + + [TestMethod] + public void Given_Result_When_FromStringOrDefaultKnownValue_Then_ReturnsStaticInstance() + { + Assert.AreEqual(Result.VALID, Result.FromStringOrDefault("VALID")); + Assert.AreEqual(Result.INVALID, Result.FromStringOrDefault("INVALID")); + Assert.AreEqual(Result.UNKNOWN, Result.FromStringOrDefault("UNKNOWN")); + Assert.AreEqual(Result.NOTREQUIRED, Result.FromStringOrDefault("NOT_REQUIRED")); + } + + [TestMethod] + public void Given_Result_When_FromStringOrDefaultUnknownValue_Then_ReturnsNull() + { + Assert.IsNull(Result.FromStringOrDefault("SOMETHING_ELSE")); + } + + [TestMethod] + public void Given_Result_When_ToJsonValueKnownEnum_Then_ReturnsString() + { + Assert.AreEqual("VALID", Result.ToJsonValue(Result.VALID)); + Assert.AreEqual("NOT_REQUIRED", Result.ToJsonValue(Result.NOTREQUIRED)); + } + + [TestMethod] + public void Given_Result_When_ToJsonValueUnknown_Then_ReturnsRawString() + { + Result unknown = (Result)"FUTURE_RESULT"; + Assert.AreEqual("FUTURE_RESULT", Result.ToJsonValue(unknown)); + } + + [TestMethod] + public void Given_Result_When_ToJsonValueNull_Then_ReturnsNull() + { + Assert.IsNull(Result.ToJsonValue(null)); + } + + [TestMethod] + public void Given_Result_When_EqualityBetweenKnownInstances_Then_Equal() + { + Assert.AreEqual(Result.VALID, Result.VALID); + Assert.IsTrue(Result.VALID == Result.VALID); + Assert.AreNotEqual(Result.VALID, Result.INVALID); + } + + [TestMethod] + public void Given_Result_When_EqualityIsCaseInsensitive_Then_Equal() + { + Result lower = (Result)"valid"; + Result upper = (Result)"VALID"; + Assert.AreEqual(lower, upper); + Assert.IsTrue(lower == upper); + } + + // ── PixPayByBankDetails: model with optional inner TypeEnum ─────────────── + + [TestMethod] + public void Given_PixPayByBankDetails_When_DeserializeWithKnownType_Then_TypeMatchesStaticInstance() + { + string json = """{"type":"paybybank_pix"}"""; + PixPayByBankDetails? result = JsonSerializer.Deserialize(json, _jsonSerializerOptionsProvider.Options); + Assert.IsNotNull(result); + Assert.AreEqual(PixPayByBankDetails.TypeEnum.PaybybankPix, result!.Type); + Assert.AreEqual("paybybank_pix", result.Type?.Value); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_DeserializeWithUnknownType_Then_PreservesRawString() + { + string json = """{"type":"paybybank_future"}"""; + PixPayByBankDetails? result = JsonSerializer.Deserialize(json, _jsonSerializerOptionsProvider.Options); + Assert.IsNotNull(result); + Assert.IsNotNull(result!.Type); + Assert.AreEqual("paybybank_future", result.Type!.Value); + Assert.AreNotEqual(PixPayByBankDetails.TypeEnum.PaybybankPix, result.Type); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_DeserializeWithUnknownType_Then_DoesNotThrow() + { + string json = """{"type":"completely_new_type","checkoutAttemptId":"abc"}"""; + Exception? ex = null; + PixPayByBankDetails? result = null; + try { result = JsonSerializer.Deserialize(json, _jsonSerializerOptionsProvider.Options); } + catch (Exception e) { ex = e; } + Assert.IsNull(ex); + Assert.IsNotNull(result); + Assert.AreEqual("completely_new_type", result!.Type?.Value); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_DeserializeWithoutTypeField_Then_TypeUsesDefault() + { + string json = """{"checkoutAttemptId":"abc123"}"""; + PixPayByBankDetails? result = JsonSerializer.Deserialize(json, _jsonSerializerOptionsProvider.Options); + Assert.IsNotNull(result); + // Constructor sets _TypeOption = TypeEnum.PaybybankPix (the default) + Assert.AreEqual(PixPayByBankDetails.TypeEnum.PaybybankPix, result!.Type); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_SerializeWithKnownType_Then_WritesCorrectString() + { + string json = """{"type":"paybybank_pix"}"""; + PixPayByBankDetails? deserialized = JsonSerializer.Deserialize(json, _jsonSerializerOptionsProvider.Options); + string reserialized = JsonSerializer.Serialize(deserialized, _jsonSerializerOptionsProvider.Options); + Assert.IsTrue(reserialized.Contains("\"paybybank_pix\""), $"Unexpected JSON: {reserialized}"); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_SerializeWithUnknownType_Then_PreservesRawString() + { + string json = """{"type":"paybybank_future"}"""; + PixPayByBankDetails? deserialized = JsonSerializer.Deserialize(json, _jsonSerializerOptionsProvider.Options); + string reserialized = JsonSerializer.Serialize(deserialized, _jsonSerializerOptionsProvider.Options); + Assert.IsTrue(reserialized.Contains("\"paybybank_future\""), $"Unexpected JSON: {reserialized}"); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_RoundTripWithOtherFields_Then_AllFieldsPreserved() + { + string json = """{"type":"paybybank_pix","checkoutAttemptId":"attempt-123","issuer":"BankXYZ"}"""; + var opts = _jsonSerializerOptionsProvider.Options; + PixPayByBankDetails? deserialized = JsonSerializer.Deserialize(json, opts); + Assert.IsNotNull(deserialized); + Assert.AreEqual(PixPayByBankDetails.TypeEnum.PaybybankPix, deserialized!.Type); + Assert.AreEqual("attempt-123", deserialized.CheckoutAttemptId); + Assert.AreEqual("BankXYZ", deserialized.Issuer); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_TypeEnumFromStringOrDefaultKnown_Then_ReturnsStaticInstance() + { + Assert.AreEqual(PixPayByBankDetails.TypeEnum.PaybybankPix, + PixPayByBankDetails.TypeEnum.FromStringOrDefault("paybybank_pix")); + } + + [TestMethod] + public void Given_PixPayByBankDetails_When_TypeEnumFromStringOrDefaultUnknown_Then_ReturnsNull() + { + Assert.IsNull(PixPayByBankDetails.TypeEnum.FromStringOrDefault("unknown_type")); + } + } +} diff --git a/Adyen.Test/Core/IEnumTest.cs b/Adyen.Test/Core/IEnumTest.cs index 1923dea98..43faefd0e 100644 --- a/Adyen.Test/Core/IEnumTest.cs +++ b/Adyen.Test/Core/IEnumTest.cs @@ -111,10 +111,12 @@ public async Task Given_ToJsonValue_When_Null_Then_Returns_Null() } [TestMethod] - public async Task Given_ToJsonValue_When_CustomEnum_Then_Returns_Null() + public async Task Given_ToJsonValue_When_CustomEnum_Then_Returns_RawValue() { - ExampleEnum custom = ExampleEnum.FromStringOrDefault("this-is-not-a-valid-enum"); - Assert.IsNull(ExampleEnum.ToJsonValue(custom)); + // After the modelInnerEnum.mustache fix, ToJsonValue preserves unknown values + // for round-trip safety instead of returning null. + ExampleEnum? custom = (ExampleEnum)"this-is-not-a-valid-enum"; + Assert.AreEqual("this-is-not-a-valid-enum", ExampleEnum.ToJsonValue(custom)); } [TestMethod] @@ -137,17 +139,19 @@ public async Task Given_JsonSerialization_When_KnownEnum_Then_Serialize_and_Dese } [TestMethod] - public async Task Given_JsonSerialization_When_EnumNotInList_Then_Returns_Null() + public async Task Given_JsonSerialization_When_EnumNotInList_Then_PreservesRawValue() { + // After the modelInnerEnum.mustache fix, unknown values are preserved for round-trip safety. var options = new JsonSerializerOptions(); options.Converters.Add(new ExampleEnum.ExampleJsonConverter()); - ExampleEnum? value = ExampleEnum.FromStringOrDefault("not-in-list"); + ExampleEnum? value = (ExampleEnum)"not-in-list"; string serialized = JsonSerializer.Serialize(value, options); - Assert.AreEqual("null", serialized); + Assert.AreEqual("\"not-in-list\"", serialized); ExampleEnum? deserialized = JsonSerializer.Deserialize(serialized, options); - Assert.AreEqual(null, deserialized); + Assert.IsNotNull(deserialized); + Assert.AreEqual("not-in-list", deserialized!.Value); } [TestMethod] @@ -338,7 +342,7 @@ private ExampleEnum(string? value) if (value == ExampleEnum.B) return "b"; - return null; + return value.Value; } public class ExampleJsonConverter : JsonConverter diff --git a/Adyen.Test/Core/StandaloneEnumTest.cs b/Adyen.Test/Core/StandaloneEnumTest.cs new file mode 100644 index 000000000..0f7d8731f --- /dev/null +++ b/Adyen.Test/Core/StandaloneEnumTest.cs @@ -0,0 +1,544 @@ +#nullable enable +using System; +using System.Text.Json; +using System.Text.Json.Serialization; +using Adyen.Core; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Adyen.Test.Core +{ + /// + /// Tests for the standalone IEnum class pattern (generated by modelEnum.mustache). + /// Covers IEX-3037 (forward-compatibility) and GitHub issue #1612 (NullReferenceException). + /// + [TestClass] + public class StandaloneEnumTest + { + // ─── Deserialization: known values ──────────────────────────────────────── + + [TestMethod] + public void Given_JsonDeserialization_When_KnownValue_Then_Returns_CorrectInstance() + { + var options = BuildOptions(); + ExampleStandaloneEnum? result = JsonSerializer.Deserialize("\"active\"", options); + Assert.AreEqual(ExampleStandaloneEnum.Active, result); + Assert.AreEqual("active", result?.Value); + } + + [TestMethod] + public void Given_JsonDeserialization_When_AnotherKnownValue_Then_Returns_CorrectInstance() + { + var options = BuildOptions(); + ExampleStandaloneEnum? result = JsonSerializer.Deserialize("\"inactive\"", options); + Assert.AreEqual(ExampleStandaloneEnum.Inactive, result); + } + + // ─── Deserialization: unknown values are preserved ──────────────────────── + + [TestMethod] + public void Given_JsonDeserialization_When_UnknownValue_Then_PreservesRawString() + { + var options = BuildOptions(); + ExampleStandaloneEnum? result = JsonSerializer.Deserialize("\"future-value\"", options); + Assert.IsNotNull(result); + Assert.AreEqual("future-value", result!.Value); + Assert.AreNotEqual(ExampleStandaloneEnum.Active, result); + } + + [TestMethod] + public void Given_JsonDeserialization_When_UnknownValue_Then_DoesNotThrow() + { + var options = BuildOptions(); + ExampleStandaloneEnum? result = null; + var ex = CaptureException(() => + result = JsonSerializer.Deserialize("\"completely-unknown-status\"", options)); + Assert.IsNull(ex); + Assert.IsNotNull(result); + Assert.AreEqual("completely-unknown-status", result!.Value); + } + + // ─── Deserialization: null ──────────────────────────────────────────────── + + [TestMethod] + public void Given_JsonDeserialization_When_NullJson_Then_ReturnsNull() + { + var options = BuildOptions(); + ExampleStandaloneEnum? result = JsonSerializer.Deserialize("null", options); + Assert.IsNull(result); + } + + // ─── Serialization: known values ───────────────────────────────────────── + + [TestMethod] + public void Given_JsonSerialization_When_KnownValue_Then_WritesCorrectString() + { + var options = BuildOptions(); + string json = JsonSerializer.Serialize(ExampleStandaloneEnum.Active, options); + Assert.AreEqual("\"active\"", json); + } + + // ─── Serialization: unknown values are preserved ───────────────────────── + + [TestMethod] + public void Given_JsonSerialization_When_UnknownValue_Then_PreservesRawString() + { + var options = BuildOptions(); + ExampleStandaloneEnum unknown = (ExampleStandaloneEnum)"new-future-value"; + string json = JsonSerializer.Serialize(unknown, options); + Assert.AreEqual("\"new-future-value\"", json); + } + + // ─── Serialization: null ───────────────────────────────────────────────── + + [TestMethod] + public void Given_JsonSerialization_When_NullValue_Then_WritesJsonNull() + { + var options = BuildOptions(); + ExampleStandaloneEnum? value = null; + string json = JsonSerializer.Serialize(value, options); + Assert.AreEqual("null", json); + } + + // ─── Round-trip: known values ───────────────────────────────────────────── + + [TestMethod] + public void Given_RoundTrip_When_KnownValue_Then_PreservesIdentity() + { + var options = BuildOptions(); + string serialized = JsonSerializer.Serialize(ExampleStandaloneEnum.Active, options); + ExampleStandaloneEnum? deserialized = JsonSerializer.Deserialize(serialized, options); + Assert.AreEqual(ExampleStandaloneEnum.Active, deserialized); + } + + // ─── Round-trip: unknown values ─────────────────────────────────────────── + + [TestMethod] + public void Given_RoundTrip_When_UnknownValue_Then_PreservesRawString() + { + var options = BuildOptions(); + ExampleStandaloneEnum original = (ExampleStandaloneEnum)"brand-new-value"; + string serialized = JsonSerializer.Serialize(original, options); + ExampleStandaloneEnum? deserialized = JsonSerializer.Deserialize(serialized, options); + Assert.IsNotNull(deserialized); + Assert.AreEqual("brand-new-value", deserialized!.Value); + } + + // ─── Equality ──────────────────────────────────────────────────────────── + + [TestMethod] + public void Given_Equality_When_SameKnownValues_Then_Equal() + { + Assert.AreEqual(ExampleStandaloneEnum.Active, ExampleStandaloneEnum.Active); + Assert.IsTrue(ExampleStandaloneEnum.Active == ExampleStandaloneEnum.Active); + } + + [TestMethod] + public void Given_Equality_When_DifferentValues_Then_NotEqual() + { + Assert.AreNotEqual(ExampleStandaloneEnum.Active, ExampleStandaloneEnum.Inactive); + Assert.IsTrue(ExampleStandaloneEnum.Active != ExampleStandaloneEnum.Inactive); + } + + [TestMethod] + public void Given_Equality_When_UnknownValuesWithSameString_Then_Equal() + { + ExampleStandaloneEnum a = (ExampleStandaloneEnum)"custom"; + ExampleStandaloneEnum b = (ExampleStandaloneEnum)"custom"; + Assert.AreEqual(a, b); + Assert.IsTrue(a == b); + } + + [TestMethod] + public void Given_Equality_When_CaseInsensitive_Then_Equal() + { + ExampleStandaloneEnum lower = (ExampleStandaloneEnum)"active"; + ExampleStandaloneEnum upper = (ExampleStandaloneEnum)"ACTIVE"; + Assert.AreEqual(lower, upper); + Assert.IsTrue(lower == upper); + } + + [TestMethod] + public void Given_Equality_When_NullComparison_Then_Correct() + { + ExampleStandaloneEnum? nullEnum = null; + Assert.AreNotEqual(ExampleStandaloneEnum.Active, nullEnum); + Assert.AreEqual(nullEnum, nullEnum); + } + + // ─── FromStringOrDefault ────────────────────────────────────────────────── + + [TestMethod] + public void Given_FromStringOrDefault_When_KnownValue_Then_ReturnsStaticInstance() + { + Assert.AreEqual(ExampleStandaloneEnum.Active, ExampleStandaloneEnum.FromStringOrDefault("active")); + Assert.AreEqual(ExampleStandaloneEnum.Inactive, ExampleStandaloneEnum.FromStringOrDefault("inactive")); + } + + [TestMethod] + public void Given_FromStringOrDefault_When_UnknownValue_Then_ReturnsNull() + { + Assert.IsNull(ExampleStandaloneEnum.FromStringOrDefault("not-in-list")); + } + + [TestMethod] + public void Given_FromStringOrDefault_When_NullInput_Then_ReturnsNull() + { + Assert.IsNull(ExampleStandaloneEnum.FromStringOrDefault(null)); + } + + // ─── ToJsonValue ────────────────────────────────────────────────────────── + + [TestMethod] + public void Given_ToJsonValue_When_KnownEnum_Then_ReturnsString() + { + Assert.AreEqual("active", ExampleStandaloneEnum.ToJsonValue(ExampleStandaloneEnum.Active)); + Assert.AreEqual("inactive", ExampleStandaloneEnum.ToJsonValue(ExampleStandaloneEnum.Inactive)); + } + + [TestMethod] + public void Given_ToJsonValue_When_Null_Then_ReturnsNull() + { + Assert.IsNull(ExampleStandaloneEnum.ToJsonValue(null)); + } + + [TestMethod] + public void Given_ToJsonValue_When_UnknownValue_Then_ReturnsRawString() + { + ExampleStandaloneEnum unknown = (ExampleStandaloneEnum)"new-api-value"; + Assert.AreEqual("new-api-value", ExampleStandaloneEnum.ToJsonValue(unknown)); + } + + // ─── Model: required enum with known value ──────────────────────────────── + + [TestMethod] + public void Given_ModelDeserialization_When_RequiredEnumIsKnown_Then_DeserializesCorrectly() + { + var options = BuildOptions(); + string json = @"{ ""status"": ""active"", ""name"": ""test"" }"; + ExampleModelWithRequiredEnum? result = JsonSerializer.Deserialize(json, options); + Assert.IsNotNull(result); + Assert.AreEqual(ExampleStandaloneEnum.Active, result!.Status); + } + + // ─── Model: required enum with UNKNOWN value — GitHub issue #1612 ───────── + + [TestMethod] + public void Given_ModelDeserialization_When_RequiredEnumIsUnknown_Then_DoesNotThrow() + { + var options = BuildOptions(); + string json = @"{ ""status"": ""future-status-not-yet-in-sdk"", ""name"": ""test"" }"; + ExampleModelWithRequiredEnum? result = null; + var ex = CaptureException(() => + result = JsonSerializer.Deserialize(json, options)); + Assert.IsNull(ex, $"Should not throw. Got: {ex?.Message}"); + Assert.IsNotNull(result); + Assert.IsNotNull(result!.Status); + Assert.AreEqual("future-status-not-yet-in-sdk", result.Status.Value); + } + + // ─── Model: optional enum with null ────────────────────────────────────── + + [TestMethod] + public void Given_ModelDeserialization_When_OptionalEnumIsNull_Then_PropertyIsNull() + { + var options = BuildOptions(); + string json = @"{ ""optionalStatus"": null, ""name"": ""test"" }"; + ExampleModelWithOptionalEnum? result = JsonSerializer.Deserialize(json, options); + Assert.IsNotNull(result); + Assert.IsNull(result!.OptionalStatus); + } + + // ─── Model: optional enum with unknown value ────────────────────────────── + + [TestMethod] + public void Given_ModelDeserialization_When_OptionalEnumIsUnknown_Then_PreservesValue() + { + var options = BuildOptions(); + string json = @"{ ""optionalStatus"": ""new-value"", ""name"": ""test"" }"; + ExampleModelWithOptionalEnum? result = JsonSerializer.Deserialize(json, options); + Assert.IsNotNull(result); + Assert.IsNotNull(result!.OptionalStatus); + Assert.AreEqual("new-value", result.OptionalStatus!.Value); + } + + // ─── Model serialization round-trip with unknown value ──────────────────── + + [TestMethod] + public void Given_ModelRoundTrip_When_UnknownEnumValue_Then_PreservesValue() + { + var options = BuildOptions(); + string originalJson = @"{ ""status"": ""future-status"", ""name"": ""test"" }"; + ExampleModelWithRequiredEnum? deserialized = JsonSerializer.Deserialize(originalJson, options); + string reserialized = JsonSerializer.Serialize(deserialized, options); + Assert.IsTrue(reserialized.Contains("\"future-status\""), + $"Expected raw string preserved in JSON. Got: {reserialized}"); + } + + // ─── Implicit string conversion ─────────────────────────────────────────── + + [TestMethod] + public void Given_ImplicitConversion_When_FromString_Then_CreatesInstance() + { + ExampleStandaloneEnum? result = "active"; + Assert.AreEqual(ExampleStandaloneEnum.Active, result); + } + + [TestMethod] + public void Given_ImplicitConversion_When_NullString_Then_ReturnsNull() + { + ExampleStandaloneEnum? result = (string?)null; + Assert.IsNull(result); + } + + [TestMethod] + public void Given_ImplicitConversion_When_ToStringFromEnum_Then_ReturnsValue() + { + string? result = ExampleStandaloneEnum.Active; + Assert.AreEqual("active", result); + } + + // ─── helpers ───────────────────────────────────────────────────────────── + + private static JsonSerializerOptions BuildOptions() + { + var options = new JsonSerializerOptions(); + options.Converters.Add(new ExampleStandaloneEnum.ExampleStandaloneEnumJsonConverter()); + options.Converters.Add(new ExampleModelWithRequiredEnum.ExampleModelWithRequiredEnumJsonConverter()); + options.Converters.Add(new ExampleModelWithOptionalEnum.ExampleModelWithOptionalEnumJsonConverter()); + return options; + } + + private static Exception? CaptureException(Action action) + { + try { action(); return null; } + catch (Exception e) { return e; } + } + } + + // ═══════════════════════════════════════════════════════════════════════════ + // ExampleStandaloneEnum - mirrors output of the new modelEnum.mustache + // ═══════════════════════════════════════════════════════════════════════════ + + [JsonConverter(typeof(ExampleStandaloneEnum.ExampleStandaloneEnumJsonConverter))] + internal class ExampleStandaloneEnum : IEnum + { + public string? Value { get; set; } + + public static readonly ExampleStandaloneEnum Active = new("active"); + public static readonly ExampleStandaloneEnum Inactive = new("inactive"); + + private ExampleStandaloneEnum(string? value) { Value = value; } + + public static implicit operator ExampleStandaloneEnum?(string? value) => + value == null ? null : new ExampleStandaloneEnum(value); + + public static implicit operator string?(ExampleStandaloneEnum? option) => option?.Value; + + public static bool operator ==(ExampleStandaloneEnum? left, ExampleStandaloneEnum? right) => + string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); + + public static bool operator !=(ExampleStandaloneEnum? left, ExampleStandaloneEnum? right) => + !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); + + public override bool Equals(object? obj) => + obj is ExampleStandaloneEnum other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); + + public override int GetHashCode() => StringComparer.OrdinalIgnoreCase.GetHashCode(Value ?? string.Empty); + + public override string ToString() => Value ?? string.Empty; + + public static ExampleStandaloneEnum? FromStringOrDefault(string? value) => value switch + { + "active" => Active, + "inactive" => Inactive, + _ => null, + }; + + public static string? ToJsonValue(ExampleStandaloneEnum? value) + { + if (value == null) return null; + if (value == Active) return "active"; + if (value == Inactive) return "inactive"; + return value.Value; + } + + public class ExampleStandaloneEnumJsonConverter : JsonConverter + { + public override ExampleStandaloneEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null + ? null + : ExampleStandaloneEnum.FromStringOrDefault(rawValue) ?? new ExampleStandaloneEnum(rawValue); + } + + public override void Write(Utf8JsonWriter writer, ExampleStandaloneEnum value, JsonSerializerOptions options) + { + writer.WriteStringValue(ExampleStandaloneEnum.ToJsonValue(value)); + } + } + } + + // ═══════════════════════════════════════════════════════════════════════════ + // ExampleModelWithRequiredEnum - simulates a generated model with a required + // standalone enum property. Tests the GitHub issue #1612 regression pattern. + // ═══════════════════════════════════════════════════════════════════════════ + + internal class ExampleModelWithRequiredEnum + { + [JsonPropertyName("status")] + public ExampleStandaloneEnum Status { get; set; } = null!; + + [JsonPropertyName("name")] + public string? Name { get; set; } + + internal class ExampleModelWithRequiredEnumJsonConverter : JsonConverter + { + public override ExampleModelWithRequiredEnum Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert, JsonSerializerOptions jsonSerializerOptions) + { + int currentDepth = utf8JsonReader.CurrentDepth; + + if (utf8JsonReader.TokenType != JsonTokenType.StartObject) + throw new JsonException(); + + JsonTokenType startingTokenType = utf8JsonReader.TokenType; + + ExampleStandaloneEnum? status = null; + bool statusSet = false; + string? name = null; + + while (utf8JsonReader.Read()) + { + if (startingTokenType == JsonTokenType.StartObject + && utf8JsonReader.TokenType == JsonTokenType.EndObject + && currentDepth == utf8JsonReader.CurrentDepth) + break; + + if (utf8JsonReader.TokenType == JsonTokenType.PropertyName + && currentDepth == utf8JsonReader.CurrentDepth - 1) + { + string? propertyName = utf8JsonReader.GetString(); + utf8JsonReader.Read(); + + switch (propertyName) + { + case "status": + string? rawValue = utf8JsonReader.GetString(); + // New pattern from JsonConverter.mustache: FromStringOrDefault ?? implicit cast + // This preserves unknown values instead of returning null. + status = ExampleStandaloneEnum.FromStringOrDefault(rawValue) ?? (ExampleStandaloneEnum?)rawValue; + statusSet = true; + break; + case "name": + name = utf8JsonReader.GetString(); + break; + default: + break; + } + } + } + + if (!statusSet) + throw new ArgumentException("Property is required for class ExampleModelWithRequiredEnum.", nameof(status)); + + var model = new ExampleModelWithRequiredEnum(); + // New pattern from JsonConverter.mustache: no .Value unwrap — IEnum is a reference type + model.Status = status!; + model.Name = name; + return model; + } + + public override void Write(Utf8JsonWriter writer, ExampleModelWithRequiredEnum model, JsonSerializerOptions jsonSerializerOptions) + { + writer.WriteStartObject(); + if (model.Status != null) + writer.WriteString("status", ExampleStandaloneEnum.ToJsonValue(model.Status)); + if (model.Name != null) + writer.WriteString("name", model.Name); + writer.WriteEndObject(); + } + } + } + + // ═══════════════════════════════════════════════════════════════════════════ + // ExampleModelWithOptionalEnum - simulates a generated model with an optional + // standalone enum property. + // ═══════════════════════════════════════════════════════════════════════════ + + internal class ExampleModelWithOptionalEnum + { + [JsonPropertyName("optionalStatus")] + public ExampleStandaloneEnum? OptionalStatus { get; set; } + + [JsonPropertyName("name")] + public string? Name { get; set; } + + internal class ExampleModelWithOptionalEnumJsonConverter : JsonConverter + { + public override ExampleModelWithOptionalEnum Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert, JsonSerializerOptions jsonSerializerOptions) + { + int currentDepth = utf8JsonReader.CurrentDepth; + + if (utf8JsonReader.TokenType != JsonTokenType.StartObject) + throw new JsonException(); + + JsonTokenType startingTokenType = utf8JsonReader.TokenType; + + ExampleStandaloneEnum? optionalStatus = null; + bool optionalStatusSet = false; + string? name = null; + + while (utf8JsonReader.Read()) + { + if (startingTokenType == JsonTokenType.StartObject + && utf8JsonReader.TokenType == JsonTokenType.EndObject + && currentDepth == utf8JsonReader.CurrentDepth) + break; + + if (utf8JsonReader.TokenType == JsonTokenType.PropertyName + && currentDepth == utf8JsonReader.CurrentDepth - 1) + { + string? propertyName = utf8JsonReader.GetString(); + utf8JsonReader.Read(); + + switch (propertyName) + { + case "optionalStatus": + string? rawValue = utf8JsonReader.GetString(); + optionalStatus = ExampleStandaloneEnum.FromStringOrDefault(rawValue) ?? (ExampleStandaloneEnum?)rawValue; + optionalStatusSet = true; + break; + case "name": + name = utf8JsonReader.GetString(); + break; + default: + break; + } + } + } + + var model = new ExampleModelWithOptionalEnum(); + if (optionalStatusSet) + model.OptionalStatus = optionalStatus; + model.Name = name; + return model; + } + + public override void Write(Utf8JsonWriter writer, ExampleModelWithOptionalEnum model, JsonSerializerOptions jsonSerializerOptions) + { + writer.WriteStartObject(); + if (model.OptionalStatus != null) + { + var rawValue = ExampleStandaloneEnum.ToJsonValue(model.OptionalStatus); + if (rawValue != null) + writer.WriteString("optionalStatus", rawValue); + else + writer.WriteNull("optionalStatus"); + } + if (model.Name != null) + writer.WriteString("name", model.Name); + writer.WriteEndObject(); + } + } + } +} From fe9f20cbea22b5f60cb72527a04b75277575506c Mon Sep 17 00:00:00 2001 From: beppe Date: Tue, 12 May 2026 13:20:32 +0200 Subject: [PATCH 4/4] Generate BalancePlaform models and fix test --- .../AccountHolders/AccountHolderTest.cs | 7 +- Adyen/BalancePlatform/Client/ClientUtils.cs | 22 +- .../Client/HostConfiguration.cs | 33 +-- .../Models/AULocalAccountIdentification.cs | 6 +- Adyen/BalancePlatform/Models/AccountHolder.cs | 4 +- .../Models/AccountHolderCapability.cs | 12 +- .../Models/AccountHolderUpdateRequest.cs | 4 +- .../AccountSupportingEntityCapability.cs | 12 +- .../Models/AdditionalBankIdentification.cs | 4 +- ...AdditionalBankIdentificationRequirement.cs | 10 +- .../Models/AddressRequirement.cs | 8 +- .../Models/AmountMinMaxRequirement.cs | 6 +- .../AmountNonZeroDecimalsRequirement.cs | 6 +- .../Models/ApproveAssociationRequest.cs | 14 +- Adyen/BalancePlatform/Models/Association.cs | 14 +- .../Models/AssociationFinaliseRequest.cs | 6 +- .../Models/AssociationFinaliseResponse.cs | 6 +- .../Models/AssociationInitiateRequest.cs | 6 +- .../Models/AssociationListing.cs | 21 +- .../Models/AssociationStatus.cs | 171 ++++++-------- .../Models/BRLocalAccountIdentification.cs | 6 +- .../BalancePlatform/Models/BalanceAccount.cs | 4 +- .../Models/BalanceAccountBase.cs | 4 +- .../Models/BalanceAccountUpdateRequest.cs | 4 +- .../Models/BalanceWebhookSetting.cs | 5 +- .../Models/BalanceWebhookSettingInfo.cs | 12 +- .../Models/BalanceWebhookSettingInfoUpdate.cs | 8 +- .../BankAccountAccountIdentification.cs | 32 +-- ...ankAccountIdentificationTypeRequirement.cs | 8 +- ...nValidationRequestAccountIdentification.cs | 32 +-- .../Models/BankAccountModel.cs | 4 +- .../Models/BankIdentification.cs | 4 +- .../Models/CALocalAccountIdentification.cs | 10 +- .../Models/CZLocalAccountIdentification.cs | 6 +- .../Models/CapabilityProblemEntity.cs | 4 +- .../CapabilityProblemEntityRecursive.cs | 4 +- .../Models/CapabilitySettings.cs | 6 +- Adyen/BalancePlatform/Models/Card.cs | 6 +- Adyen/BalancePlatform/Models/CardInfo.cs | 6 +- Adyen/BalancePlatform/Models/CardOrder.cs | 4 +- .../Models/CardOrderItemDeliveryStatus.cs | 4 +- Adyen/BalancePlatform/Models/Condition.cs | 12 +- .../Models/CounterpartyTypesRestriction.cs | 2 +- .../Models/CreateScaInformation.cs | 5 +- .../Models/CreateSweepConfigurationV2.cs | 18 +- .../Models/CreateTransferLimitRequest.cs | 14 +- .../Models/DKLocalAccountIdentification.cs | 6 +- .../Models/DayOfWeekRestriction.cs | 2 +- Adyen/BalancePlatform/Models/Device.cs | 4 +- Adyen/BalancePlatform/Models/Duration.cs | 4 +- .../Models/EntryModesRestriction.cs | 2 +- .../Models/GetTaxFormResponse.cs | 4 +- Adyen/BalancePlatform/Models/GrantOffer.cs | 4 +- .../Models/HKLocalAccountIdentification.cs | 6 +- .../Models/HULocalAccountIdentification.cs | 6 +- .../Models/IbanAccountIdentification.cs | 6 +- .../IbanAccountIdentificationRequirement.cs | 6 +- Adyen/BalancePlatform/Models/LimitStatus.cs | 203 +++++++--------- Adyen/BalancePlatform/Models/Mandate.cs | 10 +- Adyen/BalancePlatform/Models/MandateStatus.cs | 188 ++++++--------- Adyen/BalancePlatform/Models/MandateType.cs | 156 ++++++------- .../Models/MatchingValuesRestriction.cs | 2 +- .../Models/NOLocalAccountIdentification.cs | 6 +- .../Models/NZLocalAccountIdentification.cs | 6 +- Adyen/BalancePlatform/Models/NetworkToken.cs | 4 +- .../NumberAndBicAccountIdentification.cs | 6 +- .../Models/PLLocalAccountIdentification.cs | 6 +- .../Models/PaymentInstrument.cs | 14 +- ...ditionalBankAccountIdentificationsInner.cs | 2 +- .../Models/PaymentInstrumentInfo.cs | 14 +- .../Models/PaymentInstrumentRequirement.cs | 10 +- .../Models/PaymentInstrumentUpdateRequest.cs | 8 +- Adyen/BalancePlatform/Models/Phone.cs | 6 +- Adyen/BalancePlatform/Models/PhoneNumber.cs | 4 +- .../Models/PinChangeResponse.cs | 6 +- .../Models/ProcessingTypesRestriction.cs | 2 +- .../Models/RemoveAssociationRequest.cs | 7 +- .../Models/SELocalAccountIdentification.cs | 6 +- .../Models/SGLocalAccountIdentification.cs | 4 +- Adyen/BalancePlatform/Models/ScaDevice.cs | 7 +- Adyen/BalancePlatform/Models/ScaDeviceType.cs | 188 ++++++--------- Adyen/BalancePlatform/Models/ScaEntity.cs | 7 +- Adyen/BalancePlatform/Models/ScaEntityType.cs | 188 ++++++--------- Adyen/BalancePlatform/Models/ScaExemption.cs | 216 +++++++----------- .../BalancePlatform/Models/ScaInformation.cs | 12 +- Adyen/BalancePlatform/Models/ScaStatus.cs | 188 ++++++--------- Adyen/BalancePlatform/Models/Scope.cs | 171 ++++++-------- Adyen/BalancePlatform/Models/SettingType.cs | 156 ++++++------- .../Models/SourceAccountTypesRestriction.cs | 2 +- Adyen/BalancePlatform/Models/StringMatch.cs | 4 +- .../Models/SweepConfigurationV2.cs | 18 +- Adyen/BalancePlatform/Models/SweepSchedule.cs | 6 +- Adyen/BalancePlatform/Models/Target.cs | 6 +- Adyen/BalancePlatform/Models/TargetUpdate.cs | 4 +- .../BalancePlatform/Models/TransactionRule.cs | 22 +- .../Models/TransactionRuleInfo.cs | 22 +- .../Models/TransactionRuleInterval.cs | 10 +- Adyen/BalancePlatform/Models/TransferLimit.cs | 21 +- Adyen/BalancePlatform/Models/TransferRoute.cs | 8 +- .../Models/TransferRouteRequest.cs | 8 +- .../Models/TransferRouteRequirementsInner.cs | 20 +- Adyen/BalancePlatform/Models/TransferType.cs | 171 ++++++-------- .../Models/UKLocalAccountIdentification.cs | 6 +- .../USInstantPayoutAddressRequirement.cs | 6 +- .../USInternationalAchAddressRequirement.cs | 6 +- .../USInternationalAchPriorityRequirement.cs | 6 +- .../Models/USLocalAccountIdentification.cs | 10 +- .../Models/UpdateNetworkTokenRequest.cs | 4 +- .../Models/UpdatePaymentInstrument.cs | 14 +- .../Models/UpdateSweepConfigurationV2.cs | 18 +- .../Models/VerificationDeadline.cs | 2 +- .../Models/VerificationError.cs | 6 +- .../Models/VerificationErrorRecursive.cs | 6 +- .../Models/WalletProviderDeviceType.cs | 2 +- .../BalancePlatform/Models/WebhookSetting.cs | 7 +- 115 files changed, 1228 insertions(+), 1636 deletions(-) diff --git a/Adyen.Test/BalancePlatform/AccountHolders/AccountHolderTest.cs b/Adyen.Test/BalancePlatform/AccountHolders/AccountHolderTest.cs index 040649615..378fdee2a 100644 --- a/Adyen.Test/BalancePlatform/AccountHolders/AccountHolderTest.cs +++ b/Adyen.Test/BalancePlatform/AccountHolders/AccountHolderTest.cs @@ -33,7 +33,7 @@ public AccountHolderTest() [TestMethod] - public async Task Given_AccountHolder_When_Unknown_Enum_Then_Result_Deserialize_To_Null() + public async Task Given_AccountHolder_When_Unknown_Enum_Then_Result_Deserialize_PreservesRawValue() { // Arrange string json = TestUtilities.GetTestFileContent("mocks/balanceplatform/AccountHolderWithUnknownEnum.json"); @@ -41,9 +41,10 @@ public async Task Given_AccountHolder_When_Unknown_Enum_Then_Result_Deserialize_ // Act var response = JsonSerializer.Deserialize(json, _jsonSerializerOptionsProvider.Options); - // Assert + // Assert - unknown enum values are now preserved (not null) per IEX-3037 IEnum pattern Assert.IsNotNull(response); - Assert.IsNull(response.Status); + Assert.IsNotNull(response.Status); + Assert.AreEqual("unknown-enum", response.Status.Value); } [TestMethod] diff --git a/Adyen/BalancePlatform/Client/ClientUtils.cs b/Adyen/BalancePlatform/Client/ClientUtils.cs index ec6a0bd59..7031cbe3c 100644 --- a/Adyen/BalancePlatform/Client/ClientUtils.cs +++ b/Adyen/BalancePlatform/Client/ClientUtils.cs @@ -161,7 +161,7 @@ public static bool TryDeserialize(ref Utf8JsonReader reader, JsonSerializerOp if (obj is Models.AssociationInitiateRequest.TypeEnum associationInitiateRequestTypeEnum) return Models.AssociationInitiateRequest.TypeEnum.ToJsonValue(associationInitiateRequestTypeEnum); if (obj is Models.AssociationStatus associationStatus) - return AssociationStatusValueConverter.ToJsonValue(associationStatus); + return AssociationStatus.ToJsonValue(associationStatus); if (obj is Models.BRLocalAccountIdentification.TypeEnum bRLocalAccountIdentificationTypeEnum) return Models.BRLocalAccountIdentification.TypeEnum.ToJsonValue(bRLocalAccountIdentificationTypeEnum); if (obj is Models.BalanceAccount.StatusEnum balanceAccountStatusEnum) @@ -247,11 +247,11 @@ public static bool TryDeserialize(ref Utf8JsonReader reader, JsonSerializerOp if (obj is Models.IbanAccountIdentificationRequirement.TypeEnum ibanAccountIdentificationRequirementTypeEnum) return Models.IbanAccountIdentificationRequirement.TypeEnum.ToJsonValue(ibanAccountIdentificationRequirementTypeEnum); if (obj is Models.LimitStatus limitStatus) - return LimitStatusValueConverter.ToJsonValue(limitStatus); + return LimitStatus.ToJsonValue(limitStatus); if (obj is Models.MandateStatus mandateStatus) - return MandateStatusValueConverter.ToJsonValue(mandateStatus); + return MandateStatus.ToJsonValue(mandateStatus); if (obj is Models.MandateType mandateType) - return MandateTypeValueConverter.ToJsonValue(mandateType); + return MandateType.ToJsonValue(mandateType); if (obj is Models.MatchingValuesRestriction.ValueEnum matchingValuesRestrictionValueEnum) return MatchingValuesRestriction.ValueEnum.ToJsonValue(matchingValuesRestrictionValueEnum); if (obj is Models.NOLocalAccountIdentification.TypeEnum nOLocalAccountIdentificationTypeEnum) @@ -297,17 +297,17 @@ public static bool TryDeserialize(ref Utf8JsonReader reader, JsonSerializerOp if (obj is Models.SGLocalAccountIdentification.TypeEnum sGLocalAccountIdentificationTypeEnum) return Models.SGLocalAccountIdentification.TypeEnum.ToJsonValue(sGLocalAccountIdentificationTypeEnum); if (obj is Models.ScaDeviceType scaDeviceType) - return ScaDeviceTypeValueConverter.ToJsonValue(scaDeviceType); + return ScaDeviceType.ToJsonValue(scaDeviceType); if (obj is Models.ScaEntityType scaEntityType) - return ScaEntityTypeValueConverter.ToJsonValue(scaEntityType); + return ScaEntityType.ToJsonValue(scaEntityType); if (obj is Models.ScaExemption scaExemption) - return ScaExemptionValueConverter.ToJsonValue(scaExemption); + return ScaExemption.ToJsonValue(scaExemption); if (obj is Models.ScaStatus scaStatus) - return ScaStatusValueConverter.ToJsonValue(scaStatus); + return ScaStatus.ToJsonValue(scaStatus); if (obj is Models.Scope scope) - return ScopeValueConverter.ToJsonValue(scope); + return Scope.ToJsonValue(scope); if (obj is Models.SettingType settingType) - return SettingTypeValueConverter.ToJsonValue(settingType); + return SettingType.ToJsonValue(settingType); if (obj is Models.SourceAccountTypesRestriction.ValueEnum sourceAccountTypesRestrictionValueEnum) return SourceAccountTypesRestriction.ValueEnum.ToJsonValue(sourceAccountTypesRestrictionValueEnum); if (obj is Models.StringMatch.OperationEnum stringMatchOperationEnum) @@ -361,7 +361,7 @@ public static bool TryDeserialize(ref Utf8JsonReader reader, JsonSerializerOp if (obj is Models.TransferRouteRequest.PrioritiesEnum transferRouteRequestPrioritiesEnum) return TransferRouteRequest.PrioritiesEnum.ToJsonValue(transferRouteRequestPrioritiesEnum); if (obj is Models.TransferType transferType) - return TransferTypeValueConverter.ToJsonValue(transferType); + return TransferType.ToJsonValue(transferType); if (obj is Models.UKLocalAccountIdentification.TypeEnum uKLocalAccountIdentificationTypeEnum) return Models.UKLocalAccountIdentification.TypeEnum.ToJsonValue(uKLocalAccountIdentificationTypeEnum); if (obj is Models.USInstantPayoutAddressRequirement.TypeEnum uSInstantPayoutAddressRequirementTypeEnum) diff --git a/Adyen/BalancePlatform/Client/HostConfiguration.cs b/Adyen/BalancePlatform/Client/HostConfiguration.cs index e0d73a1b6..cb6c1159a 100644 --- a/Adyen/BalancePlatform/Client/HostConfiguration.cs +++ b/Adyen/BalancePlatform/Client/HostConfiguration.cs @@ -82,8 +82,7 @@ public HostConfiguration(IServiceCollection services) _jsonOptions.Converters.Add(new AssociationInitiateRequestJsonConverter()); _jsonOptions.Converters.Add(new AssociationInitiateResponseJsonConverter()); _jsonOptions.Converters.Add(new AssociationListingJsonConverter()); - _jsonOptions.Converters.Add(new AssociationStatusJsonConverter()); - _jsonOptions.Converters.Add(new AssociationStatusNullableJsonConverter()); + _jsonOptions.Converters.Add(new AssociationStatus.AssociationStatusJsonConverter()); _jsonOptions.Converters.Add(new AuthenticationJsonConverter()); _jsonOptions.Converters.Add(new AuthorisedCardUsersJsonConverter()); _jsonOptions.Converters.Add(new BRLocalAccountIdentificationJsonConverter()); @@ -159,8 +158,7 @@ public HostConfiguration(IServiceCollection services) _jsonOptions.Converters.Add(new IbanAccountIdentificationRequirementJsonConverter()); _jsonOptions.Converters.Add(new InternationalTransactionRestrictionJsonConverter()); _jsonOptions.Converters.Add(new InvalidFieldJsonConverter()); - _jsonOptions.Converters.Add(new LimitStatusJsonConverter()); - _jsonOptions.Converters.Add(new LimitStatusNullableJsonConverter()); + _jsonOptions.Converters.Add(new LimitStatus.LimitStatusJsonConverter()); _jsonOptions.Converters.Add(new LinkJsonConverter()); _jsonOptions.Converters.Add(new ListAssociationsResponseJsonConverter()); _jsonOptions.Converters.Add(new ListMandatesResponseJsonConverter()); @@ -169,10 +167,8 @@ public HostConfiguration(IServiceCollection services) _jsonOptions.Converters.Add(new MandateAccountIdentificationJsonConverter()); _jsonOptions.Converters.Add(new MandateBankAccountJsonConverter()); _jsonOptions.Converters.Add(new MandatePartyIdentificationJsonConverter()); - _jsonOptions.Converters.Add(new MandateStatusJsonConverter()); - _jsonOptions.Converters.Add(new MandateStatusNullableJsonConverter()); - _jsonOptions.Converters.Add(new MandateTypeJsonConverter()); - _jsonOptions.Converters.Add(new MandateTypeNullableJsonConverter()); + _jsonOptions.Converters.Add(new MandateStatus.MandateStatusJsonConverter()); + _jsonOptions.Converters.Add(new MandateType.MandateTypeJsonConverter()); _jsonOptions.Converters.Add(new MandateUpdateJsonConverter()); _jsonOptions.Converters.Add(new MatchingTransactionsRestrictionJsonConverter()); _jsonOptions.Converters.Add(new MatchingValuesRestrictionJsonConverter()); @@ -229,21 +225,15 @@ public HostConfiguration(IServiceCollection services) _jsonOptions.Converters.Add(new SameAmountRestrictionJsonConverter()); _jsonOptions.Converters.Add(new SameCounterpartyRestrictionJsonConverter()); _jsonOptions.Converters.Add(new ScaDeviceJsonConverter()); - _jsonOptions.Converters.Add(new ScaDeviceTypeJsonConverter()); - _jsonOptions.Converters.Add(new ScaDeviceTypeNullableJsonConverter()); + _jsonOptions.Converters.Add(new ScaDeviceType.ScaDeviceTypeJsonConverter()); _jsonOptions.Converters.Add(new ScaEntityJsonConverter()); - _jsonOptions.Converters.Add(new ScaEntityTypeJsonConverter()); - _jsonOptions.Converters.Add(new ScaEntityTypeNullableJsonConverter()); - _jsonOptions.Converters.Add(new ScaExemptionJsonConverter()); - _jsonOptions.Converters.Add(new ScaExemptionNullableJsonConverter()); + _jsonOptions.Converters.Add(new ScaEntityType.ScaEntityTypeJsonConverter()); + _jsonOptions.Converters.Add(new ScaExemption.ScaExemptionJsonConverter()); _jsonOptions.Converters.Add(new ScaInformationJsonConverter()); - _jsonOptions.Converters.Add(new ScaStatusJsonConverter()); - _jsonOptions.Converters.Add(new ScaStatusNullableJsonConverter()); - _jsonOptions.Converters.Add(new ScopeJsonConverter()); - _jsonOptions.Converters.Add(new ScopeNullableJsonConverter()); + _jsonOptions.Converters.Add(new ScaStatus.ScaStatusJsonConverter()); + _jsonOptions.Converters.Add(new Scope.ScopeJsonConverter()); _jsonOptions.Converters.Add(new SearchRegisteredDevicesResponseJsonConverter()); - _jsonOptions.Converters.Add(new SettingTypeJsonConverter()); - _jsonOptions.Converters.Add(new SettingTypeNullableJsonConverter()); + _jsonOptions.Converters.Add(new SettingType.SettingTypeJsonConverter()); _jsonOptions.Converters.Add(new SourceAccountTypesRestrictionJsonConverter()); _jsonOptions.Converters.Add(new StringMatchJsonConverter()); _jsonOptions.Converters.Add(new SubmitScaAssociationRequestJsonConverter()); @@ -273,8 +263,7 @@ public HostConfiguration(IServiceCollection services) _jsonOptions.Converters.Add(new TransferRouteRequestJsonConverter()); _jsonOptions.Converters.Add(new TransferRouteRequirementsInnerJsonConverter()); _jsonOptions.Converters.Add(new TransferRouteResponseJsonConverter()); - _jsonOptions.Converters.Add(new TransferTypeJsonConverter()); - _jsonOptions.Converters.Add(new TransferTypeNullableJsonConverter()); + _jsonOptions.Converters.Add(new TransferType.TransferTypeJsonConverter()); _jsonOptions.Converters.Add(new UKLocalAccountIdentificationJsonConverter()); _jsonOptions.Converters.Add(new UKLocalMandateAccountIdentificationJsonConverter()); _jsonOptions.Converters.Add(new USInstantPayoutAddressRequirementJsonConverter()); diff --git a/Adyen/BalancePlatform/Models/AULocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/AULocalAccountIdentification.cs index 7e3d0ed2c..1e4a9ceeb 100644 --- a/Adyen/BalancePlatform/Models/AULocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/AULocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.AuLocal) return "auLocal"; - return null; + return value.Value; } /// @@ -244,7 +244,7 @@ public override AULocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AULocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AULocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AULocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -264,7 +264,7 @@ public override AULocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var aULocalAccountIdentification = new AULocalAccountIdentification(); aULocalAccountIdentification.AccountNumber = accountNumber.Value!; aULocalAccountIdentification.BsbCode = bsbCode.Value!; - aULocalAccountIdentification.Type = type.Value!.Value; + aULocalAccountIdentification.Type = type.Value!; return aULocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/AccountHolder.cs b/Adyen/BalancePlatform/Models/AccountHolder.cs index b8ecc26a0..0fb27fb3f 100644 --- a/Adyen/BalancePlatform/Models/AccountHolder.cs +++ b/Adyen/BalancePlatform/Models/AccountHolder.cs @@ -149,7 +149,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -457,7 +457,7 @@ public override AccountHolder Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(AccountHolder.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(AccountHolder.StatusEnum.FromStringOrDefault(statusRawValue) ?? (AccountHolder.StatusEnum)statusRawValue); break; case "timeZone": timeZone = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/AccountHolderCapability.cs b/Adyen/BalancePlatform/Models/AccountHolderCapability.cs index 74c071b41..ab66cfab9 100644 --- a/Adyen/BalancePlatform/Models/AccountHolderCapability.cs +++ b/Adyen/BalancePlatform/Models/AccountHolderCapability.cs @@ -158,7 +158,7 @@ private AllowedLevelEnum(string? value) if (value == AllowedLevelEnum.NotApplicable) return "notApplicable"; - return null; + return value.Value; } /// @@ -314,7 +314,7 @@ private RequestedLevelEnum(string? value) if (value == RequestedLevelEnum.NotApplicable) return "notApplicable"; - return null; + return value.Value; } /// @@ -469,7 +469,7 @@ private VerificationStatusEnum(string? value) if (value == VerificationStatusEnum.Valid) return "valid"; - return null; + return value.Value; } /// @@ -686,7 +686,7 @@ public override AccountHolderCapability Read(ref Utf8JsonReader utf8JsonReader, break; case "allowedLevel": string? allowedLevelRawValue = utf8JsonReader.GetString(); - allowedLevel = new Option(AccountHolderCapability.AllowedLevelEnum.FromStringOrDefault(allowedLevelRawValue)); + allowedLevel = new Option(AccountHolderCapability.AllowedLevelEnum.FromStringOrDefault(allowedLevelRawValue) ?? (AccountHolderCapability.AllowedLevelEnum)allowedLevelRawValue); break; case "allowedSettings": allowedSettings = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -702,7 +702,7 @@ public override AccountHolderCapability Read(ref Utf8JsonReader utf8JsonReader, break; case "requestedLevel": string? requestedLevelRawValue = utf8JsonReader.GetString(); - requestedLevel = new Option(AccountHolderCapability.RequestedLevelEnum.FromStringOrDefault(requestedLevelRawValue)); + requestedLevel = new Option(AccountHolderCapability.RequestedLevelEnum.FromStringOrDefault(requestedLevelRawValue) ?? (AccountHolderCapability.RequestedLevelEnum)requestedLevelRawValue); break; case "requestedSettings": requestedSettings = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -712,7 +712,7 @@ public override AccountHolderCapability Read(ref Utf8JsonReader utf8JsonReader, break; case "verificationStatus": string? verificationStatusRawValue = utf8JsonReader.GetString(); - verificationStatus = new Option(AccountHolderCapability.VerificationStatusEnum.FromStringOrDefault(verificationStatusRawValue)); + verificationStatus = new Option(AccountHolderCapability.VerificationStatusEnum.FromStringOrDefault(verificationStatusRawValue) ?? (AccountHolderCapability.VerificationStatusEnum)verificationStatusRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/AccountHolderUpdateRequest.cs b/Adyen/BalancePlatform/Models/AccountHolderUpdateRequest.cs index 3d05168b4..a75d6b11d 100644 --- a/Adyen/BalancePlatform/Models/AccountHolderUpdateRequest.cs +++ b/Adyen/BalancePlatform/Models/AccountHolderUpdateRequest.cs @@ -149,7 +149,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -432,7 +432,7 @@ public override AccountHolderUpdateRequest Read(ref Utf8JsonReader utf8JsonReade break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(AccountHolderUpdateRequest.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(AccountHolderUpdateRequest.StatusEnum.FromStringOrDefault(statusRawValue) ?? (AccountHolderUpdateRequest.StatusEnum)statusRawValue); break; case "timeZone": timeZone = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/AccountSupportingEntityCapability.cs b/Adyen/BalancePlatform/Models/AccountSupportingEntityCapability.cs index 305a81263..a2b5cd535 100644 --- a/Adyen/BalancePlatform/Models/AccountSupportingEntityCapability.cs +++ b/Adyen/BalancePlatform/Models/AccountSupportingEntityCapability.cs @@ -158,7 +158,7 @@ private AllowedLevelEnum(string? value) if (value == AllowedLevelEnum.NotApplicable) return "notApplicable"; - return null; + return value.Value; } /// @@ -314,7 +314,7 @@ private RequestedLevelEnum(string? value) if (value == RequestedLevelEnum.NotApplicable) return "notApplicable"; - return null; + return value.Value; } /// @@ -469,7 +469,7 @@ private VerificationStatusEnum(string? value) if (value == VerificationStatusEnum.Valid) return "valid"; - return null; + return value.Value; } /// @@ -639,7 +639,7 @@ public override AccountSupportingEntityCapability Read(ref Utf8JsonReader utf8Js break; case "allowedLevel": string? allowedLevelRawValue = utf8JsonReader.GetString(); - allowedLevel = new Option(AccountSupportingEntityCapability.AllowedLevelEnum.FromStringOrDefault(allowedLevelRawValue)); + allowedLevel = new Option(AccountSupportingEntityCapability.AllowedLevelEnum.FromStringOrDefault(allowedLevelRawValue) ?? (AccountSupportingEntityCapability.AllowedLevelEnum)allowedLevelRawValue); break; case "enabled": enabled = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (bool?)null : utf8JsonReader.GetBoolean()); @@ -652,11 +652,11 @@ public override AccountSupportingEntityCapability Read(ref Utf8JsonReader utf8Js break; case "requestedLevel": string? requestedLevelRawValue = utf8JsonReader.GetString(); - requestedLevel = new Option(AccountSupportingEntityCapability.RequestedLevelEnum.FromStringOrDefault(requestedLevelRawValue)); + requestedLevel = new Option(AccountSupportingEntityCapability.RequestedLevelEnum.FromStringOrDefault(requestedLevelRawValue) ?? (AccountSupportingEntityCapability.RequestedLevelEnum)requestedLevelRawValue); break; case "verificationStatus": string? verificationStatusRawValue = utf8JsonReader.GetString(); - verificationStatus = new Option(AccountSupportingEntityCapability.VerificationStatusEnum.FromStringOrDefault(verificationStatusRawValue)); + verificationStatus = new Option(AccountSupportingEntityCapability.VerificationStatusEnum.FromStringOrDefault(verificationStatusRawValue) ?? (AccountSupportingEntityCapability.VerificationStatusEnum)verificationStatusRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/AdditionalBankIdentification.cs b/Adyen/BalancePlatform/Models/AdditionalBankIdentification.cs index 407f68285..6dffe1c47 100644 --- a/Adyen/BalancePlatform/Models/AdditionalBankIdentification.cs +++ b/Adyen/BalancePlatform/Models/AdditionalBankIdentification.cs @@ -158,7 +158,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UsRoutingNumber) return "usRoutingNumber"; - return null; + return value.Value; } /// @@ -273,7 +273,7 @@ public override AdditionalBankIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AdditionalBankIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AdditionalBankIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AdditionalBankIdentification.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/AdditionalBankIdentificationRequirement.cs b/Adyen/BalancePlatform/Models/AdditionalBankIdentificationRequirement.cs index cd0e23daa..bbd282307 100644 --- a/Adyen/BalancePlatform/Models/AdditionalBankIdentificationRequirement.cs +++ b/Adyen/BalancePlatform/Models/AdditionalBankIdentificationRequirement.cs @@ -158,7 +158,7 @@ private AdditionalBankIdentificationTypeEnum(string? value) if (value == AdditionalBankIdentificationTypeEnum.UsRoutingNumber) return "usRoutingNumber"; - return null; + return value.Value; } /// @@ -286,7 +286,7 @@ private TypeEnum(string? value) if (value == TypeEnum.AdditionalBankIdentificationRequirement) return "additionalBankIdentificationRequirement"; - return null; + return value.Value; } /// @@ -393,14 +393,14 @@ public override AdditionalBankIdentificationRequirement Read(ref Utf8JsonReader { case "additionalBankIdentificationType": string? additionalBankIdentificationTypeRawValue = utf8JsonReader.GetString(); - additionalBankIdentificationType = new Option(AdditionalBankIdentificationRequirement.AdditionalBankIdentificationTypeEnum.FromStringOrDefault(additionalBankIdentificationTypeRawValue)); + additionalBankIdentificationType = new Option(AdditionalBankIdentificationRequirement.AdditionalBankIdentificationTypeEnum.FromStringOrDefault(additionalBankIdentificationTypeRawValue) ?? (AdditionalBankIdentificationRequirement.AdditionalBankIdentificationTypeEnum)additionalBankIdentificationTypeRawValue); break; case "description": description = new Option(utf8JsonReader.GetString()!); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AdditionalBankIdentificationRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AdditionalBankIdentificationRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AdditionalBankIdentificationRequirement.TypeEnum)typeRawValue); break; default: break; @@ -416,7 +416,7 @@ public override AdditionalBankIdentificationRequirement Read(ref Utf8JsonReader additionalBankIdentificationRequirement.AdditionalBankIdentificationType = additionalBankIdentificationType.Value; if (description.IsSet) additionalBankIdentificationRequirement.Description = description.Value; - additionalBankIdentificationRequirement.Type = type.Value!.Value; + additionalBankIdentificationRequirement.Type = type.Value!; return additionalBankIdentificationRequirement; } diff --git a/Adyen/BalancePlatform/Models/AddressRequirement.cs b/Adyen/BalancePlatform/Models/AddressRequirement.cs index 83afe340a..1834e7436 100644 --- a/Adyen/BalancePlatform/Models/AddressRequirement.cs +++ b/Adyen/BalancePlatform/Models/AddressRequirement.cs @@ -166,7 +166,7 @@ private RequiredAddressFieldsEnum(string? value) if (value == RequiredAddressFieldsEnum.StateOrProvince) return "stateOrProvince"; - return null; + return value.Value; } /// @@ -280,7 +280,7 @@ private TypeEnum(string? value) if (value == TypeEnum.AddressRequirement) return "addressRequirement"; - return null; + return value.Value; } /// @@ -407,7 +407,7 @@ public override AddressRequirement Read(ref Utf8JsonReader utf8JsonReader, Type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AddressRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AddressRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AddressRequirement.TypeEnum)typeRawValue); break; default: break; @@ -423,7 +423,7 @@ public override AddressRequirement Read(ref Utf8JsonReader utf8JsonReader, Type addressRequirement.Description = description.Value; if (requiredAddressFields.IsSet) addressRequirement.RequiredAddressFields = requiredAddressFields.Value; - addressRequirement.Type = type.Value!.Value; + addressRequirement.Type = type.Value!; return addressRequirement; } diff --git a/Adyen/BalancePlatform/Models/AmountMinMaxRequirement.cs b/Adyen/BalancePlatform/Models/AmountMinMaxRequirement.cs index 65f0c00cd..7c3d690f1 100644 --- a/Adyen/BalancePlatform/Models/AmountMinMaxRequirement.cs +++ b/Adyen/BalancePlatform/Models/AmountMinMaxRequirement.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.AmountMinMaxRequirement) return "amountMinMaxRequirement"; - return null; + return value.Value; } /// @@ -277,7 +277,7 @@ public override AmountMinMaxRequirement Read(ref Utf8JsonReader utf8JsonReader, break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AmountMinMaxRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AmountMinMaxRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AmountMinMaxRequirement.TypeEnum)typeRawValue); break; default: break; @@ -295,7 +295,7 @@ public override AmountMinMaxRequirement Read(ref Utf8JsonReader utf8JsonReader, amountMinMaxRequirement.Max = max.Value; if (min.IsSet) amountMinMaxRequirement.Min = min.Value; - amountMinMaxRequirement.Type = type.Value!.Value; + amountMinMaxRequirement.Type = type.Value!; return amountMinMaxRequirement; } diff --git a/Adyen/BalancePlatform/Models/AmountNonZeroDecimalsRequirement.cs b/Adyen/BalancePlatform/Models/AmountNonZeroDecimalsRequirement.cs index 70fe63c26..fe4b0df89 100644 --- a/Adyen/BalancePlatform/Models/AmountNonZeroDecimalsRequirement.cs +++ b/Adyen/BalancePlatform/Models/AmountNonZeroDecimalsRequirement.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.AmountNonZeroDecimalsRequirement) return "amountNonZeroDecimalsRequirement"; - return null; + return value.Value; } /// @@ -239,7 +239,7 @@ public override AmountNonZeroDecimalsRequirement Read(ref Utf8JsonReader utf8Jso break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AmountNonZeroDecimalsRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AmountNonZeroDecimalsRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AmountNonZeroDecimalsRequirement.TypeEnum)typeRawValue); break; default: break; @@ -253,7 +253,7 @@ public override AmountNonZeroDecimalsRequirement Read(ref Utf8JsonReader utf8Jso var amountNonZeroDecimalsRequirement = new AmountNonZeroDecimalsRequirement(); if (description.IsSet) amountNonZeroDecimalsRequirement.Description = description.Value; - amountNonZeroDecimalsRequirement.Type = type.Value!.Value; + amountNonZeroDecimalsRequirement.Type = type.Value!; return amountNonZeroDecimalsRequirement; } diff --git a/Adyen/BalancePlatform/Models/ApproveAssociationRequest.cs b/Adyen/BalancePlatform/Models/ApproveAssociationRequest.cs index d21ba1ded..c24b23e99 100644 --- a/Adyen/BalancePlatform/Models/ApproveAssociationRequest.cs +++ b/Adyen/BalancePlatform/Models/ApproveAssociationRequest.cs @@ -134,16 +134,14 @@ public override ApproveAssociationRequest Read(ref Utf8JsonReader utf8JsonReader break; case "entityType": string? entityTypeRawValue = utf8JsonReader.GetString(); - if (entityTypeRawValue != null) - entityType = new Option(ScaEntityTypeValueConverter.FromStringOrDefault(entityTypeRawValue)); + entityType = new Option(ScaEntityType.FromStringOrDefault(entityTypeRawValue) ?? (ScaEntityType)entityTypeRawValue); break; case "scaDeviceIds": scaDeviceIds = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - if (statusRawValue != null) - status = new Option(AssociationStatusValueConverter.FromStringOrDefault(statusRawValue)); + status = new Option(AssociationStatus.FromStringOrDefault(statusRawValue) ?? (AssociationStatus)statusRawValue); break; default: break; @@ -165,9 +163,9 @@ public override ApproveAssociationRequest Read(ref Utf8JsonReader utf8JsonReader var approveAssociationRequest = new ApproveAssociationRequest(); approveAssociationRequest.EntityId = entityId.Value!; - approveAssociationRequest.EntityType = entityType.Value!.Value; + approveAssociationRequest.EntityType = entityType.Value!; approveAssociationRequest.ScaDeviceIds = scaDeviceIds.Value!; - approveAssociationRequest.Status = status.Value!.Value; + approveAssociationRequest.Status = status.Value!; return approveAssociationRequest; } @@ -200,12 +198,12 @@ public void WriteProperties(Utf8JsonWriter writer, ApproveAssociationRequest app if (approveAssociationRequest.EntityId != null) writer.WriteString("entityId", approveAssociationRequest.EntityId); - var entityTypeRawValue = ScaEntityTypeValueConverter.ToJsonValue(approveAssociationRequest.EntityType); + var entityTypeRawValue = ScaEntityType.ToJsonValue(approveAssociationRequest.EntityType); writer.WriteString("entityType", entityTypeRawValue); writer.WritePropertyName("scaDeviceIds"); JsonSerializer.Serialize(writer, approveAssociationRequest.ScaDeviceIds, jsonSerializerOptions); - var statusRawValue = AssociationStatusValueConverter.ToJsonValue(approveAssociationRequest.Status); + var statusRawValue = AssociationStatus.ToJsonValue(approveAssociationRequest.Status); writer.WriteString("status", statusRawValue); } } diff --git a/Adyen/BalancePlatform/Models/Association.cs b/Adyen/BalancePlatform/Models/Association.cs index 0317ee5cf..576b03dda 100644 --- a/Adyen/BalancePlatform/Models/Association.cs +++ b/Adyen/BalancePlatform/Models/Association.cs @@ -135,16 +135,14 @@ public override Association Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "entityType": string? entityTypeRawValue = utf8JsonReader.GetString(); - if (entityTypeRawValue != null) - entityType = new Option(ScaEntityTypeValueConverter.FromStringOrDefault(entityTypeRawValue)); + entityType = new Option(ScaEntityType.FromStringOrDefault(entityTypeRawValue) ?? (ScaEntityType)entityTypeRawValue); break; case "scaDeviceId": scaDeviceId = new Option(utf8JsonReader.GetString()!); break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - if (statusRawValue != null) - status = new Option(AssociationStatusValueConverter.FromStringOrDefault(statusRawValue)); + status = new Option(AssociationStatus.FromStringOrDefault(statusRawValue) ?? (AssociationStatus)statusRawValue); break; default: break; @@ -166,9 +164,9 @@ public override Association Read(ref Utf8JsonReader utf8JsonReader, Type typeToC var association = new Association(); association.EntityId = entityId.Value!; - association.EntityType = entityType.Value!.Value; + association.EntityType = entityType.Value!; association.ScaDeviceId = scaDeviceId.Value!; - association.Status = status.Value!.Value; + association.Status = status.Value!; return association; } @@ -201,13 +199,13 @@ public void WriteProperties(Utf8JsonWriter writer, Association association, Json if (association.EntityId != null) writer.WriteString("entityId", association.EntityId); - var entityTypeRawValue = ScaEntityTypeValueConverter.ToJsonValue(association.EntityType); + var entityTypeRawValue = ScaEntityType.ToJsonValue(association.EntityType); writer.WriteString("entityType", entityTypeRawValue); if (association.ScaDeviceId != null) writer.WriteString("scaDeviceId", association.ScaDeviceId); - var statusRawValue = AssociationStatusValueConverter.ToJsonValue(association.Status); + var statusRawValue = AssociationStatus.ToJsonValue(association.Status); writer.WriteString("status", statusRawValue); } } diff --git a/Adyen/BalancePlatform/Models/AssociationFinaliseRequest.cs b/Adyen/BalancePlatform/Models/AssociationFinaliseRequest.cs index ce34f35c0..f51f1d393 100644 --- a/Adyen/BalancePlatform/Models/AssociationFinaliseRequest.cs +++ b/Adyen/BalancePlatform/Models/AssociationFinaliseRequest.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PaymentInstrument) return "PaymentInstrument"; - return null; + return value.Value; } /// @@ -243,7 +243,7 @@ public override AssociationFinaliseRequest Read(ref Utf8JsonReader utf8JsonReade break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AssociationFinaliseRequest.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AssociationFinaliseRequest.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AssociationFinaliseRequest.TypeEnum)typeRawValue); break; default: break; @@ -263,7 +263,7 @@ public override AssociationFinaliseRequest Read(ref Utf8JsonReader utf8JsonReade var associationFinaliseRequest = new AssociationFinaliseRequest(); associationFinaliseRequest.Ids = ids.Value!; associationFinaliseRequest.StrongCustomerAuthentication = strongCustomerAuthentication.Value!; - associationFinaliseRequest.Type = type.Value!.Value; + associationFinaliseRequest.Type = type.Value!; return associationFinaliseRequest; } diff --git a/Adyen/BalancePlatform/Models/AssociationFinaliseResponse.cs b/Adyen/BalancePlatform/Models/AssociationFinaliseResponse.cs index 25a071172..d8826dd3a 100644 --- a/Adyen/BalancePlatform/Models/AssociationFinaliseResponse.cs +++ b/Adyen/BalancePlatform/Models/AssociationFinaliseResponse.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PAYMENTINSTRUMENT) return "PAYMENT_INSTRUMENT"; - return null; + return value.Value; } /// @@ -252,7 +252,7 @@ public override AssociationFinaliseResponse Read(ref Utf8JsonReader utf8JsonRead { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AssociationFinaliseResponse.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AssociationFinaliseResponse.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AssociationFinaliseResponse.TypeEnum)typeRawValue); break; case "deviceId": deviceId = new Option(utf8JsonReader.GetString()!); @@ -270,7 +270,7 @@ public override AssociationFinaliseResponse Read(ref Utf8JsonReader utf8JsonRead throw new ArgumentException("Property is required for class AssociationFinaliseResponse.", nameof(type)); var associationFinaliseResponse = new AssociationFinaliseResponse(); - associationFinaliseResponse.Type = type.Value!.Value; + associationFinaliseResponse.Type = type.Value!; if (deviceId.IsSet) associationFinaliseResponse.DeviceId = deviceId.Value; if (ids.IsSet) diff --git a/Adyen/BalancePlatform/Models/AssociationInitiateRequest.cs b/Adyen/BalancePlatform/Models/AssociationInitiateRequest.cs index d1c702595..95742f481 100644 --- a/Adyen/BalancePlatform/Models/AssociationInitiateRequest.cs +++ b/Adyen/BalancePlatform/Models/AssociationInitiateRequest.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PaymentInstrument) return "PaymentInstrument"; - return null; + return value.Value; } /// @@ -232,7 +232,7 @@ public override AssociationInitiateRequest Read(ref Utf8JsonReader utf8JsonReade break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(AssociationInitiateRequest.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(AssociationInitiateRequest.TypeEnum.FromStringOrDefault(typeRawValue) ?? (AssociationInitiateRequest.TypeEnum)typeRawValue); break; default: break; @@ -248,7 +248,7 @@ public override AssociationInitiateRequest Read(ref Utf8JsonReader utf8JsonReade var associationInitiateRequest = new AssociationInitiateRequest(); associationInitiateRequest.Ids = ids.Value!; - associationInitiateRequest.Type = type.Value!.Value; + associationInitiateRequest.Type = type.Value!; return associationInitiateRequest; } diff --git a/Adyen/BalancePlatform/Models/AssociationListing.cs b/Adyen/BalancePlatform/Models/AssociationListing.cs index 30ce491eb..1dae4a030 100644 --- a/Adyen/BalancePlatform/Models/AssociationListing.cs +++ b/Adyen/BalancePlatform/Models/AssociationListing.cs @@ -176,21 +176,18 @@ public override AssociationListing Read(ref Utf8JsonReader utf8JsonReader, Type break; case "entityType": string? entityTypeRawValue = utf8JsonReader.GetString(); - if (entityTypeRawValue != null) - entityType = new Option(ScaEntityTypeValueConverter.FromStringOrDefault(entityTypeRawValue)); + entityType = new Option(ScaEntityType.FromStringOrDefault(entityTypeRawValue) ?? (ScaEntityType)entityTypeRawValue); break; case "scaDeviceId": scaDeviceId = new Option(utf8JsonReader.GetString()!); break; case "scaDeviceType": string? scaDeviceTypeRawValue = utf8JsonReader.GetString(); - if (scaDeviceTypeRawValue != null) - scaDeviceType = new Option(ScaDeviceTypeValueConverter.FromStringOrDefault(scaDeviceTypeRawValue)); + scaDeviceType = new Option(ScaDeviceType.FromStringOrDefault(scaDeviceTypeRawValue) ?? (ScaDeviceType)scaDeviceTypeRawValue); break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - if (statusRawValue != null) - status = new Option(AssociationStatusValueConverter.FromStringOrDefault(statusRawValue)); + status = new Option(AssociationStatus.FromStringOrDefault(statusRawValue) ?? (AssociationStatus)statusRawValue); break; case "scaDeviceName": scaDeviceName = new Option(utf8JsonReader.GetString()!); @@ -222,10 +219,10 @@ public override AssociationListing Read(ref Utf8JsonReader utf8JsonReader, Type var associationListing = new AssociationListing(); associationListing.CreatedAt = createdAt.Value!.Value; associationListing.EntityId = entityId.Value!; - associationListing.EntityType = entityType.Value!.Value; + associationListing.EntityType = entityType.Value!; associationListing.ScaDeviceId = scaDeviceId.Value!; - associationListing.ScaDeviceType = scaDeviceType.Value!.Value; - associationListing.Status = status.Value!.Value; + associationListing.ScaDeviceType = scaDeviceType.Value!; + associationListing.Status = status.Value!; if (scaDeviceName.IsSet) associationListing.ScaDeviceName = scaDeviceName.Value; return associationListing; @@ -262,16 +259,16 @@ public void WriteProperties(Utf8JsonWriter writer, AssociationListing associatio if (associationListing.EntityId != null) writer.WriteString("entityId", associationListing.EntityId); - var entityTypeRawValue = ScaEntityTypeValueConverter.ToJsonValue(associationListing.EntityType); + var entityTypeRawValue = ScaEntityType.ToJsonValue(associationListing.EntityType); writer.WriteString("entityType", entityTypeRawValue); if (associationListing.ScaDeviceId != null) writer.WriteString("scaDeviceId", associationListing.ScaDeviceId); - var scaDeviceTypeRawValue = ScaDeviceTypeValueConverter.ToJsonValue(associationListing.ScaDeviceType); + var scaDeviceTypeRawValue = ScaDeviceType.ToJsonValue(associationListing.ScaDeviceType); writer.WriteString("scaDeviceType", scaDeviceTypeRawValue); - var statusRawValue = AssociationStatusValueConverter.ToJsonValue(associationListing.Status); + var statusRawValue = AssociationStatus.ToJsonValue(associationListing.Status); writer.WriteString("status", statusRawValue); if (associationListing._ScaDeviceNameOption.IsSet) diff --git a/Adyen/BalancePlatform/Models/AssociationStatus.cs b/Adyen/BalancePlatform/Models/AssociationStatus.cs index b393723e0..5db190940 100644 --- a/Adyen/BalancePlatform/Models/AssociationStatus.cs +++ b/Adyen/BalancePlatform/Models/AssociationStatus.cs @@ -32,148 +32,117 @@ namespace Adyen.BalancePlatform.Models /// /// Defines AssociationStatus /// - public enum AssociationStatus + [JsonConverter(typeof(AssociationStatus.AssociationStatusJsonConverter))] + public class AssociationStatus : IEnum { /// - /// Enum PendingApproval for value: pendingApproval + /// Returns the value of the AssociationStatus. /// - PendingApproval = 1, + public string? Value { get; set; } /// - /// Enum Active for value: active + /// AssociationStatus.PendingApproval - pendingApproval /// - Active = 2 - } + public static readonly AssociationStatus PendingApproval = new("pendingApproval"); - /// - /// Converts to and from the JSON value - /// - public static class AssociationStatusValueConverter - { /// - /// Parses a given value to + /// AssociationStatus.Active - active /// - /// - /// - public static AssociationStatus FromString(string value) - { - if (value.Equals("pendingApproval")) - return AssociationStatus.PendingApproval; + public static readonly AssociationStatus Active = new("active"); - if (value.Equals("active")) - return AssociationStatus.Active; - - throw new NotImplementedException($"Could not convert value to type AssociationStatus: '{value}'"); + private AssociationStatus(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static AssociationStatus? FromStringOrDefault(string value) - { - if (value.Equals("pendingApproval")) - return AssociationStatus.PendingApproval; - - if (value.Equals("active")) - return AssociationStatus.Active; - - return null; - } + public static implicit operator AssociationStatus?(string? value) => value == null ? null : new AssociationStatus(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(AssociationStatus value) - { - if (value == AssociationStatus.PendingApproval) - return "pendingApproval"; - - if (value == AssociationStatus.Active) - return "active"; + public static implicit operator string?(AssociationStatus? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(AssociationStatus? left, AssociationStatus? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class AssociationStatusJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override AssociationStatus Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(AssociationStatus? left, AssociationStatus? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - AssociationStatus? result = rawValue == null - ? null - : AssociationStatusValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is AssociationStatus other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the AssociationStatus to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, AssociationStatus associationStatus, JsonSerializerOptions options) + public static AssociationStatus? FromStringOrDefault(string? value) { - writer.WriteStringValue(AssociationStatusValueConverter.ToJsonValue(associationStatus).ToString()); + return value switch { + "pendingApproval" => AssociationStatus.PendingApproval, + "active" => AssociationStatus.Active, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class AssociationStatusNullableJsonConverter : JsonConverter - { /// - /// Returns a AssociationStatus from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override AssociationStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(AssociationStatus? value) { - string? rawValue = reader.GetString(); + if (value == null) + return null; - AssociationStatus? result = rawValue == null - ? null - : AssociationStatusValueConverter.FromStringOrDefault(rawValue); + if (value == AssociationStatus.PendingApproval) + return "pendingApproval"; - if (result != null) - return result.Value; + if (value == AssociationStatus.Active) + return "active"; - throw new JsonException(); + return value.Value; } /// - /// Writes the AssociationStatus to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, AssociationStatus? associationStatus, JsonSerializerOptions options) + public class AssociationStatusJsonConverter : JsonConverter { - writer.WriteStringValue(associationStatus.HasValue ? AssociationStatusValueConverter.ToJsonValue(associationStatus.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override AssociationStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : AssociationStatus.FromStringOrDefault(rawValue) ?? new AssociationStatus(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, AssociationStatus value, JsonSerializerOptions options) + { + writer.WriteStringValue(AssociationStatus.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/BRLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/BRLocalAccountIdentification.cs index c07bce3cd..d95763a77 100644 --- a/Adyen/BalancePlatform/Models/BRLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/BRLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.BrLocal) return "brLocal"; - return null; + return value.Value; } /// @@ -275,7 +275,7 @@ public override BRLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(BRLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(BRLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (BRLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -301,7 +301,7 @@ public override BRLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea bRLocalAccountIdentification.BranchNumber = branchNumber.Value!; if (ispb.IsSet) bRLocalAccountIdentification.Ispb = ispb.Value; - bRLocalAccountIdentification.Type = type.Value!.Value; + bRLocalAccountIdentification.Type = type.Value!; return bRLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/BalanceAccount.cs b/Adyen/BalancePlatform/Models/BalanceAccount.cs index 7fbc02e23..0e6cd681f 100644 --- a/Adyen/BalancePlatform/Models/BalanceAccount.cs +++ b/Adyen/BalancePlatform/Models/BalanceAccount.cs @@ -158,7 +158,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -427,7 +427,7 @@ public override BalanceAccount Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(BalanceAccount.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(BalanceAccount.StatusEnum.FromStringOrDefault(statusRawValue) ?? (BalanceAccount.StatusEnum)statusRawValue); break; case "timeZone": timeZone = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/BalanceAccountBase.cs b/Adyen/BalancePlatform/Models/BalanceAccountBase.cs index 8aa5b7b85..e34d54c9c 100644 --- a/Adyen/BalancePlatform/Models/BalanceAccountBase.cs +++ b/Adyen/BalancePlatform/Models/BalanceAccountBase.cs @@ -158,7 +158,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -408,7 +408,7 @@ public override BalanceAccountBase Read(ref Utf8JsonReader utf8JsonReader, Type break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(BalanceAccountBase.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(BalanceAccountBase.StatusEnum.FromStringOrDefault(statusRawValue) ?? (BalanceAccountBase.StatusEnum)statusRawValue); break; case "timeZone": timeZone = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/BalanceAccountUpdateRequest.cs b/Adyen/BalancePlatform/Models/BalanceAccountUpdateRequest.cs index 640e5f49c..0e509ce0e 100644 --- a/Adyen/BalancePlatform/Models/BalanceAccountUpdateRequest.cs +++ b/Adyen/BalancePlatform/Models/BalanceAccountUpdateRequest.cs @@ -158,7 +158,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -364,7 +364,7 @@ public override BalanceAccountUpdateRequest Read(ref Utf8JsonReader utf8JsonRead break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(BalanceAccountUpdateRequest.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(BalanceAccountUpdateRequest.StatusEnum.FromStringOrDefault(statusRawValue) ?? (BalanceAccountUpdateRequest.StatusEnum)statusRawValue); break; case "timeZone": timeZone = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/BalanceWebhookSetting.cs b/Adyen/BalancePlatform/Models/BalanceWebhookSetting.cs index a297e0a64..32a91645b 100644 --- a/Adyen/BalancePlatform/Models/BalanceWebhookSetting.cs +++ b/Adyen/BalancePlatform/Models/BalanceWebhookSetting.cs @@ -131,8 +131,7 @@ public override BalanceWebhookSetting Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - if (typeRawValue != null) - type = new Option(SettingTypeValueConverter.FromStringOrDefault(typeRawValue)); + type = new Option(SettingType.FromStringOrDefault(typeRawValue) ?? (SettingType)typeRawValue); break; case "conditions": conditions = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -206,7 +205,7 @@ public void WriteProperties(Utf8JsonWriter writer, BalanceWebhookSetting balance writer.WritePropertyName("target"); JsonSerializer.Serialize(writer, balanceWebhookSetting.Target, jsonSerializerOptions); if (balanceWebhookSetting.Type != null) - writer.WriteString("type", SettingTypeValueConverter.ToJsonValue(balanceWebhookSetting.Type)); + writer.WriteString("type", SettingType.ToJsonValue(balanceWebhookSetting.Type)); if (balanceWebhookSetting._ConditionsOption.IsSet) { diff --git a/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfo.cs b/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfo.cs index da31630d7..aaa4eb26a 100644 --- a/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfo.cs +++ b/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfo.cs @@ -140,7 +140,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Inactive) return "inactive"; - return null; + return value.Value; } /// @@ -261,7 +261,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Balance) return "balance"; - return null; + return value.Value; } /// @@ -388,14 +388,14 @@ public override BalanceWebhookSettingInfo Read(ref Utf8JsonReader utf8JsonReader break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(BalanceWebhookSettingInfo.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(BalanceWebhookSettingInfo.StatusEnum.FromStringOrDefault(statusRawValue) ?? (BalanceWebhookSettingInfo.StatusEnum)statusRawValue); break; case "target": target = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(BalanceWebhookSettingInfo.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(BalanceWebhookSettingInfo.TypeEnum.FromStringOrDefault(typeRawValue) ?? (BalanceWebhookSettingInfo.TypeEnum)typeRawValue); break; case "conditions": conditions = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -420,9 +420,9 @@ public override BalanceWebhookSettingInfo Read(ref Utf8JsonReader utf8JsonReader var balanceWebhookSettingInfo = new BalanceWebhookSettingInfo(); balanceWebhookSettingInfo.Currency = currency.Value!; - balanceWebhookSettingInfo.Status = status.Value!.Value; + balanceWebhookSettingInfo.Status = status.Value!; balanceWebhookSettingInfo.Target = target.Value!; - balanceWebhookSettingInfo.Type = type.Value!.Value; + balanceWebhookSettingInfo.Type = type.Value!; if (conditions.IsSet) balanceWebhookSettingInfo.Conditions = conditions.Value; return balanceWebhookSettingInfo; diff --git a/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfoUpdate.cs b/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfoUpdate.cs index aab31415d..fb97dc883 100644 --- a/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfoUpdate.cs +++ b/Adyen/BalancePlatform/Models/BalanceWebhookSettingInfoUpdate.cs @@ -140,7 +140,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Inactive) return "inactive"; - return null; + return value.Value; } /// @@ -268,7 +268,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Balance) return "balance"; - return null; + return value.Value; } /// @@ -419,14 +419,14 @@ public override BalanceWebhookSettingInfoUpdate Read(ref Utf8JsonReader utf8Json break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(BalanceWebhookSettingInfoUpdate.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(BalanceWebhookSettingInfoUpdate.StatusEnum.FromStringOrDefault(statusRawValue) ?? (BalanceWebhookSettingInfoUpdate.StatusEnum)statusRawValue); break; case "target": target = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(BalanceWebhookSettingInfoUpdate.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(BalanceWebhookSettingInfoUpdate.TypeEnum.FromStringOrDefault(typeRawValue) ?? (BalanceWebhookSettingInfoUpdate.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/BankAccountAccountIdentification.cs b/Adyen/BalancePlatform/Models/BankAccountAccountIdentification.cs index e4229ba13..7596197c7 100644 --- a/Adyen/BalancePlatform/Models/BankAccountAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/BankAccountAccountIdentification.cs @@ -442,52 +442,52 @@ public override BankAccountAccountIdentification Read(ref Utf8JsonReader utf8Jso } } - if (aULocalAccountIdentification?.Type != null) + if (aULocalAccountIdentification?.Type != null && AULocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)aULocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(aULocalAccountIdentification); - if (bRLocalAccountIdentification?.Type != null) + if (bRLocalAccountIdentification?.Type != null && BRLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)bRLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(bRLocalAccountIdentification); - if (cALocalAccountIdentification?.Type != null) + if (cALocalAccountIdentification?.Type != null && CALocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)cALocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(cALocalAccountIdentification); - if (cZLocalAccountIdentification?.Type != null) + if (cZLocalAccountIdentification?.Type != null && CZLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)cZLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(cZLocalAccountIdentification); - if (dKLocalAccountIdentification?.Type != null) + if (dKLocalAccountIdentification?.Type != null && DKLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)dKLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(dKLocalAccountIdentification); - if (hKLocalAccountIdentification?.Type != null) + if (hKLocalAccountIdentification?.Type != null && HKLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)hKLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(hKLocalAccountIdentification); - if (hULocalAccountIdentification?.Type != null) + if (hULocalAccountIdentification?.Type != null && HULocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)hULocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(hULocalAccountIdentification); - if (ibanAccountIdentification?.Type != null) + if (ibanAccountIdentification?.Type != null && IbanAccountIdentification.TypeEnum.FromStringOrDefault((string?)ibanAccountIdentification.Type) != null) return new BankAccountAccountIdentification(ibanAccountIdentification); - if (nOLocalAccountIdentification?.Type != null) + if (nOLocalAccountIdentification?.Type != null && NOLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)nOLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(nOLocalAccountIdentification); - if (nZLocalAccountIdentification?.Type != null) + if (nZLocalAccountIdentification?.Type != null && NZLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)nZLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(nZLocalAccountIdentification); - if (numberAndBicAccountIdentification?.Type != null) + if (numberAndBicAccountIdentification?.Type != null && NumberAndBicAccountIdentification.TypeEnum.FromStringOrDefault((string?)numberAndBicAccountIdentification.Type) != null) return new BankAccountAccountIdentification(numberAndBicAccountIdentification); - if (pLLocalAccountIdentification?.Type != null) + if (pLLocalAccountIdentification?.Type != null && PLLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)pLLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(pLLocalAccountIdentification); - if (sELocalAccountIdentification?.Type != null) + if (sELocalAccountIdentification?.Type != null && SELocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)sELocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(sELocalAccountIdentification); - if (sGLocalAccountIdentification?.Type != null) + if (sGLocalAccountIdentification?.Type != null && SGLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)sGLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(sGLocalAccountIdentification); - if (uKLocalAccountIdentification?.Type != null) + if (uKLocalAccountIdentification?.Type != null && UKLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)uKLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(uKLocalAccountIdentification); - if (uSLocalAccountIdentification?.Type != null) + if (uSLocalAccountIdentification?.Type != null && USLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)uSLocalAccountIdentification.Type) != null) return new BankAccountAccountIdentification(uSLocalAccountIdentification); throw new JsonException(); diff --git a/Adyen/BalancePlatform/Models/BankAccountIdentificationTypeRequirement.cs b/Adyen/BalancePlatform/Models/BankAccountIdentificationTypeRequirement.cs index b5afdc0fb..fb663d455 100644 --- a/Adyen/BalancePlatform/Models/BankAccountIdentificationTypeRequirement.cs +++ b/Adyen/BalancePlatform/Models/BankAccountIdentificationTypeRequirement.cs @@ -310,7 +310,7 @@ private BankAccountIdentificationTypesEnum(string? value) if (value == BankAccountIdentificationTypesEnum.UsLocal) return "usLocal"; - return null; + return value.Value; } /// @@ -424,7 +424,7 @@ private TypeEnum(string? value) if (value == TypeEnum.BankAccountIdentificationTypeRequirement) return "bankAccountIdentificationTypeRequirement"; - return null; + return value.Value; } /// @@ -551,7 +551,7 @@ public override BankAccountIdentificationTypeRequirement Read(ref Utf8JsonReader break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(BankAccountIdentificationTypeRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(BankAccountIdentificationTypeRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (BankAccountIdentificationTypeRequirement.TypeEnum)typeRawValue); break; default: break; @@ -567,7 +567,7 @@ public override BankAccountIdentificationTypeRequirement Read(ref Utf8JsonReader bankAccountIdentificationTypeRequirement.BankAccountIdentificationTypes = bankAccountIdentificationTypes.Value; if (description.IsSet) bankAccountIdentificationTypeRequirement.Description = description.Value; - bankAccountIdentificationTypeRequirement.Type = type.Value!.Value; + bankAccountIdentificationTypeRequirement.Type = type.Value!; return bankAccountIdentificationTypeRequirement; } diff --git a/Adyen/BalancePlatform/Models/BankAccountIdentificationValidationRequestAccountIdentification.cs b/Adyen/BalancePlatform/Models/BankAccountIdentificationValidationRequestAccountIdentification.cs index bc0f58409..c1e800209 100644 --- a/Adyen/BalancePlatform/Models/BankAccountIdentificationValidationRequestAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/BankAccountIdentificationValidationRequestAccountIdentification.cs @@ -442,52 +442,52 @@ public override BankAccountIdentificationValidationRequestAccountIdentification } } - if (aULocalAccountIdentification?.Type != null) + if (aULocalAccountIdentification?.Type != null && AULocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)aULocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(aULocalAccountIdentification); - if (bRLocalAccountIdentification?.Type != null) + if (bRLocalAccountIdentification?.Type != null && BRLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)bRLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(bRLocalAccountIdentification); - if (cALocalAccountIdentification?.Type != null) + if (cALocalAccountIdentification?.Type != null && CALocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)cALocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(cALocalAccountIdentification); - if (cZLocalAccountIdentification?.Type != null) + if (cZLocalAccountIdentification?.Type != null && CZLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)cZLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(cZLocalAccountIdentification); - if (dKLocalAccountIdentification?.Type != null) + if (dKLocalAccountIdentification?.Type != null && DKLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)dKLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(dKLocalAccountIdentification); - if (hKLocalAccountIdentification?.Type != null) + if (hKLocalAccountIdentification?.Type != null && HKLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)hKLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(hKLocalAccountIdentification); - if (hULocalAccountIdentification?.Type != null) + if (hULocalAccountIdentification?.Type != null && HULocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)hULocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(hULocalAccountIdentification); - if (ibanAccountIdentification?.Type != null) + if (ibanAccountIdentification?.Type != null && IbanAccountIdentification.TypeEnum.FromStringOrDefault((string?)ibanAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(ibanAccountIdentification); - if (nOLocalAccountIdentification?.Type != null) + if (nOLocalAccountIdentification?.Type != null && NOLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)nOLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(nOLocalAccountIdentification); - if (nZLocalAccountIdentification?.Type != null) + if (nZLocalAccountIdentification?.Type != null && NZLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)nZLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(nZLocalAccountIdentification); - if (numberAndBicAccountIdentification?.Type != null) + if (numberAndBicAccountIdentification?.Type != null && NumberAndBicAccountIdentification.TypeEnum.FromStringOrDefault((string?)numberAndBicAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(numberAndBicAccountIdentification); - if (pLLocalAccountIdentification?.Type != null) + if (pLLocalAccountIdentification?.Type != null && PLLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)pLLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(pLLocalAccountIdentification); - if (sELocalAccountIdentification?.Type != null) + if (sELocalAccountIdentification?.Type != null && SELocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)sELocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(sELocalAccountIdentification); - if (sGLocalAccountIdentification?.Type != null) + if (sGLocalAccountIdentification?.Type != null && SGLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)sGLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(sGLocalAccountIdentification); - if (uKLocalAccountIdentification?.Type != null) + if (uKLocalAccountIdentification?.Type != null && UKLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)uKLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(uKLocalAccountIdentification); - if (uSLocalAccountIdentification?.Type != null) + if (uSLocalAccountIdentification?.Type != null && USLocalAccountIdentification.TypeEnum.FromStringOrDefault((string?)uSLocalAccountIdentification.Type) != null) return new BankAccountIdentificationValidationRequestAccountIdentification(uSLocalAccountIdentification); throw new JsonException(); diff --git a/Adyen/BalancePlatform/Models/BankAccountModel.cs b/Adyen/BalancePlatform/Models/BankAccountModel.cs index 45124f709..941ca8d54 100644 --- a/Adyen/BalancePlatform/Models/BankAccountModel.cs +++ b/Adyen/BalancePlatform/Models/BankAccountModel.cs @@ -150,7 +150,7 @@ private FormFactorEnum(string? value) if (value == FormFactorEnum.Virtual) return "virtual"; - return null; + return value.Value; } /// @@ -246,7 +246,7 @@ public override BankAccountModel Read(ref Utf8JsonReader utf8JsonReader, Type ty { case "formFactor": string? formFactorRawValue = utf8JsonReader.GetString(); - formFactor = new Option(BankAccountModel.FormFactorEnum.FromStringOrDefault(formFactorRawValue)); + formFactor = new Option(BankAccountModel.FormFactorEnum.FromStringOrDefault(formFactorRawValue) ?? (BankAccountModel.FormFactorEnum)formFactorRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/BankIdentification.cs b/Adyen/BalancePlatform/Models/BankIdentification.cs index 44cec06f4..b07b7824a 100644 --- a/Adyen/BalancePlatform/Models/BankIdentification.cs +++ b/Adyen/BalancePlatform/Models/BankIdentification.cs @@ -158,7 +158,7 @@ private IdentificationTypeEnum(string? value) if (value == IdentificationTypeEnum.SortCode) return "sortCode"; - return null; + return value.Value; } /// @@ -292,7 +292,7 @@ public override BankIdentification Read(ref Utf8JsonReader utf8JsonReader, Type break; case "identificationType": string? identificationTypeRawValue = utf8JsonReader.GetString(); - identificationType = new Option(BankIdentification.IdentificationTypeEnum.FromStringOrDefault(identificationTypeRawValue)); + identificationType = new Option(BankIdentification.IdentificationTypeEnum.FromStringOrDefault(identificationTypeRawValue) ?? (BankIdentification.IdentificationTypeEnum)identificationTypeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/CALocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/CALocalAccountIdentification.cs index 681f696d3..1b7720c30 100644 --- a/Adyen/BalancePlatform/Models/CALocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/CALocalAccountIdentification.cs @@ -141,7 +141,7 @@ private AccountTypeEnum(string? value) if (value == AccountTypeEnum.Savings) return "savings"; - return null; + return value.Value; } /// @@ -269,7 +269,7 @@ private TypeEnum(string? value) if (value == TypeEnum.CaLocal) return "caLocal"; - return null; + return value.Value; } /// @@ -396,11 +396,11 @@ public override CALocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "accountType": string? accountTypeRawValue = utf8JsonReader.GetString(); - accountType = new Option(CALocalAccountIdentification.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue)); + accountType = new Option(CALocalAccountIdentification.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue) ?? (CALocalAccountIdentification.AccountTypeEnum)accountTypeRawValue); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CALocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CALocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CALocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -426,7 +426,7 @@ public override CALocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea cALocalAccountIdentification.TransitNumber = transitNumber.Value!; if (accountType.IsSet) cALocalAccountIdentification.AccountType = accountType.Value; - cALocalAccountIdentification.Type = type.Value!.Value; + cALocalAccountIdentification.Type = type.Value!; return cALocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/CZLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/CZLocalAccountIdentification.cs index 17fd3d4a8..c6b626941 100644 --- a/Adyen/BalancePlatform/Models/CZLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/CZLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.CzLocal) return "czLocal"; - return null; + return value.Value; } /// @@ -244,7 +244,7 @@ public override CZLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CZLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CZLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CZLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -264,7 +264,7 @@ public override CZLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var cZLocalAccountIdentification = new CZLocalAccountIdentification(); cZLocalAccountIdentification.AccountNumber = accountNumber.Value!; cZLocalAccountIdentification.BankCode = bankCode.Value!; - cZLocalAccountIdentification.Type = type.Value!.Value; + cZLocalAccountIdentification.Type = type.Value!; return cZLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/CapabilityProblemEntity.cs b/Adyen/BalancePlatform/Models/CapabilityProblemEntity.cs index a8bf2d00f..43dffb290 100644 --- a/Adyen/BalancePlatform/Models/CapabilityProblemEntity.cs +++ b/Adyen/BalancePlatform/Models/CapabilityProblemEntity.cs @@ -149,7 +149,7 @@ private TypeEnum(string? value) if (value == TypeEnum.LegalEntity) return "LegalEntity"; - return null; + return value.Value; } /// @@ -301,7 +301,7 @@ public override CapabilityProblemEntity Read(ref Utf8JsonReader utf8JsonReader, break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CapabilityProblemEntity.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CapabilityProblemEntity.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CapabilityProblemEntity.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/CapabilityProblemEntityRecursive.cs b/Adyen/BalancePlatform/Models/CapabilityProblemEntityRecursive.cs index 4d8662639..9190f8a76 100644 --- a/Adyen/BalancePlatform/Models/CapabilityProblemEntityRecursive.cs +++ b/Adyen/BalancePlatform/Models/CapabilityProblemEntityRecursive.cs @@ -149,7 +149,7 @@ private TypeEnum(string? value) if (value == TypeEnum.LegalEntity) return "LegalEntity"; - return null; + return value.Value; } /// @@ -283,7 +283,7 @@ public override CapabilityProblemEntityRecursive Read(ref Utf8JsonReader utf8Jso break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CapabilityProblemEntityRecursive.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CapabilityProblemEntityRecursive.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CapabilityProblemEntityRecursive.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/CapabilitySettings.cs b/Adyen/BalancePlatform/Models/CapabilitySettings.cs index 0a2cf7199..a39f5a3a8 100644 --- a/Adyen/BalancePlatform/Models/CapabilitySettings.cs +++ b/Adyen/BalancePlatform/Models/CapabilitySettings.cs @@ -148,7 +148,7 @@ private FundingSourceEnum(string? value) if (value == FundingSourceEnum.Prepaid) return "prepaid"; - return null; + return value.Value; } /// @@ -279,7 +279,7 @@ private IntervalEnum(string? value) if (value == IntervalEnum.Weekly) return "weekly"; - return null; + return value.Value; } /// @@ -443,7 +443,7 @@ public override CapabilitySettings Read(ref Utf8JsonReader utf8JsonReader, Type break; case "interval": string? intervalRawValue = utf8JsonReader.GetString(); - interval = new Option(CapabilitySettings.IntervalEnum.FromStringOrDefault(intervalRawValue)); + interval = new Option(CapabilitySettings.IntervalEnum.FromStringOrDefault(intervalRawValue) ?? (CapabilitySettings.IntervalEnum)intervalRawValue); break; case "maxAmount": maxAmount = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/BalancePlatform/Models/Card.cs b/Adyen/BalancePlatform/Models/Card.cs index a0777c30f..3559c262e 100644 --- a/Adyen/BalancePlatform/Models/Card.cs +++ b/Adyen/BalancePlatform/Models/Card.cs @@ -149,7 +149,7 @@ private FormFactorEnum(string? value) if (value == FormFactorEnum.Virtual) return "virtual"; - return null; + return value.Value; } /// @@ -431,7 +431,7 @@ public override Card Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert, break; case "formFactor": string? formFactorRawValue = utf8JsonReader.GetString(); - formFactor = new Option(Card.FormFactorEnum.FromStringOrDefault(formFactorRawValue)); + formFactor = new Option(Card.FormFactorEnum.FromStringOrDefault(formFactorRawValue) ?? (Card.FormFactorEnum)formFactorRawValue); break; case "authentication": authentication = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -485,7 +485,7 @@ public override Card Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert, card.Brand = brand.Value!; card.BrandVariant = brandVariant.Value!; card.CardholderName = cardholderName.Value!; - card.FormFactor = formFactor.Value!.Value; + card.FormFactor = formFactor.Value!; if (authentication.IsSet) card.Authentication = authentication.Value; if (bin.IsSet) diff --git a/Adyen/BalancePlatform/Models/CardInfo.cs b/Adyen/BalancePlatform/Models/CardInfo.cs index 995443e67..54a956c1c 100644 --- a/Adyen/BalancePlatform/Models/CardInfo.cs +++ b/Adyen/BalancePlatform/Models/CardInfo.cs @@ -149,7 +149,7 @@ private FormFactorEnum(string? value) if (value == FormFactorEnum.Virtual) return "virtual"; - return null; + return value.Value; } /// @@ -351,7 +351,7 @@ public override CardInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv break; case "formFactor": string? formFactorRawValue = utf8JsonReader.GetString(); - formFactor = new Option(CardInfo.FormFactorEnum.FromStringOrDefault(formFactorRawValue)); + formFactor = new Option(CardInfo.FormFactorEnum.FromStringOrDefault(formFactorRawValue) ?? (CardInfo.FormFactorEnum)formFactorRawValue); break; case "authentication": authentication = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -390,7 +390,7 @@ public override CardInfo Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv cardInfo.Brand = brand.Value!; cardInfo.BrandVariant = brandVariant.Value!; cardInfo.CardholderName = cardholderName.Value!; - cardInfo.FormFactor = formFactor.Value!.Value; + cardInfo.FormFactor = formFactor.Value!; if (authentication.IsSet) cardInfo.Authentication = authentication.Value; if (configuration.IsSet) diff --git a/Adyen/BalancePlatform/Models/CardOrder.cs b/Adyen/BalancePlatform/Models/CardOrder.cs index 363b615b2..e86fde142 100644 --- a/Adyen/BalancePlatform/Models/CardOrder.cs +++ b/Adyen/BalancePlatform/Models/CardOrder.cs @@ -140,7 +140,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Open) return "open"; - return null; + return value.Value; } /// @@ -389,7 +389,7 @@ public override CardOrder Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(CardOrder.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(CardOrder.StatusEnum.FromStringOrDefault(statusRawValue) ?? (CardOrder.StatusEnum)statusRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/CardOrderItemDeliveryStatus.cs b/Adyen/BalancePlatform/Models/CardOrderItemDeliveryStatus.cs index 7f1a8d33c..42da599e8 100644 --- a/Adyen/BalancePlatform/Models/CardOrderItemDeliveryStatus.cs +++ b/Adyen/BalancePlatform/Models/CardOrderItemDeliveryStatus.cs @@ -194,7 +194,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Unknown) return "unknown"; - return null; + return value.Value; } /// @@ -325,7 +325,7 @@ public override CardOrderItemDeliveryStatus Read(ref Utf8JsonReader utf8JsonRead break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(CardOrderItemDeliveryStatus.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(CardOrderItemDeliveryStatus.StatusEnum.FromStringOrDefault(statusRawValue) ?? (CardOrderItemDeliveryStatus.StatusEnum)statusRawValue); break; case "trackingNumber": trackingNumber = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/Condition.cs b/Adyen/BalancePlatform/Models/Condition.cs index 8f42c5928..025fae25a 100644 --- a/Adyen/BalancePlatform/Models/Condition.cs +++ b/Adyen/BalancePlatform/Models/Condition.cs @@ -158,7 +158,7 @@ private BalanceTypeEnum(string? value) if (value == BalanceTypeEnum.Reserved) return "reserved"; - return null; + return value.Value; } /// @@ -306,7 +306,7 @@ private ConditionTypeEnum(string? value) if (value == ConditionTypeEnum.LessThanOrEqual) return "lessThanOrEqual"; - return null; + return value.Value; } /// @@ -406,11 +406,11 @@ public override Condition Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon { case "balanceType": string? balanceTypeRawValue = utf8JsonReader.GetString(); - balanceType = new Option(Condition.BalanceTypeEnum.FromStringOrDefault(balanceTypeRawValue)); + balanceType = new Option(Condition.BalanceTypeEnum.FromStringOrDefault(balanceTypeRawValue) ?? (Condition.BalanceTypeEnum)balanceTypeRawValue); break; case "conditionType": string? conditionTypeRawValue = utf8JsonReader.GetString(); - conditionType = new Option(Condition.ConditionTypeEnum.FromStringOrDefault(conditionTypeRawValue)); + conditionType = new Option(Condition.ConditionTypeEnum.FromStringOrDefault(conditionTypeRawValue) ?? (Condition.ConditionTypeEnum)conditionTypeRawValue); break; case "value": value = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (long?)null : utf8JsonReader.GetInt64()); @@ -431,8 +431,8 @@ public override Condition Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon throw new ArgumentException("Property is required for class Condition.", nameof(value)); var condition = new Condition(); - condition.BalanceType = balanceType.Value!.Value; - condition.ConditionType = conditionType.Value!.Value; + condition.BalanceType = balanceType.Value!; + condition.ConditionType = conditionType.Value!; condition.Value = value.Value!.Value; return condition; } diff --git a/Adyen/BalancePlatform/Models/CounterpartyTypesRestriction.cs b/Adyen/BalancePlatform/Models/CounterpartyTypesRestriction.cs index 0d7e81b11..f6afc7f95 100644 --- a/Adyen/BalancePlatform/Models/CounterpartyTypesRestriction.cs +++ b/Adyen/BalancePlatform/Models/CounterpartyTypesRestriction.cs @@ -157,7 +157,7 @@ private ValueEnum(string? value) if (value == ValueEnum.TransferInstrument) return "transferInstrument"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/CreateScaInformation.cs b/Adyen/BalancePlatform/Models/CreateScaInformation.cs index 26f43b812..3b086df1c 100644 --- a/Adyen/BalancePlatform/Models/CreateScaInformation.cs +++ b/Adyen/BalancePlatform/Models/CreateScaInformation.cs @@ -128,8 +128,7 @@ public override CreateScaInformation Read(ref Utf8JsonReader utf8JsonReader, Typ { case "exemption": string? exemptionRawValue = utf8JsonReader.GetString(); - if (exemptionRawValue != null) - exemption = new Option(ScaExemptionValueConverter.FromStringOrDefault(exemptionRawValue)); + exemption = new Option(ScaExemption.FromStringOrDefault(exemptionRawValue) ?? (ScaExemption)exemptionRawValue); break; case "scaOnApproval": scaOnApproval = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (bool?)null : utf8JsonReader.GetBoolean()); @@ -176,7 +175,7 @@ public void WriteProperties(Utf8JsonWriter writer, CreateScaInformation createSc if (createScaInformation._ExemptionOption.IsSet) { - var exemptionRawValue = ScaExemptionValueConverter.ToJsonValue(createScaInformation.Exemption!.Value); + var exemptionRawValue = ScaExemption.ToJsonValue(createScaInformation.Exemption); writer.WriteString("exemption", exemptionRawValue); } if (createScaInformation._ScaOnApprovalOption.IsSet) diff --git a/Adyen/BalancePlatform/Models/CreateSweepConfigurationV2.cs b/Adyen/BalancePlatform/Models/CreateSweepConfigurationV2.cs index 78d1c4dd6..985bc17b6 100644 --- a/Adyen/BalancePlatform/Models/CreateSweepConfigurationV2.cs +++ b/Adyen/BalancePlatform/Models/CreateSweepConfigurationV2.cs @@ -150,7 +150,7 @@ private CategoryEnum(string? value) if (value == CategoryEnum.PlatformPayment) return "platformPayment"; - return null; + return value.Value; } /// @@ -322,7 +322,7 @@ private PrioritiesEnum(string? value) if (value == PrioritiesEnum.Wire) return "wire"; - return null; + return value.Value; } /// @@ -571,7 +571,7 @@ private ReasonEnum(string? value) if (value == ReasonEnum.Unknown) return "unknown"; - return null; + return value.Value; } /// @@ -709,7 +709,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Inactive) return "inactive"; - return null; + return value.Value; } /// @@ -846,7 +846,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Push) return "push"; - return null; + return value.Value; } /// @@ -1108,7 +1108,7 @@ public override CreateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade break; case "category": string? categoryRawValue = utf8JsonReader.GetString(); - category = new Option(CreateSweepConfigurationV2.CategoryEnum.FromStringOrDefault(categoryRawValue)); + category = new Option(CreateSweepConfigurationV2.CategoryEnum.FromStringOrDefault(categoryRawValue) ?? (CreateSweepConfigurationV2.CategoryEnum)categoryRawValue); break; case "description": description = new Option(utf8JsonReader.GetString()!); @@ -1118,7 +1118,7 @@ public override CreateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade break; case "reason": string? reasonRawValue = utf8JsonReader.GetString(); - reason = new Option(CreateSweepConfigurationV2.ReasonEnum.FromStringOrDefault(reasonRawValue)); + reason = new Option(CreateSweepConfigurationV2.ReasonEnum.FromStringOrDefault(reasonRawValue) ?? (CreateSweepConfigurationV2.ReasonEnum)reasonRawValue); break; case "reasonDetail": reasonDetail = new Option(utf8JsonReader.GetString()!); @@ -1131,7 +1131,7 @@ public override CreateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(CreateSweepConfigurationV2.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(CreateSweepConfigurationV2.StatusEnum.FromStringOrDefault(statusRawValue) ?? (CreateSweepConfigurationV2.StatusEnum)statusRawValue); break; case "sweepAmount": sweepAmount = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1144,7 +1144,7 @@ public override CreateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(CreateSweepConfigurationV2.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(CreateSweepConfigurationV2.TypeEnum.FromStringOrDefault(typeRawValue) ?? (CreateSweepConfigurationV2.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/CreateTransferLimitRequest.cs b/Adyen/BalancePlatform/Models/CreateTransferLimitRequest.cs index b586690ea..895825ccb 100644 --- a/Adyen/BalancePlatform/Models/CreateTransferLimitRequest.cs +++ b/Adyen/BalancePlatform/Models/CreateTransferLimitRequest.cs @@ -197,13 +197,11 @@ public override CreateTransferLimitRequest Read(ref Utf8JsonReader utf8JsonReade break; case "scope": string? scopeRawValue = utf8JsonReader.GetString(); - if (scopeRawValue != null) - scope = new Option(ScopeValueConverter.FromStringOrDefault(scopeRawValue)); + scope = new Option(Scope.FromStringOrDefault(scopeRawValue) ?? (Scope)scopeRawValue); break; case "transferType": string? transferTypeRawValue = utf8JsonReader.GetString(); - if (transferTypeRawValue != null) - transferType = new Option(TransferTypeValueConverter.FromStringOrDefault(transferTypeRawValue)); + transferType = new Option(TransferType.FromStringOrDefault(transferTypeRawValue) ?? (TransferType)transferTypeRawValue); break; case "endsAt": endsAt = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)); @@ -234,8 +232,8 @@ public override CreateTransferLimitRequest Read(ref Utf8JsonReader utf8JsonReade var createTransferLimitRequest = new CreateTransferLimitRequest(); createTransferLimitRequest.Amount = amount.Value!; - createTransferLimitRequest.Scope = scope.Value!.Value; - createTransferLimitRequest.TransferType = transferType.Value!.Value; + createTransferLimitRequest.Scope = scope.Value!; + createTransferLimitRequest.TransferType = transferType.Value!; if (endsAt.IsSet) createTransferLimitRequest.EndsAt = endsAt.Value; if (reference.IsSet) @@ -275,10 +273,10 @@ public void WriteProperties(Utf8JsonWriter writer, CreateTransferLimitRequest cr writer.WritePropertyName("amount"); JsonSerializer.Serialize(writer, createTransferLimitRequest.Amount, jsonSerializerOptions); - var scopeRawValue = ScopeValueConverter.ToJsonValue(createTransferLimitRequest.Scope); + var scopeRawValue = Scope.ToJsonValue(createTransferLimitRequest.Scope); writer.WriteString("scope", scopeRawValue); - var transferTypeRawValue = TransferTypeValueConverter.ToJsonValue(createTransferLimitRequest.TransferType); + var transferTypeRawValue = TransferType.ToJsonValue(createTransferLimitRequest.TransferType); writer.WriteString("transferType", transferTypeRawValue); if (createTransferLimitRequest._EndsAtOption.IsSet) diff --git a/Adyen/BalancePlatform/Models/DKLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/DKLocalAccountIdentification.cs index b900db733..e054855a8 100644 --- a/Adyen/BalancePlatform/Models/DKLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/DKLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.DkLocal) return "dkLocal"; - return null; + return value.Value; } /// @@ -244,7 +244,7 @@ public override DKLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(DKLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(DKLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (DKLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -264,7 +264,7 @@ public override DKLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var dKLocalAccountIdentification = new DKLocalAccountIdentification(); dKLocalAccountIdentification.AccountNumber = accountNumber.Value!; dKLocalAccountIdentification.BankCode = bankCode.Value!; - dKLocalAccountIdentification.Type = type.Value!.Value; + dKLocalAccountIdentification.Type = type.Value!; return dKLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/DayOfWeekRestriction.cs b/Adyen/BalancePlatform/Models/DayOfWeekRestriction.cs index 02e10543a..bf0e3f2dc 100644 --- a/Adyen/BalancePlatform/Models/DayOfWeekRestriction.cs +++ b/Adyen/BalancePlatform/Models/DayOfWeekRestriction.cs @@ -184,7 +184,7 @@ private ValueEnum(string? value) if (value == ValueEnum.Wednesday) return "wednesday"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/Device.cs b/Adyen/BalancePlatform/Models/Device.cs index a673b88bd..1080192ab 100644 --- a/Adyen/BalancePlatform/Models/Device.cs +++ b/Adyen/BalancePlatform/Models/Device.cs @@ -149,7 +149,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Browser) return "browser"; - return null; + return value.Value; } /// @@ -302,7 +302,7 @@ public override Device Read(ref Utf8JsonReader utf8JsonReader, Type typeToConver break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(Device.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(Device.TypeEnum.FromStringOrDefault(typeRawValue) ?? (Device.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/Duration.cs b/Adyen/BalancePlatform/Models/Duration.cs index 19d01dc1c..9e288c519 100644 --- a/Adyen/BalancePlatform/Models/Duration.cs +++ b/Adyen/BalancePlatform/Models/Duration.cs @@ -167,7 +167,7 @@ private UnitEnum(string? value) if (value == UnitEnum.Weeks) return "weeks"; - return null; + return value.Value; } /// @@ -279,7 +279,7 @@ public override Duration Read(ref Utf8JsonReader utf8JsonReader, Type typeToConv { case "unit": string? unitRawValue = utf8JsonReader.GetString(); - unit = new Option(Duration.UnitEnum.FromStringOrDefault(unitRawValue)); + unit = new Option(Duration.UnitEnum.FromStringOrDefault(unitRawValue) ?? (Duration.UnitEnum)unitRawValue); break; case "value": value = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); diff --git a/Adyen/BalancePlatform/Models/EntryModesRestriction.cs b/Adyen/BalancePlatform/Models/EntryModesRestriction.cs index bfd54266f..1ca516588 100644 --- a/Adyen/BalancePlatform/Models/EntryModesRestriction.cs +++ b/Adyen/BalancePlatform/Models/EntryModesRestriction.cs @@ -202,7 +202,7 @@ private ValueEnum(string? value) if (value == ValueEnum.Unknown) return "unknown"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/GetTaxFormResponse.cs b/Adyen/BalancePlatform/Models/GetTaxFormResponse.cs index a73211954..aacc2def2 100644 --- a/Adyen/BalancePlatform/Models/GetTaxFormResponse.cs +++ b/Adyen/BalancePlatform/Models/GetTaxFormResponse.cs @@ -131,7 +131,7 @@ private ContentTypeEnum(string? value) if (value == ContentTypeEnum.ApplicationPdf) return "application/pdf"; - return null; + return value.Value; } /// @@ -239,7 +239,7 @@ public override GetTaxFormResponse Read(ref Utf8JsonReader utf8JsonReader, Type break; case "contentType": string? contentTypeRawValue = utf8JsonReader.GetString(); - contentType = new Option(GetTaxFormResponse.ContentTypeEnum.FromStringOrDefault(contentTypeRawValue)); + contentType = new Option(GetTaxFormResponse.ContentTypeEnum.FromStringOrDefault(contentTypeRawValue) ?? (GetTaxFormResponse.ContentTypeEnum)contentTypeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/GrantOffer.cs b/Adyen/BalancePlatform/Models/GrantOffer.cs index ecb205e8f..711ee548e 100644 --- a/Adyen/BalancePlatform/Models/GrantOffer.cs +++ b/Adyen/BalancePlatform/Models/GrantOffer.cs @@ -140,7 +140,7 @@ private ContractTypeEnum(string? value) if (value == ContractTypeEnum.Loan) return "loan"; - return null; + return value.Value; } /// @@ -354,7 +354,7 @@ public override GrantOffer Read(ref Utf8JsonReader utf8JsonReader, Type typeToCo break; case "contractType": string? contractTypeRawValue = utf8JsonReader.GetString(); - contractType = new Option(GrantOffer.ContractTypeEnum.FromStringOrDefault(contractTypeRawValue)); + contractType = new Option(GrantOffer.ContractTypeEnum.FromStringOrDefault(contractTypeRawValue) ?? (GrantOffer.ContractTypeEnum)contractTypeRawValue); break; case "expiresAt": expiresAt = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)); diff --git a/Adyen/BalancePlatform/Models/HKLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/HKLocalAccountIdentification.cs index 59831a68d..ce3e2d625 100644 --- a/Adyen/BalancePlatform/Models/HKLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/HKLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.HkLocal) return "hkLocal"; - return null; + return value.Value; } /// @@ -244,7 +244,7 @@ public override HKLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(HKLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(HKLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (HKLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -264,7 +264,7 @@ public override HKLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var hKLocalAccountIdentification = new HKLocalAccountIdentification(); hKLocalAccountIdentification.AccountNumber = accountNumber.Value!; hKLocalAccountIdentification.ClearingCode = clearingCode.Value!; - hKLocalAccountIdentification.Type = type.Value!.Value; + hKLocalAccountIdentification.Type = type.Value!; return hKLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/HULocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/HULocalAccountIdentification.cs index 081f33c09..23291f5e0 100644 --- a/Adyen/BalancePlatform/Models/HULocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/HULocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.HuLocal) return "huLocal"; - return null; + return value.Value; } /// @@ -232,7 +232,7 @@ public override HULocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(HULocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(HULocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (HULocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -248,7 +248,7 @@ public override HULocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var hULocalAccountIdentification = new HULocalAccountIdentification(); hULocalAccountIdentification.AccountNumber = accountNumber.Value!; - hULocalAccountIdentification.Type = type.Value!.Value; + hULocalAccountIdentification.Type = type.Value!; return hULocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/IbanAccountIdentification.cs b/Adyen/BalancePlatform/Models/IbanAccountIdentification.cs index 7fb920bba..05dee4529 100644 --- a/Adyen/BalancePlatform/Models/IbanAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/IbanAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Iban) return "iban"; - return null; + return value.Value; } /// @@ -251,7 +251,7 @@ public override IbanAccountIdentification Read(ref Utf8JsonReader utf8JsonReader break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(IbanAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(IbanAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (IbanAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -269,7 +269,7 @@ public override IbanAccountIdentification Read(ref Utf8JsonReader utf8JsonReader ibanAccountIdentification.Iban = iban.Value!; if (bic.IsSet) ibanAccountIdentification.Bic = bic.Value; - ibanAccountIdentification.Type = type.Value!.Value; + ibanAccountIdentification.Type = type.Value!; return ibanAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/IbanAccountIdentificationRequirement.cs b/Adyen/BalancePlatform/Models/IbanAccountIdentificationRequirement.cs index 8d703a95e..508d4efab 100644 --- a/Adyen/BalancePlatform/Models/IbanAccountIdentificationRequirement.cs +++ b/Adyen/BalancePlatform/Models/IbanAccountIdentificationRequirement.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.IbanAccountIdentificationRequirement) return "ibanAccountIdentificationRequirement"; - return null; + return value.Value; } /// @@ -258,7 +258,7 @@ public override IbanAccountIdentificationRequirement Read(ref Utf8JsonReader utf break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(IbanAccountIdentificationRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(IbanAccountIdentificationRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (IbanAccountIdentificationRequirement.TypeEnum)typeRawValue); break; default: break; @@ -274,7 +274,7 @@ public override IbanAccountIdentificationRequirement Read(ref Utf8JsonReader utf ibanAccountIdentificationRequirement.Description = description.Value; if (ibanPrefixes.IsSet) ibanAccountIdentificationRequirement.IbanPrefixes = ibanPrefixes.Value; - ibanAccountIdentificationRequirement.Type = type.Value!.Value; + ibanAccountIdentificationRequirement.Type = type.Value!; return ibanAccountIdentificationRequirement; } diff --git a/Adyen/BalancePlatform/Models/LimitStatus.cs b/Adyen/BalancePlatform/Models/LimitStatus.cs index e9c111814..8874a53b1 100644 --- a/Adyen/BalancePlatform/Models/LimitStatus.cs +++ b/Adyen/BalancePlatform/Models/LimitStatus.cs @@ -33,86 +33,97 @@ namespace Adyen.BalancePlatform.Models /// The status of the transfer limit. Possible values: * **active**: the limit is currently active. * **inactive**: the limit is currently inactive. * **pendingSCA**: the limit is pending until your user performs SCA. * **scheduled**: the limit is scheduled to become active at a future date. /// /// The status of the transfer limit. Possible values: * **active**: the limit is currently active. * **inactive**: the limit is currently inactive. * **pendingSCA**: the limit is pending until your user performs SCA. * **scheduled**: the limit is scheduled to become active at a future date. - public enum LimitStatus + [JsonConverter(typeof(LimitStatus.LimitStatusJsonConverter))] + public class LimitStatus : IEnum { /// - /// Enum Active for value: active + /// Returns the value of the LimitStatus. /// - Active = 1, + public string? Value { get; set; } /// - /// Enum Inactive for value: inactive + /// LimitStatus.Active - active /// - Inactive = 2, + public static readonly LimitStatus Active = new("active"); /// - /// Enum PendingSCA for value: pendingSCA + /// LimitStatus.Inactive - inactive /// - PendingSCA = 3, + public static readonly LimitStatus Inactive = new("inactive"); /// - /// Enum Scheduled for value: scheduled + /// LimitStatus.PendingSCA - pendingSCA /// - Scheduled = 4 - } + public static readonly LimitStatus PendingSCA = new("pendingSCA"); - /// - /// Converts to and from the JSON value - /// - public static class LimitStatusValueConverter - { /// - /// Parses a given value to + /// LimitStatus.Scheduled - scheduled /// - /// - /// - public static LimitStatus FromString(string value) - { - if (value.Equals("active")) - return LimitStatus.Active; + public static readonly LimitStatus Scheduled = new("scheduled"); - if (value.Equals("inactive")) - return LimitStatus.Inactive; + private LimitStatus(string? value) + { + Value = value; + } - if (value.Equals("pendingSCA")) - return LimitStatus.PendingSCA; + /// + /// Converts a string to a implicitly. + /// + public static implicit operator LimitStatus?(string? value) => value == null ? null : new LimitStatus(value); - if (value.Equals("scheduled")) - return LimitStatus.Scheduled; + /// + /// Converts a instance to a string implicitly. + /// + public static implicit operator string?(LimitStatus? option) => option?.Value; - throw new NotImplementedException($"Could not convert value to type LimitStatus: '{value}'"); - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(LimitStatus? left, LimitStatus? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); /// - /// Parses a given value to + /// Compares two instances for inequality. /// - /// - /// - public static LimitStatus? FromStringOrDefault(string value) - { - if (value.Equals("active")) - return LimitStatus.Active; + public static bool operator !=(LimitStatus? left, LimitStatus? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - if (value.Equals("inactive")) - return LimitStatus.Inactive; + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is LimitStatus other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (value.Equals("pendingSCA")) - return LimitStatus.PendingSCA; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - if (value.Equals("scheduled")) - return LimitStatus.Scheduled; + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; - return null; + /// + /// Returns a , or null if the value is not recognized. + /// + public static LimitStatus? FromStringOrDefault(string? value) + { + return value switch { + "active" => LimitStatus.Active, + "inactive" => LimitStatus.Inactive, + "pendingSCA" => LimitStatus.PendingSCA, + "scheduled" => LimitStatus.Scheduled, + _ => null, + }; } /// - /// Converts the to the json value + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - public static string ToJsonValue(LimitStatus value) + public static string? ToJsonValue(LimitStatus? value) { + if (value == null) + return null; + if (value == LimitStatus.Active) return "active"; @@ -125,84 +136,32 @@ public static string ToJsonValue(LimitStatus value) if (value == LimitStatus.Scheduled) return "scheduled"; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } - - /// - /// A Json converter for type - /// - /// - public class LimitStatusJsonConverter : JsonConverter - { - /// - /// Returns a from the Json object - /// - /// - /// - /// - /// - public override LimitStatus Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); - - LimitStatus? result = rawValue == null - ? null - : LimitStatusValueConverter.FromStringOrDefault(rawValue); - - if (result != null) - return result.Value; - - throw new JsonException(); - } - - /// - /// Writes the LimitStatus to the json writer - /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, LimitStatus limitStatus, JsonSerializerOptions options) - { - writer.WriteStringValue(LimitStatusValueConverter.ToJsonValue(limitStatus).ToString()); - } - } - - /// - /// A Json converter for type - /// - public class LimitStatusNullableJsonConverter : JsonConverter - { - /// - /// Returns a LimitStatus from the Json object - /// - /// - /// - /// - /// - public override LimitStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); - - LimitStatus? result = rawValue == null - ? null - : LimitStatusValueConverter.FromStringOrDefault(rawValue); - - if (result != null) - return result.Value; - - throw new JsonException(); + return value.Value; } /// - /// Writes the LimitStatus to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, LimitStatus? limitStatus, JsonSerializerOptions options) + public class LimitStatusJsonConverter : JsonConverter { - writer.WriteStringValue(limitStatus.HasValue ? LimitStatusValueConverter.ToJsonValue(limitStatus.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override LimitStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : LimitStatus.FromStringOrDefault(rawValue) ?? new LimitStatus(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, LimitStatus value, JsonSerializerOptions options) + { + writer.WriteStringValue(LimitStatus.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/Mandate.cs b/Adyen/BalancePlatform/Models/Mandate.cs index a8276c4e7..2560761f2 100644 --- a/Adyen/BalancePlatform/Models/Mandate.cs +++ b/Adyen/BalancePlatform/Models/Mandate.cs @@ -247,13 +247,11 @@ public override Mandate Read(ref Utf8JsonReader utf8JsonReader, Type typeToConve break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - if (statusRawValue != null) - status = new Option(MandateStatusValueConverter.FromStringOrDefault(statusRawValue)); + status = new Option(MandateStatus.FromStringOrDefault(statusRawValue) ?? (MandateStatus)statusRawValue); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - if (typeRawValue != null) - type = new Option(MandateTypeValueConverter.FromStringOrDefault(typeRawValue)); + type = new Option(MandateType.FromStringOrDefault(typeRawValue) ?? (MandateType)typeRawValue); break; case "updatedAt": updatedAt = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)); @@ -333,12 +331,12 @@ public void WriteProperties(Utf8JsonWriter writer, Mandate mandate, JsonSerializ if (mandate._StatusOption.IsSet) { - var statusRawValue = MandateStatusValueConverter.ToJsonValue(mandate.Status!.Value); + var statusRawValue = MandateStatus.ToJsonValue(mandate.Status); writer.WriteString("status", statusRawValue); } if (mandate._TypeOption.IsSet) { - var typeRawValue = MandateTypeValueConverter.ToJsonValue(mandate.Type!.Value); + var typeRawValue = MandateType.ToJsonValue(mandate.Type); writer.WriteString("type", typeRawValue); } if (mandate._UpdatedAtOption.IsSet) diff --git a/Adyen/BalancePlatform/Models/MandateStatus.cs b/Adyen/BalancePlatform/Models/MandateStatus.cs index b3bd7d620..ddbcfc32a 100644 --- a/Adyen/BalancePlatform/Models/MandateStatus.cs +++ b/Adyen/BalancePlatform/Models/MandateStatus.cs @@ -32,162 +32,126 @@ namespace Adyen.BalancePlatform.Models /// /// Defines MandateStatus /// - public enum MandateStatus + [JsonConverter(typeof(MandateStatus.MandateStatusJsonConverter))] + public class MandateStatus : IEnum { /// - /// Enum Pending for value: pending + /// Returns the value of the MandateStatus. /// - Pending = 1, + public string? Value { get; set; } /// - /// Enum Approved for value: approved + /// MandateStatus.Pending - pending /// - Approved = 2, + public static readonly MandateStatus Pending = new("pending"); /// - /// Enum Cancelled for value: cancelled + /// MandateStatus.Approved - approved /// - Cancelled = 3 - } + public static readonly MandateStatus Approved = new("approved"); - /// - /// Converts to and from the JSON value - /// - public static class MandateStatusValueConverter - { /// - /// Parses a given value to + /// MandateStatus.Cancelled - cancelled /// - /// - /// - public static MandateStatus FromString(string value) - { - if (value.Equals("pending")) - return MandateStatus.Pending; - - if (value.Equals("approved")) - return MandateStatus.Approved; + public static readonly MandateStatus Cancelled = new("cancelled"); - if (value.Equals("cancelled")) - return MandateStatus.Cancelled; - - throw new NotImplementedException($"Could not convert value to type MandateStatus: '{value}'"); + private MandateStatus(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static MandateStatus? FromStringOrDefault(string value) - { - if (value.Equals("pending")) - return MandateStatus.Pending; - - if (value.Equals("approved")) - return MandateStatus.Approved; - - if (value.Equals("cancelled")) - return MandateStatus.Cancelled; - - return null; - } + public static implicit operator MandateStatus?(string? value) => value == null ? null : new MandateStatus(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(MandateStatus value) - { - if (value == MandateStatus.Pending) - return "pending"; - - if (value == MandateStatus.Approved) - return "approved"; - - if (value == MandateStatus.Cancelled) - return "cancelled"; + public static implicit operator string?(MandateStatus? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(MandateStatus? left, MandateStatus? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class MandateStatusJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override MandateStatus Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(MandateStatus? left, MandateStatus? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - MandateStatus? result = rawValue == null - ? null - : MandateStatusValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is MandateStatus other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the MandateStatus to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, MandateStatus mandateStatus, JsonSerializerOptions options) + public static MandateStatus? FromStringOrDefault(string? value) { - writer.WriteStringValue(MandateStatusValueConverter.ToJsonValue(mandateStatus).ToString()); + return value switch { + "pending" => MandateStatus.Pending, + "approved" => MandateStatus.Approved, + "cancelled" => MandateStatus.Cancelled, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class MandateStatusNullableJsonConverter : JsonConverter - { /// - /// Returns a MandateStatus from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override MandateStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(MandateStatus? value) { - string? rawValue = reader.GetString(); + if (value == null) + return null; + + if (value == MandateStatus.Pending) + return "pending"; - MandateStatus? result = rawValue == null - ? null - : MandateStatusValueConverter.FromStringOrDefault(rawValue); + if (value == MandateStatus.Approved) + return "approved"; - if (result != null) - return result.Value; + if (value == MandateStatus.Cancelled) + return "cancelled"; - throw new JsonException(); + return value.Value; } /// - /// Writes the MandateStatus to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, MandateStatus? mandateStatus, JsonSerializerOptions options) + public class MandateStatusJsonConverter : JsonConverter { - writer.WriteStringValue(mandateStatus.HasValue ? MandateStatusValueConverter.ToJsonValue(mandateStatus.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override MandateStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : MandateStatus.FromStringOrDefault(rawValue) ?? new MandateStatus(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, MandateStatus value, JsonSerializerOptions options) + { + writer.WriteStringValue(MandateStatus.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/MandateType.cs b/Adyen/BalancePlatform/Models/MandateType.cs index 2fcfb2768..1fb5af8d5 100644 --- a/Adyen/BalancePlatform/Models/MandateType.cs +++ b/Adyen/BalancePlatform/Models/MandateType.cs @@ -32,134 +32,108 @@ namespace Adyen.BalancePlatform.Models /// /// Defines MandateType /// - public enum MandateType + [JsonConverter(typeof(MandateType.MandateTypeJsonConverter))] + public class MandateType : IEnum { /// - /// Enum Bacs for value: bacs + /// Returns the value of the MandateType. /// - Bacs = 1 - } + public string? Value { get; set; } - /// - /// Converts to and from the JSON value - /// - public static class MandateTypeValueConverter - { /// - /// Parses a given value to + /// MandateType.Bacs - bacs /// - /// - /// - public static MandateType FromString(string value) - { - if (value.Equals("bacs")) - return MandateType.Bacs; + public static readonly MandateType Bacs = new("bacs"); - throw new NotImplementedException($"Could not convert value to type MandateType: '{value}'"); + private MandateType(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static MandateType? FromStringOrDefault(string value) - { - if (value.Equals("bacs")) - return MandateType.Bacs; - - return null; - } + public static implicit operator MandateType?(string? value) => value == null ? null : new MandateType(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(MandateType value) - { - if (value == MandateType.Bacs) - return "bacs"; + public static implicit operator string?(MandateType? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(MandateType? left, MandateType? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class MandateTypeJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override MandateType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(MandateType? left, MandateType? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - MandateType? result = rawValue == null - ? null - : MandateTypeValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is MandateType other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the MandateType to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, MandateType mandateType, JsonSerializerOptions options) + public static MandateType? FromStringOrDefault(string? value) { - writer.WriteStringValue(MandateTypeValueConverter.ToJsonValue(mandateType).ToString()); + return value switch { + "bacs" => MandateType.Bacs, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class MandateTypeNullableJsonConverter : JsonConverter - { /// - /// Returns a MandateType from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override MandateType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(MandateType? value) { - string? rawValue = reader.GetString(); - - MandateType? result = rawValue == null - ? null - : MandateTypeValueConverter.FromStringOrDefault(rawValue); + if (value == null) + return null; - if (result != null) - return result.Value; + if (value == MandateType.Bacs) + return "bacs"; - throw new JsonException(); + return value.Value; } /// - /// Writes the MandateType to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, MandateType? mandateType, JsonSerializerOptions options) + public class MandateTypeJsonConverter : JsonConverter { - writer.WriteStringValue(mandateType.HasValue ? MandateTypeValueConverter.ToJsonValue(mandateType.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override MandateType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : MandateType.FromStringOrDefault(rawValue) ?? new MandateType(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, MandateType value, JsonSerializerOptions options) + { + writer.WriteStringValue(MandateType.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/MatchingValuesRestriction.cs b/Adyen/BalancePlatform/Models/MatchingValuesRestriction.cs index 313a1e28b..9ce49f27f 100644 --- a/Adyen/BalancePlatform/Models/MatchingValuesRestriction.cs +++ b/Adyen/BalancePlatform/Models/MatchingValuesRestriction.cs @@ -166,7 +166,7 @@ private ValueEnum(string? value) if (value == ValueEnum.MerchantName) return "merchantName"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/NOLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/NOLocalAccountIdentification.cs index 59b9dc7a8..1f2bea16b 100644 --- a/Adyen/BalancePlatform/Models/NOLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/NOLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.NoLocal) return "noLocal"; - return null; + return value.Value; } /// @@ -232,7 +232,7 @@ public override NOLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(NOLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(NOLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (NOLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -248,7 +248,7 @@ public override NOLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var nOLocalAccountIdentification = new NOLocalAccountIdentification(); nOLocalAccountIdentification.AccountNumber = accountNumber.Value!; - nOLocalAccountIdentification.Type = type.Value!.Value; + nOLocalAccountIdentification.Type = type.Value!; return nOLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/NZLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/NZLocalAccountIdentification.cs index 6b014dfa8..982d70df9 100644 --- a/Adyen/BalancePlatform/Models/NZLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/NZLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.NzLocal) return "nzLocal"; - return null; + return value.Value; } /// @@ -232,7 +232,7 @@ public override NZLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(NZLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(NZLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (NZLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -248,7 +248,7 @@ public override NZLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var nZLocalAccountIdentification = new NZLocalAccountIdentification(); nZLocalAccountIdentification.AccountNumber = accountNumber.Value!; - nZLocalAccountIdentification.Type = type.Value!.Value; + nZLocalAccountIdentification.Type = type.Value!; return nZLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/NetworkToken.cs b/Adyen/BalancePlatform/Models/NetworkToken.cs index c95fb5299..236115732 100644 --- a/Adyen/BalancePlatform/Models/NetworkToken.cs +++ b/Adyen/BalancePlatform/Models/NetworkToken.cs @@ -158,7 +158,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Closed) return "closed"; - return null; + return value.Value; } /// @@ -400,7 +400,7 @@ public override NetworkToken Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(NetworkToken.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(NetworkToken.StatusEnum.FromStringOrDefault(statusRawValue) ?? (NetworkToken.StatusEnum)statusRawValue); break; case "tokenLastFour": tokenLastFour = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/NumberAndBicAccountIdentification.cs b/Adyen/BalancePlatform/Models/NumberAndBicAccountIdentification.cs index 16537ed2e..6a1a48750 100644 --- a/Adyen/BalancePlatform/Models/NumberAndBicAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/NumberAndBicAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.NumberAndBic) return "numberAndBic"; - return null; + return value.Value; } /// @@ -262,7 +262,7 @@ public override NumberAndBicAccountIdentification Read(ref Utf8JsonReader utf8Js break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(NumberAndBicAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(NumberAndBicAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (NumberAndBicAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -284,7 +284,7 @@ public override NumberAndBicAccountIdentification Read(ref Utf8JsonReader utf8Js numberAndBicAccountIdentification.Bic = bic.Value!; if (additionalBankIdentification.IsSet) numberAndBicAccountIdentification.AdditionalBankIdentification = additionalBankIdentification.Value; - numberAndBicAccountIdentification.Type = type.Value!.Value; + numberAndBicAccountIdentification.Type = type.Value!; return numberAndBicAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/PLLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/PLLocalAccountIdentification.cs index c34e86e47..20ab8d522 100644 --- a/Adyen/BalancePlatform/Models/PLLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/PLLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PlLocal) return "plLocal"; - return null; + return value.Value; } /// @@ -232,7 +232,7 @@ public override PLLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PLLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PLLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PLLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -248,7 +248,7 @@ public override PLLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var pLLocalAccountIdentification = new PLLocalAccountIdentification(); pLLocalAccountIdentification.AccountNumber = accountNumber.Value!; - pLLocalAccountIdentification.Type = type.Value!.Value; + pLLocalAccountIdentification.Type = type.Value!; return pLLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/PaymentInstrument.cs b/Adyen/BalancePlatform/Models/PaymentInstrument.cs index 11eb4ca44..7ce39dc19 100644 --- a/Adyen/BalancePlatform/Models/PaymentInstrument.cs +++ b/Adyen/BalancePlatform/Models/PaymentInstrument.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Card) return "card"; - return null; + return value.Value; } /// @@ -288,7 +288,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -488,7 +488,7 @@ private StatusReasonEnum(string? value) if (value == StatusReasonEnum.TransactionRule) return "transactionRule"; - return null; + return value.Value; } /// @@ -768,7 +768,7 @@ public override PaymentInstrument Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PaymentInstrument.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PaymentInstrument.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PaymentInstrument.TypeEnum)typeRawValue); break; case "additionalBankAccountIdentifications": additionalBankAccountIdentifications = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -796,14 +796,14 @@ public override PaymentInstrument Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentInstrument.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentInstrument.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentInstrument.StatusEnum)statusRawValue); break; case "statusComment": statusComment = new Option(utf8JsonReader.GetString()!); break; case "statusReason": string? statusReasonRawValue = utf8JsonReader.GetString(); - statusReason = new Option(PaymentInstrument.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue)); + statusReason = new Option(PaymentInstrument.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue) ?? (PaymentInstrument.StatusReasonEnum)statusReasonRawValue); break; default: break; @@ -827,7 +827,7 @@ public override PaymentInstrument Read(ref Utf8JsonReader utf8JsonReader, Type t paymentInstrument.BalanceAccountId = balanceAccountId.Value!; paymentInstrument.Id = id.Value!; paymentInstrument.IssuingCountryCode = issuingCountryCode.Value!; - paymentInstrument.Type = type.Value!.Value; + paymentInstrument.Type = type.Value!; if (additionalBankAccountIdentifications.IsSet) paymentInstrument.AdditionalBankAccountIdentifications = additionalBankAccountIdentifications.Value; if (bankAccount.IsSet) diff --git a/Adyen/BalancePlatform/Models/PaymentInstrumentAdditionalBankAccountIdentificationsInner.cs b/Adyen/BalancePlatform/Models/PaymentInstrumentAdditionalBankAccountIdentificationsInner.cs index 833621004..76b7bb973 100644 --- a/Adyen/BalancePlatform/Models/PaymentInstrumentAdditionalBankAccountIdentificationsInner.cs +++ b/Adyen/BalancePlatform/Models/PaymentInstrumentAdditionalBankAccountIdentificationsInner.cs @@ -127,7 +127,7 @@ public override PaymentInstrumentAdditionalBankAccountIdentificationsInner Read( } } - if (ibanAccountIdentification?.Type != null) + if (ibanAccountIdentification?.Type != null && IbanAccountIdentification.TypeEnum.FromStringOrDefault((string?)ibanAccountIdentification.Type) != null) return new PaymentInstrumentAdditionalBankAccountIdentificationsInner(ibanAccountIdentification); throw new JsonException(); diff --git a/Adyen/BalancePlatform/Models/PaymentInstrumentInfo.cs b/Adyen/BalancePlatform/Models/PaymentInstrumentInfo.cs index f0b91fca7..5aeb0893f 100644 --- a/Adyen/BalancePlatform/Models/PaymentInstrumentInfo.cs +++ b/Adyen/BalancePlatform/Models/PaymentInstrumentInfo.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Card) return "card"; - return null; + return value.Value; } /// @@ -288,7 +288,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -488,7 +488,7 @@ private StatusReasonEnum(string? value) if (value == StatusReasonEnum.TransactionRule) return "transactionRule"; - return null; + return value.Value; } /// @@ -706,7 +706,7 @@ public override PaymentInstrumentInfo Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PaymentInstrumentInfo.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PaymentInstrumentInfo.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PaymentInstrumentInfo.TypeEnum)typeRawValue); break; case "bankAccount": bankAccount = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -725,14 +725,14 @@ public override PaymentInstrumentInfo Read(ref Utf8JsonReader utf8JsonReader, Ty break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentInstrumentInfo.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentInstrumentInfo.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentInstrumentInfo.StatusEnum)statusRawValue); break; case "statusComment": statusComment = new Option(utf8JsonReader.GetString()!); break; case "statusReason": string? statusReasonRawValue = utf8JsonReader.GetString(); - statusReason = new Option(PaymentInstrumentInfo.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue)); + statusReason = new Option(PaymentInstrumentInfo.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue) ?? (PaymentInstrumentInfo.StatusReasonEnum)statusReasonRawValue); break; default: break; @@ -752,7 +752,7 @@ public override PaymentInstrumentInfo Read(ref Utf8JsonReader utf8JsonReader, Ty var paymentInstrumentInfo = new PaymentInstrumentInfo(); paymentInstrumentInfo.BalanceAccountId = balanceAccountId.Value!; paymentInstrumentInfo.IssuingCountryCode = issuingCountryCode.Value!; - paymentInstrumentInfo.Type = type.Value!.Value; + paymentInstrumentInfo.Type = type.Value!; if (bankAccount.IsSet) paymentInstrumentInfo.BankAccount = bankAccount.Value; if (card.IsSet) diff --git a/Adyen/BalancePlatform/Models/PaymentInstrumentRequirement.cs b/Adyen/BalancePlatform/Models/PaymentInstrumentRequirement.cs index 0bcaf5045..90da4df29 100644 --- a/Adyen/BalancePlatform/Models/PaymentInstrumentRequirement.cs +++ b/Adyen/BalancePlatform/Models/PaymentInstrumentRequirement.cs @@ -140,7 +140,7 @@ private PaymentInstrumentTypeEnum(string? value) if (value == PaymentInstrumentTypeEnum.Card) return "Card"; - return null; + return value.Value; } /// @@ -268,7 +268,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PaymentInstrumentRequirement) return "paymentInstrumentRequirement"; - return null; + return value.Value; } /// @@ -435,11 +435,11 @@ public override PaymentInstrumentRequirement Read(ref Utf8JsonReader utf8JsonRea break; case "paymentInstrumentType": string? paymentInstrumentTypeRawValue = utf8JsonReader.GetString(); - paymentInstrumentType = new Option(PaymentInstrumentRequirement.PaymentInstrumentTypeEnum.FromStringOrDefault(paymentInstrumentTypeRawValue)); + paymentInstrumentType = new Option(PaymentInstrumentRequirement.PaymentInstrumentTypeEnum.FromStringOrDefault(paymentInstrumentTypeRawValue) ?? (PaymentInstrumentRequirement.PaymentInstrumentTypeEnum)paymentInstrumentTypeRawValue); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(PaymentInstrumentRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(PaymentInstrumentRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (PaymentInstrumentRequirement.TypeEnum)typeRawValue); break; default: break; @@ -461,7 +461,7 @@ public override PaymentInstrumentRequirement Read(ref Utf8JsonReader utf8JsonRea paymentInstrumentRequirement.OnlyForCrossBalancePlatform = onlyForCrossBalancePlatform.Value; if (paymentInstrumentType.IsSet) paymentInstrumentRequirement.PaymentInstrumentType = paymentInstrumentType.Value; - paymentInstrumentRequirement.Type = type.Value!.Value; + paymentInstrumentRequirement.Type = type.Value!; return paymentInstrumentRequirement; } diff --git a/Adyen/BalancePlatform/Models/PaymentInstrumentUpdateRequest.cs b/Adyen/BalancePlatform/Models/PaymentInstrumentUpdateRequest.cs index e3b0a73ba..039daf42d 100644 --- a/Adyen/BalancePlatform/Models/PaymentInstrumentUpdateRequest.cs +++ b/Adyen/BalancePlatform/Models/PaymentInstrumentUpdateRequest.cs @@ -158,7 +158,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -358,7 +358,7 @@ private StatusReasonEnum(string? value) if (value == StatusReasonEnum.TransactionRule) return "transactionRule"; - return null; + return value.Value; } /// @@ -509,14 +509,14 @@ public override PaymentInstrumentUpdateRequest Read(ref Utf8JsonReader utf8JsonR break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PaymentInstrumentUpdateRequest.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PaymentInstrumentUpdateRequest.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PaymentInstrumentUpdateRequest.StatusEnum)statusRawValue); break; case "statusComment": statusComment = new Option(utf8JsonReader.GetString()!); break; case "statusReason": string? statusReasonRawValue = utf8JsonReader.GetString(); - statusReason = new Option(PaymentInstrumentUpdateRequest.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue)); + statusReason = new Option(PaymentInstrumentUpdateRequest.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue) ?? (PaymentInstrumentUpdateRequest.StatusReasonEnum)statusReasonRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/Phone.cs b/Adyen/BalancePlatform/Models/Phone.cs index 1bc027b2c..dc8462418 100644 --- a/Adyen/BalancePlatform/Models/Phone.cs +++ b/Adyen/BalancePlatform/Models/Phone.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Mobile) return "mobile"; - return null; + return value.Value; } /// @@ -241,7 +241,7 @@ public override Phone Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(Phone.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(Phone.TypeEnum.FromStringOrDefault(typeRawValue) ?? (Phone.TypeEnum)typeRawValue); break; default: break; @@ -257,7 +257,7 @@ public override Phone Read(ref Utf8JsonReader utf8JsonReader, Type typeToConvert var phone = new Phone(); phone.Number = number.Value!; - phone.Type = type.Value!.Value; + phone.Type = type.Value!; return phone; } diff --git a/Adyen/BalancePlatform/Models/PhoneNumber.cs b/Adyen/BalancePlatform/Models/PhoneNumber.cs index 78c87a4a0..46a5e02ae 100644 --- a/Adyen/BalancePlatform/Models/PhoneNumber.cs +++ b/Adyen/BalancePlatform/Models/PhoneNumber.cs @@ -158,7 +158,7 @@ private PhoneTypeEnum(string? value) if (value == PhoneTypeEnum.SIP) return "SIP"; - return null; + return value.Value; } /// @@ -292,7 +292,7 @@ public override PhoneNumber Read(ref Utf8JsonReader utf8JsonReader, Type typeToC break; case "phoneType": string? phoneTypeRawValue = utf8JsonReader.GetString(); - phoneType = new Option(PhoneNumber.PhoneTypeEnum.FromStringOrDefault(phoneTypeRawValue)); + phoneType = new Option(PhoneNumber.PhoneTypeEnum.FromStringOrDefault(phoneTypeRawValue) ?? (PhoneNumber.PhoneTypeEnum)phoneTypeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/PinChangeResponse.cs b/Adyen/BalancePlatform/Models/PinChangeResponse.cs index a67b782bf..7d1e442a9 100644 --- a/Adyen/BalancePlatform/Models/PinChangeResponse.cs +++ b/Adyen/BalancePlatform/Models/PinChangeResponse.cs @@ -149,7 +149,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Unavailable) return "unavailable"; - return null; + return value.Value; } /// @@ -238,7 +238,7 @@ public override PinChangeResponse Read(ref Utf8JsonReader utf8JsonReader, Type t { case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(PinChangeResponse.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(PinChangeResponse.StatusEnum.FromStringOrDefault(statusRawValue) ?? (PinChangeResponse.StatusEnum)statusRawValue); break; default: break; @@ -250,7 +250,7 @@ public override PinChangeResponse Read(ref Utf8JsonReader utf8JsonReader, Type t throw new ArgumentException("Property is required for class PinChangeResponse.", nameof(status)); var pinChangeResponse = new PinChangeResponse(); - pinChangeResponse.Status = status.Value!.Value; + pinChangeResponse.Status = status.Value!; return pinChangeResponse; } diff --git a/Adyen/BalancePlatform/Models/ProcessingTypesRestriction.cs b/Adyen/BalancePlatform/Models/ProcessingTypesRestriction.cs index 524b3feb7..3c7f9f1d6 100644 --- a/Adyen/BalancePlatform/Models/ProcessingTypesRestriction.cs +++ b/Adyen/BalancePlatform/Models/ProcessingTypesRestriction.cs @@ -193,7 +193,7 @@ private ValueEnum(string? value) if (value == ValueEnum.Unknown) return "unknown"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/RemoveAssociationRequest.cs b/Adyen/BalancePlatform/Models/RemoveAssociationRequest.cs index 72e5309ab..6fd8e6432 100644 --- a/Adyen/BalancePlatform/Models/RemoveAssociationRequest.cs +++ b/Adyen/BalancePlatform/Models/RemoveAssociationRequest.cs @@ -126,8 +126,7 @@ public override RemoveAssociationRequest Read(ref Utf8JsonReader utf8JsonReader, break; case "entityType": string? entityTypeRawValue = utf8JsonReader.GetString(); - if (entityTypeRawValue != null) - entityType = new Option(ScaEntityTypeValueConverter.FromStringOrDefault(entityTypeRawValue)); + entityType = new Option(ScaEntityType.FromStringOrDefault(entityTypeRawValue) ?? (ScaEntityType)entityTypeRawValue); break; case "scaDeviceIds": scaDeviceIds = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -149,7 +148,7 @@ public override RemoveAssociationRequest Read(ref Utf8JsonReader utf8JsonReader, var removeAssociationRequest = new RemoveAssociationRequest(); removeAssociationRequest.EntityId = entityId.Value!; - removeAssociationRequest.EntityType = entityType.Value!.Value; + removeAssociationRequest.EntityType = entityType.Value!; removeAssociationRequest.ScaDeviceIds = scaDeviceIds.Value!; return removeAssociationRequest; } @@ -183,7 +182,7 @@ public void WriteProperties(Utf8JsonWriter writer, RemoveAssociationRequest remo if (removeAssociationRequest.EntityId != null) writer.WriteString("entityId", removeAssociationRequest.EntityId); - var entityTypeRawValue = ScaEntityTypeValueConverter.ToJsonValue(removeAssociationRequest.EntityType); + var entityTypeRawValue = ScaEntityType.ToJsonValue(removeAssociationRequest.EntityType); writer.WriteString("entityType", entityTypeRawValue); writer.WritePropertyName("scaDeviceIds"); diff --git a/Adyen/BalancePlatform/Models/SELocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/SELocalAccountIdentification.cs index eec11defa..2260999ef 100644 --- a/Adyen/BalancePlatform/Models/SELocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/SELocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.SeLocal) return "seLocal"; - return null; + return value.Value; } /// @@ -244,7 +244,7 @@ public override SELocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(SELocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(SELocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (SELocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -264,7 +264,7 @@ public override SELocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var sELocalAccountIdentification = new SELocalAccountIdentification(); sELocalAccountIdentification.AccountNumber = accountNumber.Value!; sELocalAccountIdentification.ClearingNumber = clearingNumber.Value!; - sELocalAccountIdentification.Type = type.Value!.Value; + sELocalAccountIdentification.Type = type.Value!; return sELocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/SGLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/SGLocalAccountIdentification.cs index ed5195667..a0d495d82 100644 --- a/Adyen/BalancePlatform/Models/SGLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/SGLocalAccountIdentification.cs @@ -132,7 +132,7 @@ private TypeEnum(string? value) if (value == TypeEnum.SgLocal) return "sgLocal"; - return null; + return value.Value; } /// @@ -252,7 +252,7 @@ public override SGLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(SGLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(SGLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (SGLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/ScaDevice.cs b/Adyen/BalancePlatform/Models/ScaDevice.cs index 2d0be58a3..6b961ff5c 100644 --- a/Adyen/BalancePlatform/Models/ScaDevice.cs +++ b/Adyen/BalancePlatform/Models/ScaDevice.cs @@ -129,8 +129,7 @@ public override ScaDevice Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - if (typeRawValue != null) - type = new Option(ScaDeviceTypeValueConverter.FromStringOrDefault(typeRawValue)); + type = new Option(ScaDeviceType.FromStringOrDefault(typeRawValue) ?? (ScaDeviceType)typeRawValue); break; default: break; @@ -150,7 +149,7 @@ public override ScaDevice Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon var scaDevice = new ScaDevice(); scaDevice.Id = id.Value!; scaDevice.Name = name.Value!; - scaDevice.Type = type.Value!.Value; + scaDevice.Type = type.Value!; return scaDevice; } @@ -186,7 +185,7 @@ public void WriteProperties(Utf8JsonWriter writer, ScaDevice scaDevice, JsonSeri if (scaDevice.Name != null) writer.WriteString("name", scaDevice.Name); - var typeRawValue = ScaDeviceTypeValueConverter.ToJsonValue(scaDevice.Type); + var typeRawValue = ScaDeviceType.ToJsonValue(scaDevice.Type); writer.WriteString("type", typeRawValue); } } diff --git a/Adyen/BalancePlatform/Models/ScaDeviceType.cs b/Adyen/BalancePlatform/Models/ScaDeviceType.cs index 62e837177..ccc47d857 100644 --- a/Adyen/BalancePlatform/Models/ScaDeviceType.cs +++ b/Adyen/BalancePlatform/Models/ScaDeviceType.cs @@ -32,162 +32,126 @@ namespace Adyen.BalancePlatform.Models /// /// Defines ScaDeviceType /// - public enum ScaDeviceType + [JsonConverter(typeof(ScaDeviceType.ScaDeviceTypeJsonConverter))] + public class ScaDeviceType : IEnum { /// - /// Enum Browser for value: browser + /// Returns the value of the ScaDeviceType. /// - Browser = 1, + public string? Value { get; set; } /// - /// Enum Ios for value: ios + /// ScaDeviceType.Browser - browser /// - Ios = 2, + public static readonly ScaDeviceType Browser = new("browser"); /// - /// Enum Android for value: android + /// ScaDeviceType.Ios - ios /// - Android = 3 - } + public static readonly ScaDeviceType Ios = new("ios"); - /// - /// Converts to and from the JSON value - /// - public static class ScaDeviceTypeValueConverter - { /// - /// Parses a given value to + /// ScaDeviceType.Android - android /// - /// - /// - public static ScaDeviceType FromString(string value) - { - if (value.Equals("browser")) - return ScaDeviceType.Browser; - - if (value.Equals("ios")) - return ScaDeviceType.Ios; + public static readonly ScaDeviceType Android = new("android"); - if (value.Equals("android")) - return ScaDeviceType.Android; - - throw new NotImplementedException($"Could not convert value to type ScaDeviceType: '{value}'"); + private ScaDeviceType(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static ScaDeviceType? FromStringOrDefault(string value) - { - if (value.Equals("browser")) - return ScaDeviceType.Browser; - - if (value.Equals("ios")) - return ScaDeviceType.Ios; - - if (value.Equals("android")) - return ScaDeviceType.Android; - - return null; - } + public static implicit operator ScaDeviceType?(string? value) => value == null ? null : new ScaDeviceType(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(ScaDeviceType value) - { - if (value == ScaDeviceType.Browser) - return "browser"; - - if (value == ScaDeviceType.Ios) - return "ios"; - - if (value == ScaDeviceType.Android) - return "android"; + public static implicit operator string?(ScaDeviceType? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(ScaDeviceType? left, ScaDeviceType? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class ScaDeviceTypeJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override ScaDeviceType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(ScaDeviceType? left, ScaDeviceType? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - ScaDeviceType? result = rawValue == null - ? null - : ScaDeviceTypeValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is ScaDeviceType other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the ScaDeviceType to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaDeviceType scaDeviceType, JsonSerializerOptions options) + public static ScaDeviceType? FromStringOrDefault(string? value) { - writer.WriteStringValue(ScaDeviceTypeValueConverter.ToJsonValue(scaDeviceType).ToString()); + return value switch { + "browser" => ScaDeviceType.Browser, + "ios" => ScaDeviceType.Ios, + "android" => ScaDeviceType.Android, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class ScaDeviceTypeNullableJsonConverter : JsonConverter - { /// - /// Returns a ScaDeviceType from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override ScaDeviceType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(ScaDeviceType? value) { - string? rawValue = reader.GetString(); + if (value == null) + return null; + + if (value == ScaDeviceType.Browser) + return "browser"; - ScaDeviceType? result = rawValue == null - ? null - : ScaDeviceTypeValueConverter.FromStringOrDefault(rawValue); + if (value == ScaDeviceType.Ios) + return "ios"; - if (result != null) - return result.Value; + if (value == ScaDeviceType.Android) + return "android"; - throw new JsonException(); + return value.Value; } /// - /// Writes the ScaDeviceType to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaDeviceType? scaDeviceType, JsonSerializerOptions options) + public class ScaDeviceTypeJsonConverter : JsonConverter { - writer.WriteStringValue(scaDeviceType.HasValue ? ScaDeviceTypeValueConverter.ToJsonValue(scaDeviceType.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override ScaDeviceType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : ScaDeviceType.FromStringOrDefault(rawValue) ?? new ScaDeviceType(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, ScaDeviceType value, JsonSerializerOptions options) + { + writer.WriteStringValue(ScaDeviceType.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/ScaEntity.cs b/Adyen/BalancePlatform/Models/ScaEntity.cs index 88e926b07..f0d3048f5 100644 --- a/Adyen/BalancePlatform/Models/ScaEntity.cs +++ b/Adyen/BalancePlatform/Models/ScaEntity.cs @@ -118,8 +118,7 @@ public override ScaEntity Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - if (typeRawValue != null) - type = new Option(ScaEntityTypeValueConverter.FromStringOrDefault(typeRawValue)); + type = new Option(ScaEntityType.FromStringOrDefault(typeRawValue) ?? (ScaEntityType)typeRawValue); break; default: break; @@ -135,7 +134,7 @@ public override ScaEntity Read(ref Utf8JsonReader utf8JsonReader, Type typeToCon var scaEntity = new ScaEntity(); scaEntity.Id = id.Value!; - scaEntity.Type = type.Value!.Value; + scaEntity.Type = type.Value!; return scaEntity; } @@ -168,7 +167,7 @@ public void WriteProperties(Utf8JsonWriter writer, ScaEntity scaEntity, JsonSeri if (scaEntity.Id != null) writer.WriteString("id", scaEntity.Id); - var typeRawValue = ScaEntityTypeValueConverter.ToJsonValue(scaEntity.Type); + var typeRawValue = ScaEntityType.ToJsonValue(scaEntity.Type); writer.WriteString("type", typeRawValue); } } diff --git a/Adyen/BalancePlatform/Models/ScaEntityType.cs b/Adyen/BalancePlatform/Models/ScaEntityType.cs index 44640696e..e6ec0b48c 100644 --- a/Adyen/BalancePlatform/Models/ScaEntityType.cs +++ b/Adyen/BalancePlatform/Models/ScaEntityType.cs @@ -32,162 +32,126 @@ namespace Adyen.BalancePlatform.Models /// /// Defines ScaEntityType /// - public enum ScaEntityType + [JsonConverter(typeof(ScaEntityType.ScaEntityTypeJsonConverter))] + public class ScaEntityType : IEnum { /// - /// Enum AccountHolder for value: accountHolder + /// Returns the value of the ScaEntityType. /// - AccountHolder = 1, + public string? Value { get; set; } /// - /// Enum LegalEntity for value: legalEntity + /// ScaEntityType.AccountHolder - accountHolder /// - LegalEntity = 2, + public static readonly ScaEntityType AccountHolder = new("accountHolder"); /// - /// Enum PaymentInstrument for value: paymentInstrument + /// ScaEntityType.LegalEntity - legalEntity /// - PaymentInstrument = 3 - } + public static readonly ScaEntityType LegalEntity = new("legalEntity"); - /// - /// Converts to and from the JSON value - /// - public static class ScaEntityTypeValueConverter - { /// - /// Parses a given value to + /// ScaEntityType.PaymentInstrument - paymentInstrument /// - /// - /// - public static ScaEntityType FromString(string value) - { - if (value.Equals("accountHolder")) - return ScaEntityType.AccountHolder; - - if (value.Equals("legalEntity")) - return ScaEntityType.LegalEntity; + public static readonly ScaEntityType PaymentInstrument = new("paymentInstrument"); - if (value.Equals("paymentInstrument")) - return ScaEntityType.PaymentInstrument; - - throw new NotImplementedException($"Could not convert value to type ScaEntityType: '{value}'"); + private ScaEntityType(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static ScaEntityType? FromStringOrDefault(string value) - { - if (value.Equals("accountHolder")) - return ScaEntityType.AccountHolder; - - if (value.Equals("legalEntity")) - return ScaEntityType.LegalEntity; - - if (value.Equals("paymentInstrument")) - return ScaEntityType.PaymentInstrument; - - return null; - } + public static implicit operator ScaEntityType?(string? value) => value == null ? null : new ScaEntityType(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(ScaEntityType value) - { - if (value == ScaEntityType.AccountHolder) - return "accountHolder"; - - if (value == ScaEntityType.LegalEntity) - return "legalEntity"; - - if (value == ScaEntityType.PaymentInstrument) - return "paymentInstrument"; + public static implicit operator string?(ScaEntityType? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(ScaEntityType? left, ScaEntityType? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class ScaEntityTypeJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override ScaEntityType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(ScaEntityType? left, ScaEntityType? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - ScaEntityType? result = rawValue == null - ? null - : ScaEntityTypeValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is ScaEntityType other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the ScaEntityType to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaEntityType scaEntityType, JsonSerializerOptions options) + public static ScaEntityType? FromStringOrDefault(string? value) { - writer.WriteStringValue(ScaEntityTypeValueConverter.ToJsonValue(scaEntityType).ToString()); + return value switch { + "accountHolder" => ScaEntityType.AccountHolder, + "legalEntity" => ScaEntityType.LegalEntity, + "paymentInstrument" => ScaEntityType.PaymentInstrument, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class ScaEntityTypeNullableJsonConverter : JsonConverter - { /// - /// Returns a ScaEntityType from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override ScaEntityType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(ScaEntityType? value) { - string? rawValue = reader.GetString(); + if (value == null) + return null; + + if (value == ScaEntityType.AccountHolder) + return "accountHolder"; - ScaEntityType? result = rawValue == null - ? null - : ScaEntityTypeValueConverter.FromStringOrDefault(rawValue); + if (value == ScaEntityType.LegalEntity) + return "legalEntity"; - if (result != null) - return result.Value; + if (value == ScaEntityType.PaymentInstrument) + return "paymentInstrument"; - throw new JsonException(); + return value.Value; } /// - /// Writes the ScaEntityType to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaEntityType? scaEntityType, JsonSerializerOptions options) + public class ScaEntityTypeJsonConverter : JsonConverter { - writer.WriteStringValue(scaEntityType.HasValue ? ScaEntityTypeValueConverter.ToJsonValue(scaEntityType.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override ScaEntityType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : ScaEntityType.FromStringOrDefault(rawValue) ?? new ScaEntityType(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, ScaEntityType value, JsonSerializerOptions options) + { + writer.WriteStringValue(ScaEntityType.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/ScaExemption.cs b/Adyen/BalancePlatform/Models/ScaExemption.cs index d9569e3fe..1d705584b 100644 --- a/Adyen/BalancePlatform/Models/ScaExemption.cs +++ b/Adyen/BalancePlatform/Models/ScaExemption.cs @@ -30,100 +30,106 @@ namespace Adyen.BalancePlatform.Models { /// - /// The type of exemption for Strong Customer Authentication (SCA). Possible values: * **lowerLimit**: the newly created limit is lower than the existing limit. * **notRegulated**: the limit is created in a country, region, or industry where it is not mandated by law to use SCA. * **setByPlatform**: you set a limit for one of your user's balance accounts, or for your balance platform. * **initialLimit**: there are no existing transfer limits set on the balance account or balance platform. * **alreadyPerformed**: you are confident about your user's identity and do not need to verify this using SCA. + /// The type of exemption for Strong Customer Authentication (SCA). Possible values: * **lowerLimit**: the newly created limit is lower than the existing limit. * **notRegulated**: the limit is created in a country, region, or industry where it is not mandated by law to use SCA. * **setByPlatform**: you set a limit for one of your user's balance accounts, or for your balance platform. * **initialLimit**: there are no existing transfer limits set on the balance account or balance platform. * **alreadyPerformed**: you are confident about your user's identity and do not need to verify this using SCA. /// /// The type of exemption for Strong Customer Authentication (SCA). Possible values: * **lowerLimit**: the newly created limit is lower than the existing limit. * **notRegulated**: the limit is created in a country, region, or industry where it is not mandated by law to use SCA. * **setByPlatform**: you set a limit for one of your user's balance accounts, or for your balance platform. * **initialLimit**: there are no existing transfer limits set on the balance account or balance platform. * **alreadyPerformed**: you are confident about your user's identity and do not need to verify this using SCA. - public enum ScaExemption + [JsonConverter(typeof(ScaExemption.ScaExemptionJsonConverter))] + public class ScaExemption : IEnum { /// - /// Enum SetByPlatform for value: setByPlatform + /// Returns the value of the ScaExemption. /// - SetByPlatform = 1, + public string? Value { get; set; } /// - /// Enum InitialLimit for value: initialLimit + /// ScaExemption.SetByPlatform - setByPlatform /// - InitialLimit = 2, + public static readonly ScaExemption SetByPlatform = new("setByPlatform"); /// - /// Enum LowerLimit for value: lowerLimit + /// ScaExemption.InitialLimit - initialLimit /// - LowerLimit = 3, + public static readonly ScaExemption InitialLimit = new("initialLimit"); /// - /// Enum NotRegulated for value: notRegulated + /// ScaExemption.LowerLimit - lowerLimit /// - NotRegulated = 4, + public static readonly ScaExemption LowerLimit = new("lowerLimit"); /// - /// Enum AlreadyPerformed for value: alreadyPerformed + /// ScaExemption.NotRegulated - notRegulated /// - AlreadyPerformed = 5 - } + public static readonly ScaExemption NotRegulated = new("notRegulated"); - /// - /// Converts to and from the JSON value - /// - public static class ScaExemptionValueConverter - { /// - /// Parses a given value to + /// ScaExemption.AlreadyPerformed - alreadyPerformed /// - /// - /// - public static ScaExemption FromString(string value) - { - if (value.Equals("setByPlatform")) - return ScaExemption.SetByPlatform; - - if (value.Equals("initialLimit")) - return ScaExemption.InitialLimit; - - if (value.Equals("lowerLimit")) - return ScaExemption.LowerLimit; + public static readonly ScaExemption AlreadyPerformed = new("alreadyPerformed"); - if (value.Equals("notRegulated")) - return ScaExemption.NotRegulated; + private ScaExemption(string? value) + { + Value = value; + } - if (value.Equals("alreadyPerformed")) - return ScaExemption.AlreadyPerformed; + /// + /// Converts a string to a implicitly. + /// + public static implicit operator ScaExemption?(string? value) => value == null ? null : new ScaExemption(value); - throw new NotImplementedException($"Could not convert value to type ScaExemption: '{value}'"); - } + /// + /// Converts a instance to a string implicitly. + /// + public static implicit operator string?(ScaExemption? option) => option?.Value; /// - /// Parses a given value to + /// Compares two instances for equality. /// - /// - /// - public static ScaExemption? FromStringOrDefault(string value) - { - if (value.Equals("setByPlatform")) - return ScaExemption.SetByPlatform; + public static bool operator ==(ScaExemption? left, ScaExemption? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - if (value.Equals("initialLimit")) - return ScaExemption.InitialLimit; + /// + /// Compares two instances for inequality. + /// + public static bool operator !=(ScaExemption? left, ScaExemption? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - if (value.Equals("lowerLimit")) - return ScaExemption.LowerLimit; + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is ScaExemption other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (value.Equals("notRegulated")) - return ScaExemption.NotRegulated; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - if (value.Equals("alreadyPerformed")) - return ScaExemption.AlreadyPerformed; + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; - return null; + /// + /// Returns a , or null if the value is not recognized. + /// + public static ScaExemption? FromStringOrDefault(string? value) + { + return value switch { + "setByPlatform" => ScaExemption.SetByPlatform, + "initialLimit" => ScaExemption.InitialLimit, + "lowerLimit" => ScaExemption.LowerLimit, + "notRegulated" => ScaExemption.NotRegulated, + "alreadyPerformed" => ScaExemption.AlreadyPerformed, + _ => null, + }; } /// - /// Converts the to the json value + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - public static string ToJsonValue(ScaExemption value) + public static string? ToJsonValue(ScaExemption? value) { + if (value == null) + return null; + if (value == ScaExemption.SetByPlatform) return "setByPlatform"; @@ -139,84 +145,32 @@ public static string ToJsonValue(ScaExemption value) if (value == ScaExemption.AlreadyPerformed) return "alreadyPerformed"; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } - - /// - /// A Json converter for type - /// - /// - public class ScaExemptionJsonConverter : JsonConverter - { - /// - /// Returns a from the Json object - /// - /// - /// - /// - /// - public override ScaExemption Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); - - ScaExemption? result = rawValue == null - ? null - : ScaExemptionValueConverter.FromStringOrDefault(rawValue); - - if (result != null) - return result.Value; - - throw new JsonException(); - } - - /// - /// Writes the ScaExemption to the json writer - /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaExemption scaExemption, JsonSerializerOptions options) - { - writer.WriteStringValue(ScaExemptionValueConverter.ToJsonValue(scaExemption).ToString()); - } - } - - /// - /// A Json converter for type - /// - public class ScaExemptionNullableJsonConverter : JsonConverter - { - /// - /// Returns a ScaExemption from the Json object - /// - /// - /// - /// - /// - public override ScaExemption? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); - - ScaExemption? result = rawValue == null - ? null - : ScaExemptionValueConverter.FromStringOrDefault(rawValue); - - if (result != null) - return result.Value; - - throw new JsonException(); + return value.Value; } /// - /// Writes the ScaExemption to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaExemption? scaExemption, JsonSerializerOptions options) + public class ScaExemptionJsonConverter : JsonConverter { - writer.WriteStringValue(scaExemption.HasValue ? ScaExemptionValueConverter.ToJsonValue(scaExemption.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override ScaExemption? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : ScaExemption.FromStringOrDefault(rawValue) ?? new ScaExemption(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, ScaExemption value, JsonSerializerOptions options) + { + writer.WriteStringValue(ScaExemption.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/ScaInformation.cs b/Adyen/BalancePlatform/Models/ScaInformation.cs index 52565492c..f4b0fc91e 100644 --- a/Adyen/BalancePlatform/Models/ScaInformation.cs +++ b/Adyen/BalancePlatform/Models/ScaInformation.cs @@ -120,13 +120,11 @@ public override ScaInformation Read(ref Utf8JsonReader utf8JsonReader, Type type { case "status": string? statusRawValue = utf8JsonReader.GetString(); - if (statusRawValue != null) - status = new Option(ScaStatusValueConverter.FromStringOrDefault(statusRawValue)); + status = new Option(ScaStatus.FromStringOrDefault(statusRawValue) ?? (ScaStatus)statusRawValue); break; case "exemption": string? exemptionRawValue = utf8JsonReader.GetString(); - if (exemptionRawValue != null) - exemption = new Option(ScaExemptionValueConverter.FromStringOrDefault(exemptionRawValue)); + exemption = new Option(ScaExemption.FromStringOrDefault(exemptionRawValue) ?? (ScaExemption)exemptionRawValue); break; default: break; @@ -138,7 +136,7 @@ public override ScaInformation Read(ref Utf8JsonReader utf8JsonReader, Type type throw new ArgumentException("Property is required for class ScaInformation.", nameof(status)); var scaInformation = new ScaInformation(); - scaInformation.Status = status.Value!.Value; + scaInformation.Status = status.Value!; if (exemption.IsSet) scaInformation.Exemption = exemption.Value; return scaInformation; @@ -170,12 +168,12 @@ public override void Write(Utf8JsonWriter writer, ScaInformation scaInformation, public void WriteProperties(Utf8JsonWriter writer, ScaInformation scaInformation, JsonSerializerOptions jsonSerializerOptions) { - var statusRawValue = ScaStatusValueConverter.ToJsonValue(scaInformation.Status); + var statusRawValue = ScaStatus.ToJsonValue(scaInformation.Status); writer.WriteString("status", statusRawValue); if (scaInformation._ExemptionOption.IsSet) { - var exemptionRawValue = ScaExemptionValueConverter.ToJsonValue(scaInformation.Exemption!.Value); + var exemptionRawValue = ScaExemption.ToJsonValue(scaInformation.Exemption); writer.WriteString("exemption", exemptionRawValue); } } diff --git a/Adyen/BalancePlatform/Models/ScaStatus.cs b/Adyen/BalancePlatform/Models/ScaStatus.cs index a588db7b7..b2e825499 100644 --- a/Adyen/BalancePlatform/Models/ScaStatus.cs +++ b/Adyen/BalancePlatform/Models/ScaStatus.cs @@ -33,162 +33,126 @@ namespace Adyen.BalancePlatform.Models /// The status of Strong Customer Authentication (SCA). Possible values: * **notPerformed**: the requester was unable to successfully authenticate the request using SCA, or has an SCA exemption. * **pending**: the request is pending SCA authentication. * **performed**: the request is successfully authenticated using SCA. /// /// The status of Strong Customer Authentication (SCA). Possible values: * **notPerformed**: the requester was unable to successfully authenticate the request using SCA, or has an SCA exemption. * **pending**: the request is pending SCA authentication. * **performed**: the request is successfully authenticated using SCA. - public enum ScaStatus + [JsonConverter(typeof(ScaStatus.ScaStatusJsonConverter))] + public class ScaStatus : IEnum { /// - /// Enum NotPerformed for value: notPerformed + /// Returns the value of the ScaStatus. /// - NotPerformed = 1, + public string? Value { get; set; } /// - /// Enum Pending for value: pending + /// ScaStatus.NotPerformed - notPerformed /// - Pending = 2, + public static readonly ScaStatus NotPerformed = new("notPerformed"); /// - /// Enum Performed for value: performed + /// ScaStatus.Pending - pending /// - Performed = 3 - } + public static readonly ScaStatus Pending = new("pending"); - /// - /// Converts to and from the JSON value - /// - public static class ScaStatusValueConverter - { /// - /// Parses a given value to + /// ScaStatus.Performed - performed /// - /// - /// - public static ScaStatus FromString(string value) - { - if (value.Equals("notPerformed")) - return ScaStatus.NotPerformed; - - if (value.Equals("pending")) - return ScaStatus.Pending; + public static readonly ScaStatus Performed = new("performed"); - if (value.Equals("performed")) - return ScaStatus.Performed; - - throw new NotImplementedException($"Could not convert value to type ScaStatus: '{value}'"); + private ScaStatus(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static ScaStatus? FromStringOrDefault(string value) - { - if (value.Equals("notPerformed")) - return ScaStatus.NotPerformed; - - if (value.Equals("pending")) - return ScaStatus.Pending; - - if (value.Equals("performed")) - return ScaStatus.Performed; - - return null; - } + public static implicit operator ScaStatus?(string? value) => value == null ? null : new ScaStatus(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(ScaStatus value) - { - if (value == ScaStatus.NotPerformed) - return "notPerformed"; - - if (value == ScaStatus.Pending) - return "pending"; - - if (value == ScaStatus.Performed) - return "performed"; + public static implicit operator string?(ScaStatus? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(ScaStatus? left, ScaStatus? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class ScaStatusJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override ScaStatus Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(ScaStatus? left, ScaStatus? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - ScaStatus? result = rawValue == null - ? null - : ScaStatusValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is ScaStatus other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the ScaStatus to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaStatus scaStatus, JsonSerializerOptions options) + public static ScaStatus? FromStringOrDefault(string? value) { - writer.WriteStringValue(ScaStatusValueConverter.ToJsonValue(scaStatus).ToString()); + return value switch { + "notPerformed" => ScaStatus.NotPerformed, + "pending" => ScaStatus.Pending, + "performed" => ScaStatus.Performed, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class ScaStatusNullableJsonConverter : JsonConverter - { /// - /// Returns a ScaStatus from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override ScaStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(ScaStatus? value) { - string? rawValue = reader.GetString(); + if (value == null) + return null; + + if (value == ScaStatus.NotPerformed) + return "notPerformed"; - ScaStatus? result = rawValue == null - ? null - : ScaStatusValueConverter.FromStringOrDefault(rawValue); + if (value == ScaStatus.Pending) + return "pending"; - if (result != null) - return result.Value; + if (value == ScaStatus.Performed) + return "performed"; - throw new JsonException(); + return value.Value; } /// - /// Writes the ScaStatus to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, ScaStatus? scaStatus, JsonSerializerOptions options) + public class ScaStatusJsonConverter : JsonConverter { - writer.WriteStringValue(scaStatus.HasValue ? ScaStatusValueConverter.ToJsonValue(scaStatus.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override ScaStatus? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : ScaStatus.FromStringOrDefault(rawValue) ?? new ScaStatus(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, ScaStatus value, JsonSerializerOptions options) + { + writer.WriteStringValue(ScaStatus.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/Scope.cs b/Adyen/BalancePlatform/Models/Scope.cs index 29816c93f..1b94fd00d 100644 --- a/Adyen/BalancePlatform/Models/Scope.cs +++ b/Adyen/BalancePlatform/Models/Scope.cs @@ -33,148 +33,117 @@ namespace Adyen.BalancePlatform.Models /// The scope to which the transfer limit applies. Possible values: * **perTransaction**: you set a maximum amount for each transfer made from the balance account or balance platform. * **perDay**: you set a maximum total amount for all transfers made from the balance account or balance platform in a day. /// /// The scope to which the transfer limit applies. Possible values: * **perTransaction**: you set a maximum amount for each transfer made from the balance account or balance platform. * **perDay**: you set a maximum total amount for all transfers made from the balance account or balance platform in a day. - public enum Scope + [JsonConverter(typeof(Scope.ScopeJsonConverter))] + public class Scope : IEnum { /// - /// Enum PerDay for value: perDay + /// Returns the value of the Scope. /// - PerDay = 1, + public string? Value { get; set; } /// - /// Enum PerTransaction for value: perTransaction + /// Scope.PerDay - perDay /// - PerTransaction = 2 - } + public static readonly Scope PerDay = new("perDay"); - /// - /// Converts to and from the JSON value - /// - public static class ScopeValueConverter - { /// - /// Parses a given value to + /// Scope.PerTransaction - perTransaction /// - /// - /// - public static Scope FromString(string value) - { - if (value.Equals("perDay")) - return Scope.PerDay; + public static readonly Scope PerTransaction = new("perTransaction"); - if (value.Equals("perTransaction")) - return Scope.PerTransaction; - - throw new NotImplementedException($"Could not convert value to type Scope: '{value}'"); + private Scope(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static Scope? FromStringOrDefault(string value) - { - if (value.Equals("perDay")) - return Scope.PerDay; - - if (value.Equals("perTransaction")) - return Scope.PerTransaction; - - return null; - } + public static implicit operator Scope?(string? value) => value == null ? null : new Scope(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(Scope value) - { - if (value == Scope.PerDay) - return "perDay"; - - if (value == Scope.PerTransaction) - return "perTransaction"; + public static implicit operator string?(Scope? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(Scope? left, Scope? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class ScopeJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override Scope Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(Scope? left, Scope? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - Scope? result = rawValue == null - ? null - : ScopeValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is Scope other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the Scope to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, Scope scope, JsonSerializerOptions options) + public static Scope? FromStringOrDefault(string? value) { - writer.WriteStringValue(ScopeValueConverter.ToJsonValue(scope).ToString()); + return value switch { + "perDay" => Scope.PerDay, + "perTransaction" => Scope.PerTransaction, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class ScopeNullableJsonConverter : JsonConverter - { /// - /// Returns a Scope from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override Scope? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(Scope? value) { - string? rawValue = reader.GetString(); + if (value == null) + return null; - Scope? result = rawValue == null - ? null - : ScopeValueConverter.FromStringOrDefault(rawValue); + if (value == Scope.PerDay) + return "perDay"; - if (result != null) - return result.Value; + if (value == Scope.PerTransaction) + return "perTransaction"; - throw new JsonException(); + return value.Value; } /// - /// Writes the Scope to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, Scope? scope, JsonSerializerOptions options) + public class ScopeJsonConverter : JsonConverter { - writer.WriteStringValue(scope.HasValue ? ScopeValueConverter.ToJsonValue(scope.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override Scope? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : Scope.FromStringOrDefault(rawValue) ?? new Scope(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, Scope value, JsonSerializerOptions options) + { + writer.WriteStringValue(Scope.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/SettingType.cs b/Adyen/BalancePlatform/Models/SettingType.cs index c2bb8d827..18b72b40d 100644 --- a/Adyen/BalancePlatform/Models/SettingType.cs +++ b/Adyen/BalancePlatform/Models/SettingType.cs @@ -32,134 +32,108 @@ namespace Adyen.BalancePlatform.Models /// /// Defines SettingType /// - public enum SettingType + [JsonConverter(typeof(SettingType.SettingTypeJsonConverter))] + public class SettingType : IEnum { /// - /// Enum Balance for value: balance + /// Returns the value of the SettingType. /// - Balance = 1 - } + public string? Value { get; set; } - /// - /// Converts to and from the JSON value - /// - public static class SettingTypeValueConverter - { /// - /// Parses a given value to + /// SettingType.Balance - balance /// - /// - /// - public static SettingType FromString(string value) - { - if (value.Equals("balance")) - return SettingType.Balance; + public static readonly SettingType Balance = new("balance"); - throw new NotImplementedException($"Could not convert value to type SettingType: '{value}'"); + private SettingType(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static SettingType? FromStringOrDefault(string value) - { - if (value.Equals("balance")) - return SettingType.Balance; - - return null; - } + public static implicit operator SettingType?(string? value) => value == null ? null : new SettingType(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(SettingType value) - { - if (value == SettingType.Balance) - return "balance"; + public static implicit operator string?(SettingType? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(SettingType? left, SettingType? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class SettingTypeJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override SettingType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(SettingType? left, SettingType? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - SettingType? result = rawValue == null - ? null - : SettingTypeValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is SettingType other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the SettingType to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, SettingType settingType, JsonSerializerOptions options) + public static SettingType? FromStringOrDefault(string? value) { - writer.WriteStringValue(SettingTypeValueConverter.ToJsonValue(settingType).ToString()); + return value switch { + "balance" => SettingType.Balance, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class SettingTypeNullableJsonConverter : JsonConverter - { /// - /// Returns a SettingType from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override SettingType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(SettingType? value) { - string? rawValue = reader.GetString(); - - SettingType? result = rawValue == null - ? null - : SettingTypeValueConverter.FromStringOrDefault(rawValue); + if (value == null) + return null; - if (result != null) - return result.Value; + if (value == SettingType.Balance) + return "balance"; - throw new JsonException(); + return value.Value; } /// - /// Writes the SettingType to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, SettingType? settingType, JsonSerializerOptions options) + public class SettingTypeJsonConverter : JsonConverter { - writer.WriteStringValue(settingType.HasValue ? SettingTypeValueConverter.ToJsonValue(settingType.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override SettingType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : SettingType.FromStringOrDefault(rawValue) ?? new SettingType(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, SettingType value, JsonSerializerOptions options) + { + writer.WriteStringValue(SettingType.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/SourceAccountTypesRestriction.cs b/Adyen/BalancePlatform/Models/SourceAccountTypesRestriction.cs index 129e016a6..9a0d3f428 100644 --- a/Adyen/BalancePlatform/Models/SourceAccountTypesRestriction.cs +++ b/Adyen/BalancePlatform/Models/SourceAccountTypesRestriction.cs @@ -139,7 +139,7 @@ private ValueEnum(string? value) if (value == ValueEnum.BusinessAccount) return "businessAccount"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/StringMatch.cs b/Adyen/BalancePlatform/Models/StringMatch.cs index 0128a5a8c..4c83416a6 100644 --- a/Adyen/BalancePlatform/Models/StringMatch.cs +++ b/Adyen/BalancePlatform/Models/StringMatch.cs @@ -158,7 +158,7 @@ private OperationEnum(string? value) if (value == OperationEnum.StartsWith) return "startsWith"; - return null; + return value.Value; } /// @@ -270,7 +270,7 @@ public override StringMatch Read(ref Utf8JsonReader utf8JsonReader, Type typeToC { case "operation": string? operationRawValue = utf8JsonReader.GetString(); - operation = new Option(StringMatch.OperationEnum.FromStringOrDefault(operationRawValue)); + operation = new Option(StringMatch.OperationEnum.FromStringOrDefault(operationRawValue) ?? (StringMatch.OperationEnum)operationRawValue); break; case "value": value = new Option(utf8JsonReader.GetString()!); diff --git a/Adyen/BalancePlatform/Models/SweepConfigurationV2.cs b/Adyen/BalancePlatform/Models/SweepConfigurationV2.cs index 54e4ec382..ec97767d4 100644 --- a/Adyen/BalancePlatform/Models/SweepConfigurationV2.cs +++ b/Adyen/BalancePlatform/Models/SweepConfigurationV2.cs @@ -150,7 +150,7 @@ private CategoryEnum(string? value) if (value == CategoryEnum.PlatformPayment) return "platformPayment"; - return null; + return value.Value; } /// @@ -322,7 +322,7 @@ private PrioritiesEnum(string? value) if (value == PrioritiesEnum.Wire) return "wire"; - return null; + return value.Value; } /// @@ -571,7 +571,7 @@ private ReasonEnum(string? value) if (value == ReasonEnum.Unknown) return "unknown"; - return null; + return value.Value; } /// @@ -709,7 +709,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Inactive) return "inactive"; - return null; + return value.Value; } /// @@ -846,7 +846,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Push) return "push"; - return null; + return value.Value; } /// @@ -1121,7 +1121,7 @@ public override SweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "category": string? categoryRawValue = utf8JsonReader.GetString(); - category = new Option(SweepConfigurationV2.CategoryEnum.FromStringOrDefault(categoryRawValue)); + category = new Option(SweepConfigurationV2.CategoryEnum.FromStringOrDefault(categoryRawValue) ?? (SweepConfigurationV2.CategoryEnum)categoryRawValue); break; case "description": description = new Option(utf8JsonReader.GetString()!); @@ -1131,7 +1131,7 @@ public override SweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "reason": string? reasonRawValue = utf8JsonReader.GetString(); - reason = new Option(SweepConfigurationV2.ReasonEnum.FromStringOrDefault(reasonRawValue)); + reason = new Option(SweepConfigurationV2.ReasonEnum.FromStringOrDefault(reasonRawValue) ?? (SweepConfigurationV2.ReasonEnum)reasonRawValue); break; case "reasonDetail": reasonDetail = new Option(utf8JsonReader.GetString()!); @@ -1144,7 +1144,7 @@ public override SweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(SweepConfigurationV2.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(SweepConfigurationV2.StatusEnum.FromStringOrDefault(statusRawValue) ?? (SweepConfigurationV2.StatusEnum)statusRawValue); break; case "sweepAmount": sweepAmount = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1157,7 +1157,7 @@ public override SweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(SweepConfigurationV2.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(SweepConfigurationV2.TypeEnum.FromStringOrDefault(typeRawValue) ?? (SweepConfigurationV2.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/SweepSchedule.cs b/Adyen/BalancePlatform/Models/SweepSchedule.cs index a2f111c0e..ff9e250df 100644 --- a/Adyen/BalancePlatform/Models/SweepSchedule.cs +++ b/Adyen/BalancePlatform/Models/SweepSchedule.cs @@ -167,7 +167,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Cron) return "cron"; - return null; + return value.Value; } /// @@ -272,7 +272,7 @@ public override SweepSchedule Read(ref Utf8JsonReader utf8JsonReader, Type typeT { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(SweepSchedule.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(SweepSchedule.TypeEnum.FromStringOrDefault(typeRawValue) ?? (SweepSchedule.TypeEnum)typeRawValue); break; case "cronExpression": cronExpression = new Option(utf8JsonReader.GetString()!); @@ -287,7 +287,7 @@ public override SweepSchedule Read(ref Utf8JsonReader utf8JsonReader, Type typeT throw new ArgumentException("Property is required for class SweepSchedule.", nameof(type)); var sweepSchedule = new SweepSchedule(); - sweepSchedule.Type = type.Value!.Value; + sweepSchedule.Type = type.Value!; if (cronExpression.IsSet) sweepSchedule.CronExpression = cronExpression.Value; return sweepSchedule; diff --git a/Adyen/BalancePlatform/Models/Target.cs b/Adyen/BalancePlatform/Models/Target.cs index b18124362..2d9a71f2e 100644 --- a/Adyen/BalancePlatform/Models/Target.cs +++ b/Adyen/BalancePlatform/Models/Target.cs @@ -149,7 +149,7 @@ private TypeEnum(string? value) if (value == TypeEnum.BalancePlatform) return "balancePlatform"; - return null; + return value.Value; } /// @@ -250,7 +250,7 @@ public override Target Read(ref Utf8JsonReader utf8JsonReader, Type typeToConver break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(Target.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(Target.TypeEnum.FromStringOrDefault(typeRawValue) ?? (Target.TypeEnum)typeRawValue); break; default: break; @@ -266,7 +266,7 @@ public override Target Read(ref Utf8JsonReader utf8JsonReader, Type typeToConver var target = new Target(); target.Id = id.Value!; - target.Type = type.Value!.Value; + target.Type = type.Value!; return target; } diff --git a/Adyen/BalancePlatform/Models/TargetUpdate.cs b/Adyen/BalancePlatform/Models/TargetUpdate.cs index 9a1050327..fafe17c28 100644 --- a/Adyen/BalancePlatform/Models/TargetUpdate.cs +++ b/Adyen/BalancePlatform/Models/TargetUpdate.cs @@ -149,7 +149,7 @@ private TypeEnum(string? value) if (value == TypeEnum.BalancePlatform) return "balancePlatform"; - return null; + return value.Value; } /// @@ -264,7 +264,7 @@ public override TargetUpdate Read(ref Utf8JsonReader utf8JsonReader, Type typeTo break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(TargetUpdate.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(TargetUpdate.TypeEnum.FromStringOrDefault(typeRawValue) ?? (TargetUpdate.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/TransactionRule.cs b/Adyen/BalancePlatform/Models/TransactionRule.cs index 52513dffd..e7f5ed3de 100644 --- a/Adyen/BalancePlatform/Models/TransactionRule.cs +++ b/Adyen/BalancePlatform/Models/TransactionRule.cs @@ -158,7 +158,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Velocity) return "velocity"; - return null; + return value.Value; } /// @@ -306,7 +306,7 @@ private OutcomeTypeEnum(string? value) if (value == OutcomeTypeEnum.TimedBlock) return "timedBlock"; - return null; + return value.Value; } /// @@ -470,7 +470,7 @@ private PurposeEnum(string? value) if (value == PurposeEnum.System) return "system"; - return null; + return value.Value; } /// @@ -625,7 +625,7 @@ private RequestTypeEnum(string? value) if (value == RequestTypeEnum.Tokenization) return "tokenization"; - return null; + return value.Value; } /// @@ -762,7 +762,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Inactive) return "inactive"; - return null; + return value.Value; } /// @@ -1003,7 +1003,7 @@ public override TransactionRule Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(TransactionRule.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(TransactionRule.TypeEnum.FromStringOrDefault(typeRawValue) ?? (TransactionRule.TypeEnum)typeRawValue); break; case "aggregationLevel": aggregationLevel = new Option(utf8JsonReader.GetString()!); @@ -1016,15 +1016,15 @@ public override TransactionRule Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "outcomeType": string? outcomeTypeRawValue = utf8JsonReader.GetString(); - outcomeType = new Option(TransactionRule.OutcomeTypeEnum.FromStringOrDefault(outcomeTypeRawValue)); + outcomeType = new Option(TransactionRule.OutcomeTypeEnum.FromStringOrDefault(outcomeTypeRawValue) ?? (TransactionRule.OutcomeTypeEnum)outcomeTypeRawValue); break; case "purpose": string? purposeRawValue = utf8JsonReader.GetString(); - purpose = new Option(TransactionRule.PurposeEnum.FromStringOrDefault(purposeRawValue)); + purpose = new Option(TransactionRule.PurposeEnum.FromStringOrDefault(purposeRawValue) ?? (TransactionRule.PurposeEnum)purposeRawValue); break; case "requestType": string? requestTypeRawValue = utf8JsonReader.GetString(); - requestType = new Option(TransactionRule.RequestTypeEnum.FromStringOrDefault(requestTypeRawValue)); + requestType = new Option(TransactionRule.RequestTypeEnum.FromStringOrDefault(requestTypeRawValue) ?? (TransactionRule.RequestTypeEnum)requestTypeRawValue); break; case "score": score = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); @@ -1034,7 +1034,7 @@ public override TransactionRule Read(ref Utf8JsonReader utf8JsonReader, Type typ break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(TransactionRule.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(TransactionRule.StatusEnum.FromStringOrDefault(statusRawValue) ?? (TransactionRule.StatusEnum)statusRawValue); break; default: break; @@ -1066,7 +1066,7 @@ public override TransactionRule Read(ref Utf8JsonReader utf8JsonReader, Type typ transactionRule.Interval = interval.Value!; transactionRule.Reference = reference.Value!; transactionRule.RuleRestrictions = ruleRestrictions.Value!; - transactionRule.Type = type.Value!.Value; + transactionRule.Type = type.Value!; if (aggregationLevel.IsSet) transactionRule.AggregationLevel = aggregationLevel.Value; if (endDate.IsSet) diff --git a/Adyen/BalancePlatform/Models/TransactionRuleInfo.cs b/Adyen/BalancePlatform/Models/TransactionRuleInfo.cs index f70e72c00..de84c4b63 100644 --- a/Adyen/BalancePlatform/Models/TransactionRuleInfo.cs +++ b/Adyen/BalancePlatform/Models/TransactionRuleInfo.cs @@ -158,7 +158,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Velocity) return "velocity"; - return null; + return value.Value; } /// @@ -306,7 +306,7 @@ private OutcomeTypeEnum(string? value) if (value == OutcomeTypeEnum.TimedBlock) return "timedBlock"; - return null; + return value.Value; } /// @@ -470,7 +470,7 @@ private PurposeEnum(string? value) if (value == PurposeEnum.System) return "system"; - return null; + return value.Value; } /// @@ -625,7 +625,7 @@ private RequestTypeEnum(string? value) if (value == RequestTypeEnum.Tokenization) return "tokenization"; - return null; + return value.Value; } /// @@ -762,7 +762,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Inactive) return "inactive"; - return null; + return value.Value; } /// @@ -987,7 +987,7 @@ public override TransactionRuleInfo Read(ref Utf8JsonReader utf8JsonReader, Type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(TransactionRuleInfo.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(TransactionRuleInfo.TypeEnum.FromStringOrDefault(typeRawValue) ?? (TransactionRuleInfo.TypeEnum)typeRawValue); break; case "aggregationLevel": aggregationLevel = new Option(utf8JsonReader.GetString()!); @@ -997,15 +997,15 @@ public override TransactionRuleInfo Read(ref Utf8JsonReader utf8JsonReader, Type break; case "outcomeType": string? outcomeTypeRawValue = utf8JsonReader.GetString(); - outcomeType = new Option(TransactionRuleInfo.OutcomeTypeEnum.FromStringOrDefault(outcomeTypeRawValue)); + outcomeType = new Option(TransactionRuleInfo.OutcomeTypeEnum.FromStringOrDefault(outcomeTypeRawValue) ?? (TransactionRuleInfo.OutcomeTypeEnum)outcomeTypeRawValue); break; case "purpose": string? purposeRawValue = utf8JsonReader.GetString(); - purpose = new Option(TransactionRuleInfo.PurposeEnum.FromStringOrDefault(purposeRawValue)); + purpose = new Option(TransactionRuleInfo.PurposeEnum.FromStringOrDefault(purposeRawValue) ?? (TransactionRuleInfo.PurposeEnum)purposeRawValue); break; case "requestType": string? requestTypeRawValue = utf8JsonReader.GetString(); - requestType = new Option(TransactionRuleInfo.RequestTypeEnum.FromStringOrDefault(requestTypeRawValue)); + requestType = new Option(TransactionRuleInfo.RequestTypeEnum.FromStringOrDefault(requestTypeRawValue) ?? (TransactionRuleInfo.RequestTypeEnum)requestTypeRawValue); break; case "score": score = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); @@ -1015,7 +1015,7 @@ public override TransactionRuleInfo Read(ref Utf8JsonReader utf8JsonReader, Type break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(TransactionRuleInfo.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(TransactionRuleInfo.StatusEnum.FromStringOrDefault(statusRawValue) ?? (TransactionRuleInfo.StatusEnum)statusRawValue); break; default: break; @@ -1047,7 +1047,7 @@ public override TransactionRuleInfo Read(ref Utf8JsonReader utf8JsonReader, Type transactionRuleInfo.Interval = interval.Value!; transactionRuleInfo.Reference = reference.Value!; transactionRuleInfo.RuleRestrictions = ruleRestrictions.Value!; - transactionRuleInfo.Type = type.Value!.Value; + transactionRuleInfo.Type = type.Value!; if (aggregationLevel.IsSet) transactionRuleInfo.AggregationLevel = aggregationLevel.Value; if (endDate.IsSet) diff --git a/Adyen/BalancePlatform/Models/TransactionRuleInterval.cs b/Adyen/BalancePlatform/Models/TransactionRuleInterval.cs index 9a1b1da68..e1af5413f 100644 --- a/Adyen/BalancePlatform/Models/TransactionRuleInterval.cs +++ b/Adyen/BalancePlatform/Models/TransactionRuleInterval.cs @@ -185,7 +185,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Weekly) return "weekly"; - return null; + return value.Value; } /// @@ -360,7 +360,7 @@ private DayOfWeekEnum(string? value) if (value == DayOfWeekEnum.Wednesday) return "wednesday"; - return null; + return value.Value; } /// @@ -521,14 +521,14 @@ public override TransactionRuleInterval Read(ref Utf8JsonReader utf8JsonReader, { case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(TransactionRuleInterval.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(TransactionRuleInterval.TypeEnum.FromStringOrDefault(typeRawValue) ?? (TransactionRuleInterval.TypeEnum)typeRawValue); break; case "dayOfMonth": dayOfMonth = new Option(utf8JsonReader.TokenType == JsonTokenType.Null ? (int?)null : utf8JsonReader.GetInt32()); break; case "dayOfWeek": string? dayOfWeekRawValue = utf8JsonReader.GetString(); - dayOfWeek = new Option(TransactionRuleInterval.DayOfWeekEnum.FromStringOrDefault(dayOfWeekRawValue)); + dayOfWeek = new Option(TransactionRuleInterval.DayOfWeekEnum.FromStringOrDefault(dayOfWeekRawValue) ?? (TransactionRuleInterval.DayOfWeekEnum)dayOfWeekRawValue); break; case "duration": duration = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -549,7 +549,7 @@ public override TransactionRuleInterval Read(ref Utf8JsonReader utf8JsonReader, throw new ArgumentException("Property is required for class TransactionRuleInterval.", nameof(type)); var transactionRuleInterval = new TransactionRuleInterval(); - transactionRuleInterval.Type = type.Value!.Value; + transactionRuleInterval.Type = type.Value!; if (dayOfMonth.IsSet) transactionRuleInterval.DayOfMonth = dayOfMonth.Value; if (dayOfWeek.IsSet) diff --git a/Adyen/BalancePlatform/Models/TransferLimit.cs b/Adyen/BalancePlatform/Models/TransferLimit.cs index 161d375b8..713394547 100644 --- a/Adyen/BalancePlatform/Models/TransferLimit.cs +++ b/Adyen/BalancePlatform/Models/TransferLimit.cs @@ -210,21 +210,18 @@ public override TransferLimit Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "limitStatus": string? limitStatusRawValue = utf8JsonReader.GetString(); - if (limitStatusRawValue != null) - limitStatus = new Option(LimitStatusValueConverter.FromStringOrDefault(limitStatusRawValue)); + limitStatus = new Option(LimitStatus.FromStringOrDefault(limitStatusRawValue) ?? (LimitStatus)limitStatusRawValue); break; case "scope": string? scopeRawValue = utf8JsonReader.GetString(); - if (scopeRawValue != null) - scope = new Option(ScopeValueConverter.FromStringOrDefault(scopeRawValue)); + scope = new Option(Scope.FromStringOrDefault(scopeRawValue) ?? (Scope)scopeRawValue); break; case "startsAt": startsAt = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)); break; case "transferType": string? transferTypeRawValue = utf8JsonReader.GetString(); - if (transferTypeRawValue != null) - transferType = new Option(TransferTypeValueConverter.FromStringOrDefault(transferTypeRawValue)); + transferType = new Option(TransferType.FromStringOrDefault(transferTypeRawValue) ?? (TransferType)transferTypeRawValue); break; case "endsAt": endsAt = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)); @@ -262,10 +259,10 @@ public override TransferLimit Read(ref Utf8JsonReader utf8JsonReader, Type typeT var transferLimit = new TransferLimit(); transferLimit.Amount = amount.Value!; transferLimit.Id = id.Value!; - transferLimit.LimitStatus = limitStatus.Value!.Value; - transferLimit.Scope = scope.Value!.Value; + transferLimit.LimitStatus = limitStatus.Value!; + transferLimit.Scope = scope.Value!; transferLimit.StartsAt = startsAt.Value!.Value; - transferLimit.TransferType = transferType.Value!.Value; + transferLimit.TransferType = transferType.Value!; if (endsAt.IsSet) transferLimit.EndsAt = endsAt.Value; if (reference.IsSet) @@ -306,15 +303,15 @@ public void WriteProperties(Utf8JsonWriter writer, TransferLimit transferLimit, if (transferLimit.Id != null) writer.WriteString("id", transferLimit.Id); - var limitStatusRawValue = LimitStatusValueConverter.ToJsonValue(transferLimit.LimitStatus); + var limitStatusRawValue = LimitStatus.ToJsonValue(transferLimit.LimitStatus); writer.WriteString("limitStatus", limitStatusRawValue); - var scopeRawValue = ScopeValueConverter.ToJsonValue(transferLimit.Scope); + var scopeRawValue = Scope.ToJsonValue(transferLimit.Scope); writer.WriteString("scope", scopeRawValue); writer.WriteString("startsAt", transferLimit.StartsAt.ToString(StartsAtFormat)); - var transferTypeRawValue = TransferTypeValueConverter.ToJsonValue(transferLimit.TransferType); + var transferTypeRawValue = TransferType.ToJsonValue(transferLimit.TransferType); writer.WriteString("transferType", transferTypeRawValue); if (transferLimit._EndsAtOption.IsSet) diff --git a/Adyen/BalancePlatform/Models/TransferRoute.cs b/Adyen/BalancePlatform/Models/TransferRoute.cs index 111120cc4..50face3c0 100644 --- a/Adyen/BalancePlatform/Models/TransferRoute.cs +++ b/Adyen/BalancePlatform/Models/TransferRoute.cs @@ -212,7 +212,7 @@ private CategoryEnum(string? value) if (value == CategoryEnum.Upgrade) return "upgrade"; - return null; + return value.Value; } /// @@ -385,7 +385,7 @@ private PriorityEnum(string? value) if (value == PriorityEnum.Wire) return "wire"; - return null; + return value.Value; } /// @@ -531,7 +531,7 @@ public override TransferRoute Read(ref Utf8JsonReader utf8JsonReader, Type typeT { case "category": string? categoryRawValue = utf8JsonReader.GetString(); - category = new Option(TransferRoute.CategoryEnum.FromStringOrDefault(categoryRawValue)); + category = new Option(TransferRoute.CategoryEnum.FromStringOrDefault(categoryRawValue) ?? (TransferRoute.CategoryEnum)categoryRawValue); break; case "country": country = new Option(utf8JsonReader.GetString()!); @@ -541,7 +541,7 @@ public override TransferRoute Read(ref Utf8JsonReader utf8JsonReader, Type typeT break; case "priority": string? priorityRawValue = utf8JsonReader.GetString(); - priority = new Option(TransferRoute.PriorityEnum.FromStringOrDefault(priorityRawValue)); + priority = new Option(TransferRoute.PriorityEnum.FromStringOrDefault(priorityRawValue) ?? (TransferRoute.PriorityEnum)priorityRawValue); break; case "requirements": requirements = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/BalancePlatform/Models/TransferRouteRequest.cs b/Adyen/BalancePlatform/Models/TransferRouteRequest.cs index 62e08fb75..7e73fa1b8 100644 --- a/Adyen/BalancePlatform/Models/TransferRouteRequest.cs +++ b/Adyen/BalancePlatform/Models/TransferRouteRequest.cs @@ -131,7 +131,7 @@ private CategoryEnum(string? value) if (value == CategoryEnum.Bank) return "bank"; - return null; + return value.Value; } /// @@ -296,7 +296,7 @@ private PrioritiesEnum(string? value) if (value == PrioritiesEnum.Wire) return "wire"; - return null; + return value.Value; } /// @@ -462,7 +462,7 @@ public override TransferRouteRequest Read(ref Utf8JsonReader utf8JsonReader, Typ break; case "category": string? categoryRawValue = utf8JsonReader.GetString(); - category = new Option(TransferRouteRequest.CategoryEnum.FromStringOrDefault(categoryRawValue)); + category = new Option(TransferRouteRequest.CategoryEnum.FromStringOrDefault(categoryRawValue) ?? (TransferRouteRequest.CategoryEnum)categoryRawValue); break; case "currency": currency = new Option(utf8JsonReader.GetString()!); @@ -496,7 +496,7 @@ public override TransferRouteRequest Read(ref Utf8JsonReader utf8JsonReader, Typ var transferRouteRequest = new TransferRouteRequest(); transferRouteRequest.BalancePlatform = balancePlatform.Value!; - transferRouteRequest.Category = category.Value!.Value; + transferRouteRequest.Category = category.Value!; transferRouteRequest.Currency = currency.Value!; if (balanceAccountId.IsSet) transferRouteRequest.BalanceAccountId = balanceAccountId.Value; diff --git a/Adyen/BalancePlatform/Models/TransferRouteRequirementsInner.cs b/Adyen/BalancePlatform/Models/TransferRouteRequirementsInner.cs index c1d0212ed..f6258b222 100644 --- a/Adyen/BalancePlatform/Models/TransferRouteRequirementsInner.cs +++ b/Adyen/BalancePlatform/Models/TransferRouteRequirementsInner.cs @@ -316,34 +316,34 @@ public override TransferRouteRequirementsInner Read(ref Utf8JsonReader utf8JsonR } } - if (additionalBankIdentificationRequirement?.Type != null) + if (additionalBankIdentificationRequirement?.Type != null && AdditionalBankIdentificationRequirement.TypeEnum.FromStringOrDefault((string?)additionalBankIdentificationRequirement.Type) != null) return new TransferRouteRequirementsInner(additionalBankIdentificationRequirement); - if (addressRequirement?.Type != null) + if (addressRequirement?.Type != null && AddressRequirement.TypeEnum.FromStringOrDefault((string?)addressRequirement.Type) != null) return new TransferRouteRequirementsInner(addressRequirement); - if (amountMinMaxRequirement?.Type != null) + if (amountMinMaxRequirement?.Type != null && AmountMinMaxRequirement.TypeEnum.FromStringOrDefault((string?)amountMinMaxRequirement.Type) != null) return new TransferRouteRequirementsInner(amountMinMaxRequirement); - if (amountNonZeroDecimalsRequirement?.Type != null) + if (amountNonZeroDecimalsRequirement?.Type != null && AmountNonZeroDecimalsRequirement.TypeEnum.FromStringOrDefault((string?)amountNonZeroDecimalsRequirement.Type) != null) return new TransferRouteRequirementsInner(amountNonZeroDecimalsRequirement); - if (bankAccountIdentificationTypeRequirement?.Type != null) + if (bankAccountIdentificationTypeRequirement?.Type != null && BankAccountIdentificationTypeRequirement.TypeEnum.FromStringOrDefault((string?)bankAccountIdentificationTypeRequirement.Type) != null) return new TransferRouteRequirementsInner(bankAccountIdentificationTypeRequirement); - if (ibanAccountIdentificationRequirement?.Type != null) + if (ibanAccountIdentificationRequirement?.Type != null && IbanAccountIdentificationRequirement.TypeEnum.FromStringOrDefault((string?)ibanAccountIdentificationRequirement.Type) != null) return new TransferRouteRequirementsInner(ibanAccountIdentificationRequirement); - if (paymentInstrumentRequirement?.Type != null) + if (paymentInstrumentRequirement?.Type != null && PaymentInstrumentRequirement.TypeEnum.FromStringOrDefault((string?)paymentInstrumentRequirement.Type) != null) return new TransferRouteRequirementsInner(paymentInstrumentRequirement); - if (uSInstantPayoutAddressRequirement?.Type != null) + if (uSInstantPayoutAddressRequirement?.Type != null && USInstantPayoutAddressRequirement.TypeEnum.FromStringOrDefault((string?)uSInstantPayoutAddressRequirement.Type) != null) return new TransferRouteRequirementsInner(uSInstantPayoutAddressRequirement); - if (uSInternationalAchAddressRequirement?.Type != null) + if (uSInternationalAchAddressRequirement?.Type != null && USInternationalAchAddressRequirement.TypeEnum.FromStringOrDefault((string?)uSInternationalAchAddressRequirement.Type) != null) return new TransferRouteRequirementsInner(uSInternationalAchAddressRequirement); - if (uSInternationalAchPriorityRequirement?.Type != null) + if (uSInternationalAchPriorityRequirement?.Type != null && USInternationalAchPriorityRequirement.TypeEnum.FromStringOrDefault((string?)uSInternationalAchPriorityRequirement.Type) != null) return new TransferRouteRequirementsInner(uSInternationalAchPriorityRequirement); throw new JsonException(); diff --git a/Adyen/BalancePlatform/Models/TransferType.cs b/Adyen/BalancePlatform/Models/TransferType.cs index f61f4e7fd..73d18d2ce 100644 --- a/Adyen/BalancePlatform/Models/TransferType.cs +++ b/Adyen/BalancePlatform/Models/TransferType.cs @@ -33,148 +33,117 @@ namespace Adyen.BalancePlatform.Models /// The type of transfer to which the limit applies. Possible values: * **instant**: the limit applies to transfers with an **instant** priority. * **all**: the limit applies to all transfers, regardless of priority. /// /// The type of transfer to which the limit applies. Possible values: * **instant**: the limit applies to transfers with an **instant** priority. * **all**: the limit applies to all transfers, regardless of priority. - public enum TransferType + [JsonConverter(typeof(TransferType.TransferTypeJsonConverter))] + public class TransferType : IEnum { /// - /// Enum Instant for value: instant + /// Returns the value of the TransferType. /// - Instant = 1, + public string? Value { get; set; } /// - /// Enum All for value: all + /// TransferType.Instant - instant /// - All = 2 - } + public static readonly TransferType Instant = new("instant"); - /// - /// Converts to and from the JSON value - /// - public static class TransferTypeValueConverter - { /// - /// Parses a given value to + /// TransferType.All - all /// - /// - /// - public static TransferType FromString(string value) - { - if (value.Equals("instant")) - return TransferType.Instant; + public static readonly TransferType All = new("all"); - if (value.Equals("all")) - return TransferType.All; - - throw new NotImplementedException($"Could not convert value to type TransferType: '{value}'"); + private TransferType(string? value) + { + Value = value; } /// - /// Parses a given value to + /// Converts a string to a implicitly. /// - /// - /// - public static TransferType? FromStringOrDefault(string value) - { - if (value.Equals("instant")) - return TransferType.Instant; - - if (value.Equals("all")) - return TransferType.All; - - return null; - } + public static implicit operator TransferType?(string? value) => value == null ? null : new TransferType(value); /// - /// Converts the to the json value + /// Converts a instance to a string implicitly. /// - /// - /// - /// - public static string ToJsonValue(TransferType value) - { - if (value == TransferType.Instant) - return "instant"; - - if (value == TransferType.All) - return "all"; + public static implicit operator string?(TransferType? option) => option?.Value; - throw new NotImplementedException($"Value could not be handled: '{value}'"); - } - } + /// + /// Compares two instances for equality. + /// + public static bool operator ==(TransferType? left, TransferType? right) => string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - /// - /// A Json converter for type - /// - /// - public class TransferTypeJsonConverter : JsonConverter - { /// - /// Returns a from the Json object + /// Compares two instances for inequality. /// - /// - /// - /// - /// - public override TransferType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - { - string? rawValue = reader.GetString(); + public static bool operator !=(TransferType? left, TransferType? right) => !string.Equals(left?.Value, right?.Value, StringComparison.OrdinalIgnoreCase); - TransferType? result = rawValue == null - ? null - : TransferTypeValueConverter.FromStringOrDefault(rawValue); + /// + /// Returns true if the given object is equal to this instance. + /// + public override bool Equals(object? obj) => obj is TransferType other && string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); - if (result != null) - return result.Value; + /// + /// Returns a hash code for this instance. + /// + public override int GetHashCode() => Value?.GetHashCode() ?? 0; - throw new JsonException(); - } + /// + /// Returns the string value of the instance. + /// + public override string ToString() => Value ?? string.Empty; /// - /// Writes the TransferType to the json writer + /// Returns a , or null if the value is not recognized. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, TransferType transferType, JsonSerializerOptions options) + public static TransferType? FromStringOrDefault(string? value) { - writer.WriteStringValue(TransferTypeValueConverter.ToJsonValue(transferType).ToString()); + return value switch { + "instant" => TransferType.Instant, + "all" => TransferType.All, + _ => null, + }; } - } - /// - /// A Json converter for type - /// - public class TransferTypeNullableJsonConverter : JsonConverter - { /// - /// Returns a TransferType from the Json object + /// Converts the to the json value. + /// Returns the raw string value, preserving unknown values for round-trip safety. /// - /// - /// - /// - /// - public override TransferType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public static string? ToJsonValue(TransferType? value) { - string? rawValue = reader.GetString(); + if (value == null) + return null; - TransferType? result = rawValue == null - ? null - : TransferTypeValueConverter.FromStringOrDefault(rawValue); + if (value == TransferType.Instant) + return "instant"; - if (result != null) - return result.Value; + if (value == TransferType.All) + return "all"; - throw new JsonException(); + return value.Value; } /// - /// Writes the TransferType to the json writer + /// JsonConverter for . + /// Preserves unknown values instead of throwing an exception. /// - /// - /// - /// - public override void Write(Utf8JsonWriter writer, TransferType? transferType, JsonSerializerOptions options) + public class TransferTypeJsonConverter : JsonConverter { - writer.WriteStringValue(transferType.HasValue ? TransferTypeValueConverter.ToJsonValue(transferType.Value).ToString() : "null"); + /// + /// Deserializes a from JSON. + /// Unknown values are preserved as-is rather than throwing an exception. + /// + public override TransferType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + string? rawValue = reader.GetString(); + return rawValue == null ? null : TransferType.FromStringOrDefault(rawValue) ?? new TransferType(rawValue); + } + + /// + /// Serializes a to JSON. + /// + public override void Write(Utf8JsonWriter writer, TransferType value, JsonSerializerOptions options) + { + writer.WriteStringValue(TransferType.ToJsonValue(value)); + } } } } diff --git a/Adyen/BalancePlatform/Models/UKLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/UKLocalAccountIdentification.cs index 07217ab45..94f5793f3 100644 --- a/Adyen/BalancePlatform/Models/UKLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/UKLocalAccountIdentification.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UkLocal) return "ukLocal"; - return null; + return value.Value; } /// @@ -244,7 +244,7 @@ public override UKLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(UKLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(UKLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (UKLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -264,7 +264,7 @@ public override UKLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea var uKLocalAccountIdentification = new UKLocalAccountIdentification(); uKLocalAccountIdentification.AccountNumber = accountNumber.Value!; uKLocalAccountIdentification.SortCode = sortCode.Value!; - uKLocalAccountIdentification.Type = type.Value!.Value; + uKLocalAccountIdentification.Type = type.Value!; return uKLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/USInstantPayoutAddressRequirement.cs b/Adyen/BalancePlatform/Models/USInstantPayoutAddressRequirement.cs index e23827ecc..19cceef25 100644 --- a/Adyen/BalancePlatform/Models/USInstantPayoutAddressRequirement.cs +++ b/Adyen/BalancePlatform/Models/USInstantPayoutAddressRequirement.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UsInstantPayoutAddressRequirement) return "usInstantPayoutAddressRequirement"; - return null; + return value.Value; } /// @@ -239,7 +239,7 @@ public override USInstantPayoutAddressRequirement Read(ref Utf8JsonReader utf8Js break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(USInstantPayoutAddressRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(USInstantPayoutAddressRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (USInstantPayoutAddressRequirement.TypeEnum)typeRawValue); break; default: break; @@ -253,7 +253,7 @@ public override USInstantPayoutAddressRequirement Read(ref Utf8JsonReader utf8Js var uSInstantPayoutAddressRequirement = new USInstantPayoutAddressRequirement(); if (description.IsSet) uSInstantPayoutAddressRequirement.Description = description.Value; - uSInstantPayoutAddressRequirement.Type = type.Value!.Value; + uSInstantPayoutAddressRequirement.Type = type.Value!; return uSInstantPayoutAddressRequirement; } diff --git a/Adyen/BalancePlatform/Models/USInternationalAchAddressRequirement.cs b/Adyen/BalancePlatform/Models/USInternationalAchAddressRequirement.cs index c846af9b8..0557971af 100644 --- a/Adyen/BalancePlatform/Models/USInternationalAchAddressRequirement.cs +++ b/Adyen/BalancePlatform/Models/USInternationalAchAddressRequirement.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UsInternationalAchAddressRequirement) return "usInternationalAchAddressRequirement"; - return null; + return value.Value; } /// @@ -239,7 +239,7 @@ public override USInternationalAchAddressRequirement Read(ref Utf8JsonReader utf break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(USInternationalAchAddressRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(USInternationalAchAddressRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (USInternationalAchAddressRequirement.TypeEnum)typeRawValue); break; default: break; @@ -253,7 +253,7 @@ public override USInternationalAchAddressRequirement Read(ref Utf8JsonReader utf var uSInternationalAchAddressRequirement = new USInternationalAchAddressRequirement(); if (description.IsSet) uSInternationalAchAddressRequirement.Description = description.Value; - uSInternationalAchAddressRequirement.Type = type.Value!.Value; + uSInternationalAchAddressRequirement.Type = type.Value!; return uSInternationalAchAddressRequirement; } diff --git a/Adyen/BalancePlatform/Models/USInternationalAchPriorityRequirement.cs b/Adyen/BalancePlatform/Models/USInternationalAchPriorityRequirement.cs index 788079ead..b66d0d43f 100644 --- a/Adyen/BalancePlatform/Models/USInternationalAchPriorityRequirement.cs +++ b/Adyen/BalancePlatform/Models/USInternationalAchPriorityRequirement.cs @@ -131,7 +131,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UsInternationalAchPriorityRequirement) return "usInternationalAchPriorityRequirement"; - return null; + return value.Value; } /// @@ -239,7 +239,7 @@ public override USInternationalAchPriorityRequirement Read(ref Utf8JsonReader ut break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(USInternationalAchPriorityRequirement.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(USInternationalAchPriorityRequirement.TypeEnum.FromStringOrDefault(typeRawValue) ?? (USInternationalAchPriorityRequirement.TypeEnum)typeRawValue); break; default: break; @@ -253,7 +253,7 @@ public override USInternationalAchPriorityRequirement Read(ref Utf8JsonReader ut var uSInternationalAchPriorityRequirement = new USInternationalAchPriorityRequirement(); if (description.IsSet) uSInternationalAchPriorityRequirement.Description = description.Value; - uSInternationalAchPriorityRequirement.Type = type.Value!.Value; + uSInternationalAchPriorityRequirement.Type = type.Value!; return uSInternationalAchPriorityRequirement; } diff --git a/Adyen/BalancePlatform/Models/USLocalAccountIdentification.cs b/Adyen/BalancePlatform/Models/USLocalAccountIdentification.cs index c98375e33..6ddcb5bf2 100644 --- a/Adyen/BalancePlatform/Models/USLocalAccountIdentification.cs +++ b/Adyen/BalancePlatform/Models/USLocalAccountIdentification.cs @@ -141,7 +141,7 @@ private AccountTypeEnum(string? value) if (value == AccountTypeEnum.Savings) return "savings"; - return null; + return value.Value; } /// @@ -269,7 +269,7 @@ private TypeEnum(string? value) if (value == TypeEnum.UsLocal) return "usLocal"; - return null; + return value.Value; } /// @@ -384,11 +384,11 @@ public override USLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea break; case "accountType": string? accountTypeRawValue = utf8JsonReader.GetString(); - accountType = new Option(USLocalAccountIdentification.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue)); + accountType = new Option(USLocalAccountIdentification.AccountTypeEnum.FromStringOrDefault(accountTypeRawValue) ?? (USLocalAccountIdentification.AccountTypeEnum)accountTypeRawValue); break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(USLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(USLocalAccountIdentification.TypeEnum.FromStringOrDefault(typeRawValue) ?? (USLocalAccountIdentification.TypeEnum)typeRawValue); break; default: break; @@ -410,7 +410,7 @@ public override USLocalAccountIdentification Read(ref Utf8JsonReader utf8JsonRea uSLocalAccountIdentification.RoutingNumber = routingNumber.Value!; if (accountType.IsSet) uSLocalAccountIdentification.AccountType = accountType.Value; - uSLocalAccountIdentification.Type = type.Value!.Value; + uSLocalAccountIdentification.Type = type.Value!; return uSLocalAccountIdentification; } diff --git a/Adyen/BalancePlatform/Models/UpdateNetworkTokenRequest.cs b/Adyen/BalancePlatform/Models/UpdateNetworkTokenRequest.cs index 1fb2b7fad..4e9027043 100644 --- a/Adyen/BalancePlatform/Models/UpdateNetworkTokenRequest.cs +++ b/Adyen/BalancePlatform/Models/UpdateNetworkTokenRequest.cs @@ -149,7 +149,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Closed) return "closed"; - return null; + return value.Value; } /// @@ -245,7 +245,7 @@ public override UpdateNetworkTokenRequest Read(ref Utf8JsonReader utf8JsonReader { case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(UpdateNetworkTokenRequest.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(UpdateNetworkTokenRequest.StatusEnum.FromStringOrDefault(statusRawValue) ?? (UpdateNetworkTokenRequest.StatusEnum)statusRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/UpdatePaymentInstrument.cs b/Adyen/BalancePlatform/Models/UpdatePaymentInstrument.cs index c34010362..b3d802287 100644 --- a/Adyen/BalancePlatform/Models/UpdatePaymentInstrument.cs +++ b/Adyen/BalancePlatform/Models/UpdatePaymentInstrument.cs @@ -140,7 +140,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Card) return "card"; - return null; + return value.Value; } /// @@ -288,7 +288,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Suspended) return "suspended"; - return null; + return value.Value; } /// @@ -488,7 +488,7 @@ private StatusReasonEnum(string? value) if (value == StatusReasonEnum.TransactionRule) return "transactionRule"; - return null; + return value.Value; } /// @@ -768,7 +768,7 @@ public override UpdatePaymentInstrument Read(ref Utf8JsonReader utf8JsonReader, break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(UpdatePaymentInstrument.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(UpdatePaymentInstrument.TypeEnum.FromStringOrDefault(typeRawValue) ?? (UpdatePaymentInstrument.TypeEnum)typeRawValue); break; case "additionalBankAccountIdentifications": additionalBankAccountIdentifications = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); @@ -796,14 +796,14 @@ public override UpdatePaymentInstrument Read(ref Utf8JsonReader utf8JsonReader, break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(UpdatePaymentInstrument.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(UpdatePaymentInstrument.StatusEnum.FromStringOrDefault(statusRawValue) ?? (UpdatePaymentInstrument.StatusEnum)statusRawValue); break; case "statusComment": statusComment = new Option(utf8JsonReader.GetString()!); break; case "statusReason": string? statusReasonRawValue = utf8JsonReader.GetString(); - statusReason = new Option(UpdatePaymentInstrument.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue)); + statusReason = new Option(UpdatePaymentInstrument.StatusReasonEnum.FromStringOrDefault(statusReasonRawValue) ?? (UpdatePaymentInstrument.StatusReasonEnum)statusReasonRawValue); break; default: break; @@ -827,7 +827,7 @@ public override UpdatePaymentInstrument Read(ref Utf8JsonReader utf8JsonReader, updatePaymentInstrument.BalanceAccountId = balanceAccountId.Value!; updatePaymentInstrument.Id = id.Value!; updatePaymentInstrument.IssuingCountryCode = issuingCountryCode.Value!; - updatePaymentInstrument.Type = type.Value!.Value; + updatePaymentInstrument.Type = type.Value!; if (additionalBankAccountIdentifications.IsSet) updatePaymentInstrument.AdditionalBankAccountIdentifications = additionalBankAccountIdentifications.Value; if (bankAccount.IsSet) diff --git a/Adyen/BalancePlatform/Models/UpdateSweepConfigurationV2.cs b/Adyen/BalancePlatform/Models/UpdateSweepConfigurationV2.cs index 54b060c4b..01d6d07b5 100644 --- a/Adyen/BalancePlatform/Models/UpdateSweepConfigurationV2.cs +++ b/Adyen/BalancePlatform/Models/UpdateSweepConfigurationV2.cs @@ -150,7 +150,7 @@ private CategoryEnum(string? value) if (value == CategoryEnum.PlatformPayment) return "platformPayment"; - return null; + return value.Value; } /// @@ -322,7 +322,7 @@ private PrioritiesEnum(string? value) if (value == PrioritiesEnum.Wire) return "wire"; - return null; + return value.Value; } /// @@ -571,7 +571,7 @@ private ReasonEnum(string? value) if (value == ReasonEnum.Unknown) return "unknown"; - return null; + return value.Value; } /// @@ -709,7 +709,7 @@ private StatusEnum(string? value) if (value == StatusEnum.Inactive) return "inactive"; - return null; + return value.Value; } /// @@ -846,7 +846,7 @@ private TypeEnum(string? value) if (value == TypeEnum.Push) return "push"; - return null; + return value.Value; } /// @@ -1137,7 +1137,7 @@ public override UpdateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade { case "category": string? categoryRawValue = utf8JsonReader.GetString(); - category = new Option(UpdateSweepConfigurationV2.CategoryEnum.FromStringOrDefault(categoryRawValue)); + category = new Option(UpdateSweepConfigurationV2.CategoryEnum.FromStringOrDefault(categoryRawValue) ?? (UpdateSweepConfigurationV2.CategoryEnum)categoryRawValue); break; case "counterparty": counterparty = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1156,7 +1156,7 @@ public override UpdateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade break; case "reason": string? reasonRawValue = utf8JsonReader.GetString(); - reason = new Option(UpdateSweepConfigurationV2.ReasonEnum.FromStringOrDefault(reasonRawValue)); + reason = new Option(UpdateSweepConfigurationV2.ReasonEnum.FromStringOrDefault(reasonRawValue) ?? (UpdateSweepConfigurationV2.ReasonEnum)reasonRawValue); break; case "reasonDetail": reasonDetail = new Option(utf8JsonReader.GetString()!); @@ -1172,7 +1172,7 @@ public override UpdateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade break; case "status": string? statusRawValue = utf8JsonReader.GetString(); - status = new Option(UpdateSweepConfigurationV2.StatusEnum.FromStringOrDefault(statusRawValue)); + status = new Option(UpdateSweepConfigurationV2.StatusEnum.FromStringOrDefault(statusRawValue) ?? (UpdateSweepConfigurationV2.StatusEnum)statusRawValue); break; case "sweepAmount": sweepAmount = new Option(JsonSerializer.Deserialize(ref utf8JsonReader, jsonSerializerOptions)!); @@ -1185,7 +1185,7 @@ public override UpdateSweepConfigurationV2 Read(ref Utf8JsonReader utf8JsonReade break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(UpdateSweepConfigurationV2.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(UpdateSweepConfigurationV2.TypeEnum.FromStringOrDefault(typeRawValue) ?? (UpdateSweepConfigurationV2.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/VerificationDeadline.cs b/Adyen/BalancePlatform/Models/VerificationDeadline.cs index 73e0bbd57..98b6ec2d0 100644 --- a/Adyen/BalancePlatform/Models/VerificationDeadline.cs +++ b/Adyen/BalancePlatform/Models/VerificationDeadline.cs @@ -616,7 +616,7 @@ private CapabilitiesEnum(string? value) if (value == CapabilitiesEnum.WithdrawFromAtmInRestrictedCountriesConsumer) return "withdrawFromAtmInRestrictedCountriesConsumer"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/VerificationError.cs b/Adyen/BalancePlatform/Models/VerificationError.cs index 02e23af6b..f90ad106c 100644 --- a/Adyen/BalancePlatform/Models/VerificationError.cs +++ b/Adyen/BalancePlatform/Models/VerificationError.cs @@ -616,7 +616,7 @@ private CapabilitiesEnum(string? value) if (value == CapabilitiesEnum.WithdrawFromAtmInRestrictedCountriesConsumer) return "withdrawFromAtmInRestrictedCountriesConsumer"; - return null; + return value.Value; } /// @@ -757,7 +757,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PendingStatus) return "pendingStatus"; - return null; + return value.Value; } /// @@ -948,7 +948,7 @@ public override VerificationError Read(ref Utf8JsonReader utf8JsonReader, Type t break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(VerificationError.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(VerificationError.TypeEnum.FromStringOrDefault(typeRawValue) ?? (VerificationError.TypeEnum)typeRawValue); break; default: break; diff --git a/Adyen/BalancePlatform/Models/VerificationErrorRecursive.cs b/Adyen/BalancePlatform/Models/VerificationErrorRecursive.cs index 73a22616d..3d560b971 100644 --- a/Adyen/BalancePlatform/Models/VerificationErrorRecursive.cs +++ b/Adyen/BalancePlatform/Models/VerificationErrorRecursive.cs @@ -616,7 +616,7 @@ private CapabilitiesEnum(string? value) if (value == CapabilitiesEnum.WithdrawFromAtmInRestrictedCountriesConsumer) return "withdrawFromAtmInRestrictedCountriesConsumer"; - return null; + return value.Value; } /// @@ -757,7 +757,7 @@ private TypeEnum(string? value) if (value == TypeEnum.PendingStatus) return "pendingStatus"; - return null; + return value.Value; } /// @@ -926,7 +926,7 @@ public override VerificationErrorRecursive Read(ref Utf8JsonReader utf8JsonReade break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - type = new Option(VerificationErrorRecursive.TypeEnum.FromStringOrDefault(typeRawValue)); + type = new Option(VerificationErrorRecursive.TypeEnum.FromStringOrDefault(typeRawValue) ?? (VerificationErrorRecursive.TypeEnum)typeRawValue); break; case "remediatingActions": remediatingActions = new Option?>(JsonSerializer.Deserialize>(ref utf8JsonReader, jsonSerializerOptions)!); diff --git a/Adyen/BalancePlatform/Models/WalletProviderDeviceType.cs b/Adyen/BalancePlatform/Models/WalletProviderDeviceType.cs index 5db356658..61705ef2e 100644 --- a/Adyen/BalancePlatform/Models/WalletProviderDeviceType.cs +++ b/Adyen/BalancePlatform/Models/WalletProviderDeviceType.cs @@ -193,7 +193,7 @@ private ValueEnum(string? value) if (value == ValueEnum.WEARABLE) return "WEARABLE"; - return null; + return value.Value; } /// diff --git a/Adyen/BalancePlatform/Models/WebhookSetting.cs b/Adyen/BalancePlatform/Models/WebhookSetting.cs index 2709377fa..93002096d 100644 --- a/Adyen/BalancePlatform/Models/WebhookSetting.cs +++ b/Adyen/BalancePlatform/Models/WebhookSetting.cs @@ -39,7 +39,7 @@ public partial class WebhookSetting /// public WebhookSetting() { - Type = (SettingType)Enum.Parse(typeof(SettingType), this.GetType().Name); + Type = (SettingType)this.GetType().Name; OnCreated(); } @@ -157,8 +157,7 @@ public override WebhookSetting Read(ref Utf8JsonReader utf8JsonReader, Type type break; case "type": string? typeRawValue = utf8JsonReader.GetString(); - if (typeRawValue != null) - type = new Option(SettingTypeValueConverter.FromStringOrDefault(typeRawValue)); + type = new Option(SettingType.FromStringOrDefault(typeRawValue) ?? (SettingType)typeRawValue); break; default: break; @@ -232,7 +231,7 @@ public void WriteProperties(Utf8JsonWriter writer, WebhookSetting webhookSetting writer.WritePropertyName("target"); JsonSerializer.Serialize(writer, webhookSetting.Target, jsonSerializerOptions); if (webhookSetting.Type != null) - writer.WriteString("type", SettingTypeValueConverter.ToJsonValue(webhookSetting.Type)); + writer.WriteString("type", SettingType.ToJsonValue(webhookSetting.Type)); } } }