public void Can_Serialize_ProviderSettings_To_CamelCased_Json()
        {
            //// Arrange
            var extendedData = new ExtendedDataCollection();
            var settings = TestHelper.GetBraintreeProviderSettings();
            Assert.NotNull(settings);
            Assert.AreEqual(EnvironmentType.Sandbox, settings.Environment);

            //// Act
            extendedData.SaveProviderSettings(settings);

            //// Assert
            Assert.IsTrue(extendedData.ContainsKey(Constants.ExtendedDataKeys.BraintreeProviderSettings));

        }
 /// <summary>
 /// The tax included in product price.
 /// </summary>
 /// <param name="extendedData">
 /// The extended data.
 /// </param>
 /// <returns>
 /// A value indicating whether or not tax is included in the product price.
 /// </returns>
 public static bool TaxIncludedInProductPrice(this ExtendedDataCollection extendedData)
 {
     return(extendedData.ContainsKey(Constants.ExtendedDataKeys.TaxIncludedInProductPrice) &&
            extendedData.GetValue(Constants.ExtendedDataKeys.TaxIncludedInProductPrice).AsBool());
 }
 /// <summary>
 /// The get allows validation value.
 /// </summary>
 /// <param name="extendedData">
 /// The extended data.
 /// </param>
 /// <returns>
 /// The <see cref="bool"/>.
 /// </returns>
 internal static bool GetAllowsValidationValue(this ExtendedDataCollection extendedData)
 {
     return(!extendedData.ContainsKey(Constants.ExtendedDataKeys.LineItemAllowsValidation) ||
            extendedData.GetValue(Constants.ExtendedDataKeys.LineItemAllowsValidation).AsBool());
 }
 /// <summary>
 /// True/false indicating whether or not this extended data collection contains a child serialized extended data collection
 /// </summary>
 /// <param name="extendedData">
 /// The extended Data.
 /// </param>
 /// <returns>
 /// A value indicating whether or not this extended data collection contains a child serialized extended data collection
 /// </returns>
 public static bool ContainsExtendedDataSerialization(this ExtendedDataCollection extendedData)
 {
     return(extendedData.ContainsKey(Constants.ExtendedDataKeys.ExtendedData));
 }
 /// <summary>
 /// Gets a <see cref="IPaymentMethod"/> from the <see cref="ExtendedDataCollection"/>
 /// </summary>
 /// <param name="extendedData">
 /// The extended Data.
 /// </param>
 /// <returns>
 /// The payment method key.
 /// </returns>
 internal static Guid GetPaymentMethodKey(this ExtendedDataCollection extendedData)
 {
     return(!extendedData.ContainsKey(Constants.ExtendedDataKeys.PaymentMethod) ? Guid.Empty :
            extendedData.GetValue(Constants.ExtendedDataKeys.PaymentMethod).AsGuid());
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Determines whether or not the <see cref="ExtendedDataCollection"/> contains a serialized coupon.
 /// </summary>
 /// <param name="extendedData">
 /// The extended data.
 /// </param>
 /// <returns>
 /// A value indicating whether or not the <see cref="ExtendedDataCollection"/> contains a serialized coupon.
 /// </returns>
 public static bool ContainsCoupon(this ExtendedDataCollection extendedData)
 {
     return(extendedData.ContainsKey(Core.Constants.ExtendedDataKeys.CouponReward));
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Performs the task of validating the pricing information.
        /// </summary>
        /// <param name="value">
        /// The value.
        /// </param>
        /// <returns>
        /// The <see cref="Attempt"/>.
        /// </returns>
        public override Attempt <ValidationResult <CustomerItemCacheBase> > PerformTask(ValidationResult <CustomerItemCacheBase> value)
        {
            var visitor = new ProductPricingValidationVisitor(Merchello);

            value.Validated.Accept(visitor);

            if (visitor.InvalidPrices.Any())
            {
                foreach (var result in visitor.InvalidPrices.ToArray())
                {
                    var lineItem  = result.Key;
                    var quantity  = lineItem.Quantity;
                    var name      = lineItem.Name;
                    var removedEd = lineItem.ExtendedData.AsEnumerable();
                    value.Validated.RemoveItem(lineItem.Sku);

                    var extendedData = new ExtendedDataCollection();
                    ProductVariantDisplay variant;
                    if (result.Value is ProductDisplay)
                    {
                        var product = result.Value as ProductDisplay;
                        variant = product.AsMasterVariantDisplay();
                    }
                    else
                    {
                        variant = result.Value as ProductVariantDisplay;
                    }

                    if (variant == null)
                    {
                        var nullReference = new NullReferenceException("ProductVariantDisplay cannot be null");
                        LogHelper.Error <ValidateProductPriceTask>("Exception occurred when attempting to adjust pricing information", nullReference);
                        throw nullReference;
                    }

                    extendedData.AddProductVariantValues(variant);
                    extendedData.MergeDataModifierLogs(variant);
                    extendedData.MergeDataModifierLogs(variant);

                    // preserve any custom extended data values
                    foreach (var val in removedEd.Where(val => !extendedData.ContainsKey(val.Key)))
                    {
                        extendedData.SetValue(val.Key, val.Value);
                    }

                    var price = variant.OnSale ? extendedData.GetSalePriceValue() : extendedData.GetPriceValue();

                    var keys = lineItem.ExtendedData.Keys.Where(x => extendedData.Keys.Any(y => y != x));
                    foreach (var k in keys)
                    {
                        extendedData.SetValue(k, lineItem.ExtendedData.GetValue(k));
                    }

                    value.Validated.AddItem(string.IsNullOrEmpty(name) ? variant.Name : name, variant.Sku, quantity, price, extendedData);
                    value.Messages.Add("Price updated for " + variant.Sku + " to " + price);
                }

                value.Validated.Save();
            }

            return(Attempt <ValidationResult <CustomerItemCacheBase> > .Succeed(value));
        }
 /// <summary>
 /// True/false indicating whether or not the collection contains a WarehouseCatalogKey
 /// </summary>
 /// <param name="extendedData">
 /// The extended Data.
 /// </param>
 /// <returns>
 /// A value indicating whether or not the extended data collection contains a warehouse key.
 /// </returns>
 public static bool ContainsWarehouseCatalogKey(this ExtendedDataCollection extendedData)
 {
     return(extendedData.ContainsKey(Constants.ExtendedDataKeys.WarehouseCatalogKey));
 }
 /// <summary>
 /// True/false indicating whether or not the collection contains a ShipmentKey
 /// </summary>
 /// <param name="extendedData">
 /// The extended Data.
 /// </param>
 /// <returns>
 /// A value indicating whether or not the extended data collection contains a shipment key.
 /// </returns>
 public static bool ContainsShipmentKey(this ExtendedDataCollection extendedData)
 {
     return(extendedData.ContainsKey(Constants.ExtendedDataKeys.ShipmentKey));
 }
 /// <summary>
 /// True/false indicating whether or not the collection contains a ProductKey
 /// </summary>
 /// <param name="extendedData">
 /// The extended data.
 /// </param>
 /// <returns>
 ///  A value indicating whether or not the extended data collection contains a version key.
 /// </returns>
 public static bool ContainsVersionKey(this ExtendedDataCollection extendedData)
 {
     return(extendedData.ContainsKey(Constants.ExtendedDataKeys.VersionKey));
 }
 /// <summary>
 /// True/false indicating whether or not the collection contains a ProductVariantKey
 /// </summary>
 /// <param name="extendedData">
 /// The extended Data.
 /// </param>
 /// <returns>
 /// A value indicating whether or not the extended data collection contains a product variant key.
 /// </returns>
 public static bool ContainsProductVariantKey(this ExtendedDataCollection extendedData)
 {
     return(extendedData.ContainsKey(Constants.ExtendedDataKeys.ProductVariantKey));
 }