/// <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;
                }
            }
        }
Пример #3
0
        /// <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;
                }
            }
        }
Пример #4
0
        /// <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;
                }
            }
        }
Пример #6
0
        /// <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;
                }
            }
        }
Пример #7
0
        /// <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;
                }
            }
        }
Пример #8
0
 public void TestGetEnumValue()
 {
     Assert.AreEqual(TestEnum.MIKKO, CastUtils.GetEnumValue <TestEnum>("MIKKO"));
     Assert.AreEqual(TestEnum.UNKNOWN, CastUtils.GetEnumValue <TestEnum>("IAMNOTHERE"));
 }
Пример #9
0
        /// <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;
                }
            }
        }
Пример #10
0
        /// <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;
                }
            }
        }
Пример #11
0
        /// <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;
                }
            }
        }
Пример #12
0
        /// <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;
                }
            }
        }