Пример #1
0
        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));
                }
            }
        }