public IEnumerable<ActionCall> FindActions(TypePool types)
{
var awesomeEntities = types.EntityTypes();
var openHandlers = new[]
{
typeof (RestfulCreateHandler<>),
typeof (RestfulPatchHandler<>),
typeof (RestfulDeleteHandler<>),
typeof (RestfulFindHandler<>),
typeof (RestfulIndexHandler<>),
typeof (AwesomeCreateHandler<>),
typeof (AwesomeEditHandler<>)
};
foreach (var awesomeEntity in awesomeEntities)
{
foreach(var openHandler in openHandlers)
{
var closedHandler = openHandler.MakeGenericType(awesomeEntity);
var closedMethod = closedHandler.GetMethod("Execute", BindingFlags.Public | BindingFlags.Instance); //should drive from RestfulHandler
guard(closedHandler, closedMethod);
yield return new ActionCall(closedHandler, closedMethod);
}
}
}