public async Task Can_extract_regions_from_files() { using (var agent = new AgentService()) { var json = new CreateRegionsFromFilesRequest( "testRun", new[] { new SourceFile( "program.cs", "#region one\n#endregion\n#region two\nvar a = 1;\n#endregion") }).ToJson(); var request = new HttpRequestMessage( HttpMethod.Post, @"/project/files/regions") { Content = new StringContent( json, Encoding.UTF8, "application/json") }; var response = await agent.SendAsync(request); var result = await response .EnsureSuccess() .DeserializeAs <CreateRegionsFromFilesResponse>(); result.Should().NotBeNull(); result.Regions.Should().Contain(p => p.Content == string.Empty && p.Id.Contains("one") && p.Id.Contains("program.cs")); result.Regions.Should().Contain(p => p.Content == "var a = 1;" && p.Id.Contains("two") && p.Id.Contains("program.cs")); } }
public static HttpRequestMessage BuildRegionFromFilesRequest(this ClientConfiguration configuration, IEnumerable <SourceFile> files, string hostOrigin, string requestId = null) { var api = configuration.Links.RegionsFromFiles; var request = BuildRequestWithHeaders(configuration, api, hostOrigin); var payload = new CreateRegionsFromFilesRequest(requestId ?? (Guid.NewGuid().ToString()), files?.ToArray()); SetRequestContent(payload, request); return(request); }
public IActionResult GenerateRegionsFromFiles([FromBody] CreateRegionsFromFilesRequest request) { using (var operation = Log.OnEnterAndConfirmOnExit()) { var regions = request.Files.SelectMany(ExtractRegions); var response = new CreateRegionsFromFilesResponse(request.RequestId, regions.ToArray()); IActionResult result = Ok(response); operation.Succeed(); return(result); } }