private IRouter ApiRoute(IApplicationBuilder app, ILoggerFactory loggerFactory) { var builder = new RouteBuilder(app); builder.MapGet("api/{builddef}/{component}/{branch}/{build}/{jsonfile}", async context => { var routeData = context.GetRouteData(); var product = routeData.Values["product"] as String; var branch = routeData.Values["branch"] as String; var build = routeData.Values["build"] as String; var buildDefName = routeData.Values["builddef"] as String; var component = routeData.Values["component"] as String; var jsonFile = routeData.Values["jsonfile"] as String; var pathRegex = $"{branch}.*{build}"; var logger = loggerFactory.CreateLogger($"{buildDefName} {component} {branch} {build}"); var paths = await VsToRoslyn.GetPathsAsync(connection, branch, build, int.Parse(buildDefName), component, jsonFile, logger); var json = JsonConvert.SerializeObject(paths.ToArray()); await context.Response.WriteAsync(json); }); builder.MapGet("api/listbuilds/{branch}", async context => { var routeData = context.GetRouteData(); var branch = routeData.Values["branch"] as String; var logger = loggerFactory.CreateLogger($"{branch}"); var branches = await VsToRoslyn.GetAllBuildNumbers(connection, branch, logger); var json = JsonConvert.SerializeObject(branches); await context.Response.WriteAsync(json); }); builder.MapGet("api/allbranches", async context => { var logger = loggerFactory.CreateLogger($"allbranches"); var branches = await VsToRoslyn.GetAllBranches(connection, logger); var json = JsonConvert.SerializeObject(branches); await context.Response.WriteAsync(json); }); return(builder.Build()); }
private IRouter ApiRoute(IApplicationBuilder app, ILoggerFactory loggerFactory) { var builder = new RouteBuilder(app); builder.MapGet("api/{builddef}/{component}/{branch}/{build}", async(context) => { var routeData = context.GetRouteData(); var product = routeData.Values["product"] as String; var branch = routeData.Values["branch"] as String; var build = routeData.Values["build"] as String; var buildDefName = routeData.Values["builddef"] as String; var component = routeData.Values["component"] as String; var pathRegex = $"{branch}.*{build}"; var logger = loggerFactory.CreateLogger($"{buildDefName} {component} {branch} {build}"); var paths = await VsToRoslyn.GetPaths(pathRegex, buildDefName, component, logger); var json = JsonConvert.SerializeObject(paths.ToArray()); await context.Response.WriteAsync(json); }); return(builder.Build()); }