コード例 #1
0
ファイル: MappingAttributes.cs プロジェクト: zinark/Drafts
        // i should make it clan for DRY
        // TODO :Ferhat bunu ben ekledim gerek de olmayabilir.
        public static MethodMap CreateMethodMap(this object [] instances)
        {
            var map = new MethodMap();

            foreach (var method in instances.SelectMany(t=>t.GetType().GetMethods()))
            {
                var paths = PathAttribute.PathsForMethod(method);

                if (paths.Length == 0) continue;

                var verbs = VerbAttribute.VerbsForMethod(method);

                foreach (var path in paths)
                    foreach (var verb in verbs)
                        map.MapMethod(path, verb, method);
            }

            return map;
        }
コード例 #2
0
ファイル: MethodMap.cs プロジェクト: chakrit/kayak
        public static MethodMap CreateMethodMap(this IEnumerable<Type> types)
        {
            var map = new MethodMap();

            foreach (var method in types.SelectMany(t => t.GetMethods()))
            {
                var paths = PathAttribute.PathsForMethod(method);

                if (paths.Length == 0) continue;

                var verbs = VerbAttribute.VerbsForMethod(method);

                if (verbs.Length == 0)
                    verbs = new string[] { "GET" };

                foreach (var path in paths)
                    foreach (var verb in verbs)
                        map.MapMethod(path, verb, method);
            }

            return map;
        }
コード例 #3
0
ファイル: MethodMap.cs プロジェクト: chakrit/kayak
        void MapMethod(IEnumerable<string> pathComponents, string verb, MethodInfo method)
        {
            string component = pathComponents.FirstOrDefault();

            if (component == null)
                methods[verb] = method;
            else
            {
                if (!children.ContainsKey(component))
                    children[component] = new MethodMap(component);

                children[component].MapMethod(pathComponents.Skip(1), verb, method);
            }
        }