コード例 #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            object retVal = null;
            var    obj    = JObject.Load(reader);

            if (typeof(Store).IsAssignableFrom(objectType))
            {
                retVal = AbstractTypeFactory <Store> .TryCreateInstance();
            }
            else if (typeof(StoreSearchCriteria).IsAssignableFrom(objectType))
            {
                retVal = AbstractTypeFactory <StoreSearchCriteria> .TryCreateInstance();
            }
            else if (objectType == typeof(PaymentMethod))
            {
                var paymentGatewayCode = obj["code"].Value <string>();
                retVal = _paymentMethodsService.GetAllPaymentMethods().FirstOrDefault(x => x.Code.EqualsInvariant(paymentGatewayCode));
            }
            else if (objectType == typeof(ShippingMethod))
            {
                var shippingGatewayCode = obj["code"].Value <string>();
                retVal = _shippingMethodsService.GetAllShippingMethods().FirstOrDefault(x => x.Code.EqualsInvariant(shippingGatewayCode));
            }
            else if (objectType == typeof(TaxProvider))
            {
                var taxProviderCode = obj["code"].Value <string>();
                retVal = _taxService.GetAllTaxProviders().FirstOrDefault(x => x.Code.EqualsInvariant(taxProviderCode));
            }
            serializer.Populate(obj.CreateReader(), retVal);
            return(retVal);
        }
コード例 #2
0
 private void PopulateStore(Store store, StoreEntity dbStore)
 {
     //Return all registered methods with store settings
     store.PaymentMethods = _paymentMethodRegistrar.GetAllPaymentMethods();
     foreach (var paymentMethod in store.PaymentMethods)
     {
         var dbStoredPaymentMethod = dbStore.PaymentMethods.FirstOrDefault(x => x.Code.EqualsInvariant(paymentMethod.Code));
         if (dbStoredPaymentMethod != null)
         {
             dbStoredPaymentMethod.ToModel(paymentMethod);
         }
     }
     store.ShippingMethods = _shippingMethodRegistrar.GetAllShippingMethods();
     foreach (var shippingMethod in store.ShippingMethods)
     {
         var dbStoredShippingMethod = dbStore.ShippingMethods.FirstOrDefault(x => x.Code.EqualsInvariant(shippingMethod.Code));
         if (dbStoredShippingMethod != null)
         {
             dbStoredShippingMethod.ToModel(shippingMethod);
         }
     }
     store.TaxProviders = _taxProviderRegistrar.GetAllTaxProviders();
     foreach (var taxProvider in store.TaxProviders)
     {
         var dbStoredTaxProvider = dbStore.TaxProviders.FirstOrDefault(x => x.Code.EqualsInvariant(taxProvider.Code));
         if (dbStoredTaxProvider != null)
         {
             dbStoredTaxProvider.ToModel(taxProvider);
         }
     }
 }