public async Task <bool> TryHandle(HttpContext context) { var routePath = context.Request.Path; if (string.IsNullOrWhiteSpace(routePath)) { await responseFactory.BuildResponse(context, GetConfigurationSetSummaries()); return(true); } PathString remainingPath; if (routePath.StartsWithSegments("/Model", out remainingPath)) { var queryResult = configCollection.TryMatchPath(c => c.ConfigSetType.Name, remainingPath); if (queryResult.HasResult) { await responseFactory.BuildResponse(context, modelPayloadMapper.Map(queryResult.QueryResult)); } return(queryResult.HasResult); } if (routePath.StartsWithSegments("/Value", out remainingPath)) { var configInstance = await configInstanceRouter.GetConfigInstanceOrDefault(remainingPath); if (configInstance == null || !(context.Request.Method == "GET" || context.Request.Method == "POST")) { return(false); } await HandleValueRequest(context, configInstance); return(true); } return(false); }
public async Task <bool> TryHandle(HttpContext context) { var routePath = context.Request.Path; if (context.Request.Method != "POST") { return(false); } PathString remainingPath; if (routePath.StartsWithSegments("/Configuration", out remainingPath)) { var configInstance = await configInstanceRouter.GetConfigInstanceOrDefault(remainingPath); if (configInstance == null) { return(false); } await HandleUploadRequest(context, configInstance); return(true); } if (routePath.StartsWithSegments("/ConfigurationSet", out remainingPath)) { var clients = await configRepository.GetClientsAsync(); var clientsResult = clients.TryMatchPath(c => c.ClientId, remainingPath); if (!clientsResult.HasResult) { return(false); } var configSetResult = configCollection.TryMatchPath(c => c.ConfigSetType.Name, clientsResult.RemainingPath); if (!configSetResult.HasResult) { return(false); } await HandleUploadRequest(context, clientsResult.QueryResult.ClientId, configSetResult.QueryResult); return(true); } return(false); }