示例#1
0
        /// <summary>
        /// Adds default context providers, entity resolvers and intent handlers.
        /// </summary>
        protected virtual void AddDefaultStrategies()
        {
            // Default Resolvers
            EntityResolvers.Add(new EntityMetadataResolver());

            // Default Handlers
            IntentHandlers.Add(new ResolvedIntentForwarder());
        }
示例#2
0
        /// <summary>
        /// Resolves the item.
        /// </summary>
        /// <param name="args">The args.</param>
        /// <returns>BaseItem.</returns>
        public BaseItem ResolveItem(ItemResolveArgs args)
        {
            var item = EntityResolvers.Select(r => r.ResolvePath(args)).FirstOrDefault(i => i != null);

            if (item != null)
            {
                ResolverHelper.SetInitialItemValues(item, args);

                // Now handle the issue with posibly having the same item referenced from multiple physical
                // places within the library.  Be sure we always end up with just one instance.
                if (item is IByReferenceItem)
                {
                    item = GetOrAddByReferenceItem(item);
                }
            }

            return(item);
        }