/// <summary> /// <see ref="UnknownDiscountApplication" /> Accepts deserialized json data. /// <see ref="UnknownDiscountApplication" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for DiscountApplication</param> public UnknownDiscountApplication(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "allocationMethod": Data.Add( key, CastUtils.GetEnumValue <DiscountApplicationAllocationMethod>(dataJSON[key]) ); break; case "targetSelection": Data.Add( key, CastUtils.GetEnumValue <DiscountApplicationTargetSelection>(dataJSON[key]) ); break; case "targetType": Data.Add( key, CastUtils.GetEnumValue <DiscountApplicationTargetType>(dataJSON[key]) ); break; case "value": Data.Add( key, UnknownPricingValue.Create((Dictionary <string, object>)dataJSON[key]) ); break; } } }
/// <summary> /// <see ref="MoneyV2" /> Accepts deserialized json data. /// <see ref="MoneyV2" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for MoneyV2</param> public MoneyV2(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "amount": Data.Add( key, (decimal)dataJSON[key] ); break; case "currencyCode": Data.Add( key, CastUtils.GetEnumValue <CurrencyCode>(dataJSON[key]) ); break; } } }
/// <summary> /// <see ref="PaymentSettings" /> Accepts deserialized json data. /// <see ref="PaymentSettings" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for PaymentSettings</param> public PaymentSettings(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "acceptedCardBrands": Data.Add( key, CastUtils.CastList <List <CardBrand> >((IList)dataJSON[key]) ); break; case "cardVaultUrl": Data.Add( key, (string)dataJSON[key] ); break; case "countryCode": Data.Add( key, CastUtils.GetEnumValue <CountryCode>(dataJSON[key]) ); break; case "currencyCode": Data.Add( key, CastUtils.GetEnumValue <CurrencyCode>(dataJSON[key]) ); break; case "enabledPresentmentCurrencies": Data.Add( key, CastUtils.CastList <List <CurrencyCode> >((IList)dataJSON[key]) ); break; case "shopifyPaymentsAccountId": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "supportedDigitalWallets": Data.Add( key, CastUtils.CastList <List <DigitalWallet> >((IList)dataJSON[key]) ); break; } } }
/// <summary> /// <see ref="MailingAddress" /> Accepts deserialized json data. /// <see ref="MailingAddress" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for MailingAddress</param> public MailingAddress(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "address1": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "address2": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "city": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "company": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "country": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "countryCode": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "countryCodeV2": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, CastUtils.GetEnumValue <CountryCode>(dataJSON[key]) ); } break; case "firstName": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "formatted": Data.Add( key, CastUtils.CastList <List <string> >((IList)dataJSON[key]) ); break; case "formattedArea": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "id": Data.Add( key, (string)dataJSON[key] ); break; case "lastName": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "latitude": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (double)dataJSON[key] ); } break; case "longitude": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (double)dataJSON[key] ); } break; case "name": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "phone": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "province": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "provinceCode": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "zip": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; } } }
/// <summary> /// <see ref="Shop" /> Accepts deserialized json data. /// <see ref="Shop" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for Shop</param> public Shop(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "articles": Data.Add( key, new ArticleConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "blogs": Data.Add( key, new BlogConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "collectionByHandle": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new Collection((Dictionary <string, object>)dataJSON[key]) ); } break; case "collections": Data.Add( key, new CollectionConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "currencyCode": Data.Add( key, CastUtils.GetEnumValue <CurrencyCode>(dataJSON[key]) ); break; case "description": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "moneyFormat": Data.Add( key, (string)dataJSON[key] ); break; case "name": Data.Add( key, (string)dataJSON[key] ); break; case "paymentSettings": Data.Add( key, new PaymentSettings((Dictionary <string, object>)dataJSON[key]) ); break; case "primaryDomain": Data.Add( key, new Domain((Dictionary <string, object>)dataJSON[key]) ); break; case "privacyPolicy": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new ShopPolicy((Dictionary <string, object>)dataJSON[key]) ); } break; case "productByHandle": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new Product((Dictionary <string, object>)dataJSON[key]) ); } break; case "productTags": Data.Add( key, new StringConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "productTypes": Data.Add( key, new StringConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "products": Data.Add( key, new ProductConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "refundPolicy": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new ShopPolicy((Dictionary <string, object>)dataJSON[key]) ); } break; case "shipsToCountries": Data.Add( key, CastUtils.CastList <List <CountryCode> >((IList)dataJSON[key]) ); break; case "shopifyPaymentsAccountId": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "termsOfService": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new ShopPolicy((Dictionary <string, object>)dataJSON[key]) ); } break; } } }
/// <summary> /// <see ref="Metafield" /> Accepts deserialized json data. /// <see ref="Metafield" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for Metafield</param> public Metafield(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "description": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "id": Data.Add( key, (string)dataJSON[key] ); break; case "key": Data.Add( key, (string)dataJSON[key] ); break; case "namespace": Data.Add( key, (string)dataJSON[key] ); break; case "parentResource": Data.Add( key, UnknownMetafieldParentResource.Create((Dictionary <string, object>)dataJSON[key]) ); break; case "value": Data.Add( key, (string)dataJSON[key] ); break; case "valueType": Data.Add( key, CastUtils.GetEnumValue <MetafieldValueType>(dataJSON[key]) ); break; } } }
/// <summary> /// <see ref="CustomerUserError" /> Accepts deserialized json data. /// <see ref="CustomerUserError" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for CustomerUserError</param> public CustomerUserError(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "code": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, CastUtils.GetEnumValue <CustomerErrorCode>(dataJSON[key]) ); } break; case "field": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, CastUtils.CastList <List <string> >((IList)dataJSON[key]) ); } break; case "message": Data.Add( key, (string)dataJSON[key] ); break; } } }
public void TestGetEnumValue() { Assert.AreEqual(TestEnum.MIKKO, CastUtils.GetEnumValue <TestEnum>("MIKKO")); Assert.AreEqual(TestEnum.UNKNOWN, CastUtils.GetEnumValue <TestEnum>("IAMNOTHERE")); }
/// <summary> /// <see ref="Checkout" /> Accepts deserialized json data. /// <see ref="Checkout" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for Checkout</param> public Checkout(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "appliedGiftCards": Data.Add( key, CastUtils.CastList <List <AppliedGiftCard> >((IList)dataJSON[key]) ); break; case "availableShippingRates": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new AvailableShippingRates((Dictionary <string, object>)dataJSON[key]) ); } break; case "completedAt": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, Convert.ToDateTime(dataJSON[key]) ); } break; case "createdAt": Data.Add( key, Convert.ToDateTime(dataJSON[key]) ); break; case "currencyCode": Data.Add( key, CastUtils.GetEnumValue <CurrencyCode>(dataJSON[key]) ); break; case "customAttributes": Data.Add( key, CastUtils.CastList <List <Attribute> >((IList)dataJSON[key]) ); break; case "customer": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new Customer((Dictionary <string, object>)dataJSON[key]) ); } break; case "discountApplications": Data.Add( key, new DiscountApplicationConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "email": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "id": Data.Add( key, (string)dataJSON[key] ); break; case "lineItems": Data.Add( key, new CheckoutLineItemConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "lineItemsSubtotalPrice": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "note": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "order": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new Order((Dictionary <string, object>)dataJSON[key]) ); } break; case "orderStatusUrl": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "paymentDue": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "paymentDueV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "ready": Data.Add( key, (bool)dataJSON[key] ); break; case "requiresShipping": Data.Add( key, (bool)dataJSON[key] ); break; case "shippingAddress": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new MailingAddress((Dictionary <string, object>)dataJSON[key]) ); } break; case "shippingDiscountAllocations": Data.Add( key, CastUtils.CastList <List <DiscountAllocation> >((IList)dataJSON[key]) ); break; case "shippingLine": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new ShippingRate((Dictionary <string, object>)dataJSON[key]) ); } break; case "subtotalPrice": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "subtotalPriceV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "taxExempt": Data.Add( key, (bool)dataJSON[key] ); break; case "taxesIncluded": Data.Add( key, (bool)dataJSON[key] ); break; case "totalPrice": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "totalPriceV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "totalTax": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "totalTaxV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "updatedAt": Data.Add( key, Convert.ToDateTime(dataJSON[key]) ); break; case "webUrl": Data.Add( key, (string)dataJSON[key] ); break; } } }
/// <summary> /// <see ref="Transaction" /> Accepts deserialized json data. /// <see ref="Transaction" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for Transaction</param> public Transaction(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "amount": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "kind": Data.Add( key, CastUtils.GetEnumValue <TransactionKind>(dataJSON[key]) ); break; case "status": Data.Add( key, CastUtils.GetEnumValue <TransactionStatus>(dataJSON[key]) ); break; case "statusV2": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, CastUtils.GetEnumValue <TransactionStatus>(dataJSON[key]) ); } break; case "test": Data.Add( key, (bool)dataJSON[key] ); break; } } }
/// <summary> /// <see ref="Order" /> Accepts deserialized json data. /// <see ref="Order" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for Order</param> public Order(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "currencyCode": Data.Add( key, CastUtils.GetEnumValue <CurrencyCode>(dataJSON[key]) ); break; case "customerLocale": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "customerUrl": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "discountApplications": Data.Add( key, new DiscountApplicationConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "email": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "id": Data.Add( key, (string)dataJSON[key] ); break; case "lineItems": Data.Add( key, new OrderLineItemConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "name": Data.Add( key, (string)dataJSON[key] ); break; case "orderNumber": Data.Add( key, (long)dataJSON[key] ); break; case "phone": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "processedAt": Data.Add( key, Convert.ToDateTime(dataJSON[key]) ); break; case "shippingAddress": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new MailingAddress((Dictionary <string, object>)dataJSON[key]) ); } break; case "shippingDiscountAllocations": Data.Add( key, CastUtils.CastList <List <DiscountAllocation> >((IList)dataJSON[key]) ); break; case "statusUrl": Data.Add( key, (string)dataJSON[key] ); break; case "subtotalPrice": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); } break; case "subtotalPriceV2": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); } break; case "successfulFulfillments": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, CastUtils.CastList <List <Fulfillment> >((IList)dataJSON[key]) ); } break; case "totalPrice": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "totalPriceV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "totalRefunded": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "totalRefundedV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "totalShippingPrice": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "totalShippingPriceV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "totalTax": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); } break; case "totalTaxV2": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); } break; } } }
/// <summary> /// <see ref="ProductVariant" /> Accepts deserialized json data. /// <see ref="ProductVariant" /> Will further parse passed in data. /// </summary> /// <param name="dataJSON">Deserialized JSON data for ProductVariant</param> public ProductVariant(Dictionary <string, object> dataJSON) { DataJSON = dataJSON; Data = new Dictionary <string, object>(); foreach (string key in dataJSON.Keys) { string fieldName = key; Regex regexAlias = new Regex("^(.+)___.+$"); Match match = regexAlias.Match(key); if (match.Success) { fieldName = match.Groups[1].Value; } switch (fieldName) { case "available": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (bool)dataJSON[key] ); } break; case "availableForSale": Data.Add( key, (bool)dataJSON[key] ); break; case "compareAtPrice": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); } break; case "compareAtPriceV2": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); } break; case "id": Data.Add( key, (string)dataJSON[key] ); break; case "image": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new Image((Dictionary <string, object>)dataJSON[key]) ); } break; case "metafield": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, new Metafield((Dictionary <string, object>)dataJSON[key]) ); } break; case "metafields": Data.Add( key, new MetafieldConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "presentmentPrices": Data.Add( key, new ProductVariantPricePairConnection((Dictionary <string, object>)dataJSON[key]) ); break; case "price": Data.Add( key, Convert.ToDecimal(dataJSON[key]) ); break; case "priceV2": Data.Add( key, new MoneyV2((Dictionary <string, object>)dataJSON[key]) ); break; case "product": Data.Add( key, new Product((Dictionary <string, object>)dataJSON[key]) ); break; case "selectedOptions": Data.Add( key, CastUtils.CastList <List <SelectedOption> >((IList)dataJSON[key]) ); break; case "sku": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (string)dataJSON[key] ); } break; case "title": Data.Add( key, (string)dataJSON[key] ); break; case "weight": if (dataJSON[key] == null) { Data.Add(key, null); } else { Data.Add( key, (double)dataJSON[key] ); } break; case "weightUnit": Data.Add( key, CastUtils.GetEnumValue <WeightUnit>(dataJSON[key]) ); break; } } }