private static CheckoutAttributeLocalized DBMapping(DBCheckoutAttributeLocalized dbItem)
        {
            if (dbItem == null)
            {
                return(null);
            }

            var item = new CheckoutAttributeLocalized();

            item.CheckoutAttributeLocalizedId = dbItem.CheckoutAttributeLocalizedId;
            item.CheckoutAttributeId          = dbItem.CheckoutAttributeId;
            item.LanguageId = dbItem.LanguageId;
            item.Name       = dbItem.Name;
            item.TextPrompt = dbItem.TextPrompt;

            return(item);
        }
        /// <summary>
        /// Update a localized checkout attribute
        /// </summary>
        /// <param name="checkoutAttributeLocalized">Checkout attribute content</param>
        public void UpdateCheckoutAttributeLocalized(CheckoutAttributeLocalized checkoutAttributeLocalized)
        {
            if (checkoutAttributeLocalized == null)
            {
                throw new ArgumentNullException("checkoutAttributeLocalized");
            }

            checkoutAttributeLocalized.Name       = CommonHelper.EnsureNotNull(checkoutAttributeLocalized.Name);
            checkoutAttributeLocalized.Name       = CommonHelper.EnsureMaximumLength(checkoutAttributeLocalized.Name, 100);
            checkoutAttributeLocalized.TextPrompt = CommonHelper.EnsureNotNull(checkoutAttributeLocalized.TextPrompt);
            checkoutAttributeLocalized.TextPrompt = CommonHelper.EnsureMaximumLength(checkoutAttributeLocalized.TextPrompt, 300);

            bool allFieldsAreEmpty = string.IsNullOrEmpty(checkoutAttributeLocalized.Name) &&
                                     string.IsNullOrEmpty(checkoutAttributeLocalized.TextPrompt);


            if (!_context.IsAttached(checkoutAttributeLocalized))
            {
                _context.CheckoutAttributeLocalized.Attach(checkoutAttributeLocalized);
            }

            if (allFieldsAreEmpty)
            {
                //delete if all fields are empty
                _context.DeleteObject(checkoutAttributeLocalized);
                _context.SaveChanges();
            }
            else
            {
                _context.SaveChanges();
            }

            if (this.CacheEnabled)
            {
                _cacheManager.RemoveByPattern(CHECKOUTATTRIBUTES_PATTERN_KEY);
                _cacheManager.RemoveByPattern(CHECKOUTATTRIBUTEVALUES_PATTERN_KEY);
            }
        }
        /// <summary>
        /// Inserts a localized checkout attribute
        /// </summary>
        /// <param name="checkoutAttributeLocalized">Checkout attribute content</param>
        public void InsertCheckoutAttributeLocalized(CheckoutAttributeLocalized checkoutAttributeLocalized)
        {
            if (checkoutAttributeLocalized == null)
            {
                throw new ArgumentNullException("checkoutAttributeLocalized");
            }

            checkoutAttributeLocalized.Name       = CommonHelper.EnsureNotNull(checkoutAttributeLocalized.Name);
            checkoutAttributeLocalized.Name       = CommonHelper.EnsureMaximumLength(checkoutAttributeLocalized.Name, 100);
            checkoutAttributeLocalized.TextPrompt = CommonHelper.EnsureNotNull(checkoutAttributeLocalized.TextPrompt);
            checkoutAttributeLocalized.TextPrompt = CommonHelper.EnsureMaximumLength(checkoutAttributeLocalized.TextPrompt, 300);



            _context.CheckoutAttributeLocalized.AddObject(checkoutAttributeLocalized);
            _context.SaveChanges();

            if (this.CacheEnabled)
            {
                _cacheManager.RemoveByPattern(CHECKOUTATTRIBUTES_PATTERN_KEY);
                _cacheManager.RemoveByPattern(CHECKOUTATTRIBUTEVALUES_PATTERN_KEY);
            }
        }