Example #1
0
 internal Subscription(Guid?id, string publisherId, string offerId, string name, SubscriptionStatusEnum?saasSubscriptionStatus, AadIdentifier beneficiary, AadIdentifier purchaser, string planId, int?quantity, SubscriptionTerm term, bool?isTest, bool?isFreeTrial, IReadOnlyList <AllowedCustomerOperationsEnum> allowedCustomerOperations, Guid?sessionId, Guid?fulfillmentId, string storeFront, SessionModeEnum?sessionMode, SandboxTypeEnum?sandboxType)
 {
     Id                        = id;
     PublisherId               = publisherId;
     OfferId                   = offerId;
     Name                      = name;
     SaasSubscriptionStatus    = saasSubscriptionStatus;
     Beneficiary               = beneficiary;
     Purchaser                 = purchaser;
     PlanId                    = planId;
     Quantity                  = quantity;
     Term                      = term;
     IsTest                    = isTest;
     IsFreeTrial               = isFreeTrial;
     AllowedCustomerOperations = allowedCustomerOperations;
     SessionId                 = sessionId;
     FulfillmentId             = fulfillmentId;
     StoreFront                = storeFront;
     SessionMode               = sessionMode;
     SandboxType               = sandboxType;
 }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the Subscription class.
 /// </summary>
 /// <param name="saasSubscriptionStatus">Indicates the status of the
 /// operation. Possible values include: 'NotStarted',
 /// 'PendingFulfillmentStart', 'Subscribed', 'Suspended',
 /// 'Unsubscribed'</param>
 /// <param name="isTest">Indicating whether the current subscription is
 /// a test asset.</param>
 /// <param name="isFreeTrial">true - the customer subscription is
 /// currently in free trial, false - the customer subscription is not
 /// currently in free trial.(optional field - default false)</param>
 /// <param name="sessionMode">Dry Run indicates all transactions run as
 /// Test-Mode in the commerce stack. Possible values include: 'None',
 /// 'DryRun'</param>
 /// <param name="sandboxType">Possible Values are None, Csp (Csp
 /// sandbox purchase). Possible values include: 'None', 'Csp'</param>
 public Subscription(System.Guid?id = default(System.Guid?), string publisherId = default(string), string offerId = default(string), string name = default(string), SubscriptionStatusEnum?saasSubscriptionStatus = default(SubscriptionStatusEnum?), AadIdentifier beneficiary = default(AadIdentifier), AadIdentifier purchaser = default(AadIdentifier), string planId = default(string), int?quantity = default(int?), SubscriptionTerm term = default(SubscriptionTerm), bool?isTest = default(bool?), bool?isFreeTrial = default(bool?), IList <AllowedCustomerOperationsEnum?> allowedCustomerOperations = default(IList <AllowedCustomerOperationsEnum?>), System.Guid?sessionId = default(System.Guid?), System.Guid?fulfillmentId = default(System.Guid?), string storeFront = default(string), SessionModeEnum?sessionMode = default(SessionModeEnum?), SandboxTypeEnum?sandboxType = default(SandboxTypeEnum?))
 {
     Id                        = id;
     PublisherId               = publisherId;
     OfferId                   = offerId;
     Name                      = name;
     SaasSubscriptionStatus    = saasSubscriptionStatus;
     Beneficiary               = beneficiary;
     Purchaser                 = purchaser;
     PlanId                    = planId;
     Quantity                  = quantity;
     Term                      = term;
     IsTest                    = isTest;
     IsFreeTrial               = isFreeTrial;
     AllowedCustomerOperations = allowedCustomerOperations;
     SessionId                 = sessionId;
     FulfillmentId             = fulfillmentId;
     StoreFront                = storeFront;
     SessionMode               = sessionMode;
     SandboxType               = sandboxType;
     CustomInit();
 }
        internal static Subscription DeserializeSubscription(JsonElement element)
        {
            Optional <Guid>   id          = default;
            Optional <string> publisherId = default;
            Optional <string> offerId     = default;
            Optional <string> name        = default;
            Optional <SubscriptionStatusEnum> saasSubscriptionStatus = default;
            Optional <AadIdentifier>          beneficiary            = default;
            Optional <AadIdentifier>          purchaser = default;
            Optional <string>           planId          = default;
            Optional <int>              quantity        = default;
            Optional <SubscriptionTerm> term            = default;
            Optional <bool>             autoRenew       = default;
            Optional <bool>             isTest          = default;
            Optional <bool>             isFreeTrial     = default;
            Optional <IReadOnlyList <AllowedCustomerOperationsEnum> > allowedCustomerOperations = default;
            Optional <Guid>            sessionId     = default;
            Optional <Guid>            fulfillmentId = default;
            Optional <string>          storeFront    = default;
            Optional <SandboxTypeEnum> sandboxType   = default;
            Optional <DateTimeOffset>  created       = default;
            Optional <DateTimeOffset>  lastModified  = default;
            Optional <SessionModeEnum> sessionMode   = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("id"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    id = property.Value.GetGuid();
                    continue;
                }
                if (property.NameEquals("publisherId"))
                {
                    publisherId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("offerId"))
                {
                    offerId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("saasSubscriptionStatus"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    saasSubscriptionStatus = property.Value.GetString().ToSubscriptionStatusEnum();
                    continue;
                }
                if (property.NameEquals("beneficiary"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    beneficiary = AadIdentifier.DeserializeAadIdentifier(property.Value);
                    continue;
                }
                if (property.NameEquals("purchaser"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    purchaser = AadIdentifier.DeserializeAadIdentifier(property.Value);
                    continue;
                }
                if (property.NameEquals("planId"))
                {
                    planId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("quantity"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    quantity = property.Value.GetInt32();
                    continue;
                }
                if (property.NameEquals("term"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    term = SubscriptionTerm.DeserializeSubscriptionTerm(property.Value);
                    continue;
                }
                if (property.NameEquals("autoRenew"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    autoRenew = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("isTest"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    isTest = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("isFreeTrial"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    isFreeTrial = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("allowedCustomerOperations"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <AllowedCustomerOperationsEnum> array = new List <AllowedCustomerOperationsEnum>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(item.GetString().ToAllowedCustomerOperationsEnum());
                    }
                    allowedCustomerOperations = array;
                    continue;
                }
                if (property.NameEquals("sessionId"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    sessionId = property.Value.GetGuid();
                    continue;
                }
                if (property.NameEquals("fulfillmentId"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    fulfillmentId = property.Value.GetGuid();
                    continue;
                }
                if (property.NameEquals("storeFront"))
                {
                    storeFront = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("sandboxType"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    sandboxType = property.Value.GetString().ToSandboxTypeEnum();
                    continue;
                }
                if (property.NameEquals("created"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    created = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("lastModified"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    lastModified = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("sessionMode"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    sessionMode = property.Value.GetString().ToSessionModeEnum();
                    continue;
                }
            }
            return(new Subscription(Optional.ToNullable(id), publisherId.Value, offerId.Value, name.Value, Optional.ToNullable(saasSubscriptionStatus), beneficiary.Value, purchaser.Value, planId.Value, Optional.ToNullable(quantity), term.Value, Optional.ToNullable(autoRenew), Optional.ToNullable(isTest), Optional.ToNullable(isFreeTrial), Optional.ToList(allowedCustomerOperations), Optional.ToNullable(sessionId), Optional.ToNullable(fulfillmentId), storeFront.Value, Optional.ToNullable(sandboxType), Optional.ToNullable(created), Optional.ToNullable(lastModified), Optional.ToNullable(sessionMode)));
        }