Пример #1
0
        public static umbraco.cms.businesslogic.property.Property GetMultiStoreItem(this Document document, string alias)
        {
            var originalAlias = alias;

            #region frontend

            var orderInfo = OrderHelper.GetOrder();
            if (string.IsNullOrEmpty(library.Request("id")))
            {
                if (orderInfo != null)
                {
                    alias = StoreHelper.CreateMultiStorePropertyAlias(alias, orderInfo.StoreInfo.Alias);
                }
                else
                {
                    var sAlias = StoreHelper.GetCurrentStore();
                    alias = StoreHelper.CreateMultiStorePropertyAlias(alias, sAlias.Alias);
                }
                return(document.getProperty(alias));
            }

            #endregion

            #region backend

            //var nodeId = int.Parse(library.Request("id"));
            //var orderNode = new Order(nodeId);

            var typeAlias = document.ContentType.Alias;
            var orderDoc  = document;
            if (OrderedProduct.IsAlias(orderDoc.ContentType.Alias) && !OrderedProductVariant.IsAlias(orderDoc.ContentType.Alias))
            {
                orderDoc = new Document(orderDoc.ParentId);
            }

            if (typeAlias == Order.NodeAlias || OrderedProduct.IsAlias(typeAlias) && !OrderedProductVariant.IsAlias(typeAlias))
            {
                var orderInfoDoc = OrderHelper.GetOrderInfo(Guid.Parse(orderDoc.getProperty("orderGuid").Value.ToString()));
                var store        = StoreHelper.GetByAlias(orderInfoDoc.StoreInfo.Alias);

                if (store != null)
                {
                    alias = StoreHelper.CreateMultiStorePropertyAlias(alias, store.Alias);
                }
            }

            var property = document.getProperty(alias);

            if (property == null || property.Value == null)
            {
                property = document.getProperty(originalAlias);
            }

            return(property);

            #endregion
        }
Пример #2
0
        /// <summary>
        /// Return the property value for the current shopalias
        /// </summary>
        /// <param name="nodeId">The node unique identifier.</param>
        /// <param name="propertyAlias">The property alias.</param>
        /// <returns></returns>
        public static string GetPropertyValueForCurrentShop(int nodeId, string propertyAlias)
        {
            var store = StoreHelper.GetCurrentStore();

            propertyAlias = StoreHelper.CreateMultiStorePropertyAlias(propertyAlias, store.Alias);

            var node = new umbraco.NodeFactory.Node(nodeId);

            var property = node.GetProperty(propertyAlias);

            return(property == null ? string.Empty : property.Value);
        }
Пример #3
0
        /// <summary>
        /// Get the value based on the Store Alias
        /// </summary>
        /// <param name="node">The node.</param>
        /// <param name="alias">The alias.</param>
        /// <param name="storeAlias">The store alias.</param>
        /// <returns></returns>
        public static IProperty GetMultiStoreItem(this INode node, string alias, string storeAlias = null)
        {
            var originalAlias = alias;

            if (node == null)
            {
                return(null);
            }

            #region backend

            // todo: fix backend, add inCMSbackend check?
            int id;
            if (!string.IsNullOrEmpty(library.Request("id")) && int.TryParse(library.Request("id"), out id))
            {
                var typeAlias = node.NodeTypeAlias;

                var orderNode = node;
                if (OrderedProduct.IsAlias(typeAlias) && !OrderedProductVariant.IsAlias(typeAlias))
                {
                    orderNode = orderNode.Parent;
                }

                if (typeAlias == Order.NodeAlias || OrderedProduct.IsAlias(typeAlias) && !OrderedProductVariant.IsAlias(typeAlias))
                {
                    var orderInfoDoc = OrderHelper.GetOrder(Guid.Parse(orderNode.GetProperty("orderGuid").Value));
                    alias = StoreHelper.CreateMultiStorePropertyAlias(alias, orderInfoDoc.StoreInfo.Alias);

                    var propertyDoc = node.GetProperty(alias);

                    if (propertyDoc == null || string.IsNullOrEmpty(propertyDoc.Value))
                    {
                        propertyDoc = node.GetProperty(originalAlias);
                    }

                    return(propertyDoc);
                }
            }

            #endregion

            #region frontend

            // dit gebeurt duizenden keren
            if (storeAlias == null)
            {
                storeAlias = StoreHelper.GetCurrentStore().Alias;
            }
            if (storeAlias != null)
            {
                alias = StoreHelper.CreateMultiStorePropertyAlias(alias, storeAlias);
            }

            var property = node.GetProperty(alias);

            if (property == null || string.IsNullOrEmpty(property.Value))
            {
                property = node.GetProperty(originalAlias);
            }

            return(property);

            #endregion
        }
Пример #4
0
        // unsure about location! (maybe another service)
        public string GetMultiStoreContentProperty(int contentId, string propertyAlias, ILocalization localization, bool globalOverrulesStore = false)
        {
            var examineNode = Helpers.GetNodeFromExamine(contentId, "GetMultiStoreItem::" + propertyAlias);

            if (localization == null)
            {
                localization = StoreHelper.CurrentLocalization;
            }
            var multiStoreAlias = StoreHelper.CreateMultiStorePropertyAlias(propertyAlias, localization.StoreAlias);
            var multiStoreMultiCurrencyAlias = StoreHelper.CreateFullLocalizedPropertyAlias(propertyAlias, localization);

            if (examineNode != null)
            {
                if (multiStoreAlias.StartsWith("description"))
                {
                    multiStoreAlias = "RTEItem" + multiStoreAlias;
                    propertyAlias   = "RTEItem" + propertyAlias;
                }

                if (globalOverrulesStore && examineNode.Fields.ContainsKey(propertyAlias))
                {
                    return(examineNode.Fields[propertyAlias] ?? string.Empty);
                }

                if (examineNode.Fields.ContainsKey(multiStoreMultiCurrencyAlias))
                {
                    return(examineNode.Fields[multiStoreMultiCurrencyAlias] ?? string.Empty);
                }

                if (examineNode.Fields.ContainsKey(multiStoreAlias))
                {
                    return(examineNode.Fields[multiStoreAlias] ?? string.Empty);
                }

                if (examineNode.Fields.ContainsKey(propertyAlias))
                {
                    return(examineNode.Fields[propertyAlias] ?? string.Empty);
                }

                Log.Instance.LogDebug("GetMultiStoreContentProperty Fallback to node after this");
            }

            var node = new Node(contentId);

            if (node.Name != null)
            {
                var property = node.GetProperty(propertyAlias);
                if (globalOverrulesStore && property != null && !string.IsNullOrEmpty(property.Value))
                {
                    return(property.Value);
                }
                var propertyMultiStoreMultiCurrency = node.GetProperty(multiStoreMultiCurrencyAlias);
                if (propertyMultiStoreMultiCurrency != null && !string.IsNullOrEmpty(propertyMultiStoreMultiCurrency.Value))
                {
                    return(propertyMultiStoreMultiCurrency.Value);
                }
                var propertyMultistore = node.GetProperty(multiStoreAlias);
                if (propertyMultistore != null && !string.IsNullOrEmpty(propertyMultistore.Value))
                {
                    return(propertyMultistore.Value);
                }
                if (property != null)
                {
                    return(property.Value);
                }
            }
            return(string.Empty);
        }
 private void SetStoreDisablePropertyTrue()
 {
     _propertyProvider.Dictionary.Add(StoreHelper.CreateMultiStorePropertyAlias("disable", StoreAlias), "1");
 }