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); }
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); })); }
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); })); }
public static IRouteBuilder Get <T>(this IRouteBuilder routeBuilder, IEnumerable <T> set, string id) { return(routeBuilder.Get(async c => { await Get(c, set, id); })); }