コード例 #1
0
        public static IRouteBuilder <T> Crud <T>(this IRouteBuilder <T> routeBuilder, Methods methods = Methods.Get | Methods.Post | Methods.Put | Methods.Delete, string id = "id")
        {
            if (methods.HasFlag(Methods.Get))
            {
                routeBuilder.Get();
            }
            if (methods.HasFlag(Methods.Post))
            {
                routeBuilder.Post();
            }

            if (methods.HasFlag(Methods.Get | Methods.Put | Methods.Delete))
            {
                var newRouteBuilder = routeBuilder.SubRoute($"{{id}}");
                if (methods.HasFlag(Methods.Get))
                {
                    newRouteBuilder.Get();
                }
                if (methods.HasFlag(Methods.Put))
                {
                    newRouteBuilder.Put();
                }
                if (methods.HasFlag(Methods.Delete))
                {
                    newRouteBuilder.Delete();
                }
                return(newRouteBuilder.Route(routeBuilder.Template, routeBuilder.Set));
            }
            return(routeBuilder);
        }
コード例 #2
0
        public static IRouteBuilder <T> Get <T>(this IRouteBuilder <T> routeBuilder)
        {
            return(routeBuilder.Get(async c =>
            {
                int routeDataCount = c.GetRouteData().Values.Count;
                if (routeDataCount == 0)
                {
                    await c.WriteJsonAsync(routeBuilder.Set);
                    return;
                }

                await Get(c, routeBuilder.Set, c.GetRouteData().Values.First().Key);
            }));
        }
コード例 #3
0
        public static IRouteBuilder Get <T>(this IRouteBuilder routeBuilder, IEnumerable <T> set)
        {
            return(routeBuilder.Get(async c =>
            {
                int routeDataCount = c.GetRouteData().Values.Count;
                if (routeDataCount == 0)
                {
                    await c.WriteJsonAsync(set);
                    return;
                }

                await Get(c, set, c.GetRouteData().Values.First().Key);
            }));
        }
コード例 #4
0
 public static IRouteBuilder Get <T>(this IRouteBuilder routeBuilder, IEnumerable <T> set, string id)
 {
     return(routeBuilder.Get(async c => { await Get(c, set, id); }));
 }