/// <summary> /// Locates actions for the specified context. /// </summary> /// <param name="context">The context.</param> /// <returns>Discovered actions.</returns> public IEnumerable <IAction> Locate(ActionLocationContext context) { var actions = new List <IAction>(); var methodGroups = SelectMethods(context.TargetType); foreach (var methodGroup in methodGroups) { var methodList = methodGroup.ToList(); if (methodList.Count == 1) { actions.Add(CreateAction(context.TargetType, context.TargetFilters, methodList[0])); } else { var overloadedAction = new OverloadedAction(methodGroup.Key); foreach (var methodInfo in methodList) { overloadedAction.AddOverload(CreateAction(context.TargetType, context.TargetFilters, methodInfo)); } actions.Add(overloadedAction); } } return(actions); }
/// <summary> /// Locates actions for the specified context. /// </summary> /// <param name="context">The context.</param> /// <returns>Discovered actions.</returns> public IEnumerable<IAction> Locate(ActionLocationContext context) { var actions = new List<IAction>(); var methodGroups = SelectMethods(context.TargetType); foreach(var methodGroup in methodGroups) { var methodList = methodGroup.ToList(); if(methodList.Count == 1) actions.Add(CreateAction(context.TargetType, context.TargetFilters, methodList[0])); else { var overloadedAction = new OverloadedAction(methodGroup.Key); foreach(var methodInfo in methodList) { overloadedAction.AddOverload(CreateAction(context.TargetType, context.TargetFilters, methodInfo)); } actions.Add(overloadedAction); } } return actions; }