/// <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()); }
/// <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); }