public async Task <ActionResult <ProblemMetadata> > Import([FromBody] ProblemPackage data) { IProblemProvider res = await _workspace.Problems.Create(data.Metadata); await res.SetDescription(data.Description); if (data.Samples != null) { foreach (ProblemPackage.TestCasePackage v in data.Samples) { ITestCaseProvider item = await res.Samples.Create(v.Metadata); await UpdateIOData(new TestCaseData { Input = v.Input, Output = v.Output }, item); } } if (data.Tests != null) { foreach (ProblemPackage.TestCasePackage v in data.Tests) { ITestCaseProvider item = await res.Tests.Create(v.Metadata); await UpdateIOData(new TestCaseData { Input = v.Input, Output = v.Output }, item); } } return(Created($"problems/{res.Id}", await res.GetMetadata())); }
public async Task <ActionResult <ProblemMetadata> > Create([FromBody] ProblemData data) { IProblemProvider res = await _workspace.Problems.Create(data.Metadata); await res.SetDescription(data.Description); if (data.Samples != null) { foreach (TestCaseData v in data.Samples) { ITestCaseProvider item = await res.Samples.Create(v.Metadata); await UpdateIOData(v, item); } } if (data.Tests != null) { foreach (TestCaseData v in data.Tests) { ITestCaseProvider item = await res.Tests.Create(v.Metadata); await UpdateIOData(v, item); } } return(Created($"problems/{res.Id}", await res.GetMetadata())); }
public async Task <ActionResult <ProblemPackage> > Export(string id) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return(NotFound()); } try { ProblemPackage package = new ProblemPackage { Metadata = await res.GetMetadata(), Description = await res.GetDescription(), }; { List <ProblemPackage.TestCasePackage> ls = new List <ProblemPackage.TestCasePackage>(); IEnumerable <ITestCaseProvider> ss = await res.Samples.GetAll(); foreach (ITestCaseProvider s in ss) { ProblemPackage.TestCasePackage t = new ProblemPackage.TestCasePackage { Metadata = await s.GetMetadata(), Input = await TextIO.ToString(await s.GetInput()), Output = await TextIO.ToString(await s.GetOutput()), }; ls.Add(t); } package.Samples = ls; } { List <ProblemPackage.TestCasePackage> ls = new List <ProblemPackage.TestCasePackage>(); IEnumerable <ITestCaseProvider> ss = await res.Tests.GetAll(); foreach (ITestCaseProvider s in ss) { ProblemPackage.TestCasePackage t = new ProblemPackage.TestCasePackage { Metadata = await s.GetMetadata(), Input = await TextIO.ToString(await s.GetInput()), Output = await TextIO.ToString(await s.GetOutput()), }; ls.Add(t); } package.Tests = ls; } return(Ok(package)); } catch { return(NoContent()); } }
public async Task DeleteTest(string id, string tid) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return; } await res.Tests.Delete(tid); }
public async Task ClearTest(string id) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return; } await res.Tests.Clear(); }
public async Task <ActionResult <ProblemDescription> > GetDescription(string id) { IProblemProvider res = await _workspace.Problems.Get(id); if (res != null) { return(Ok(await res.GetDescription())); } else { return(NotFound()); } }
public async Task <ActionResult> UpdateMetadata(string id, [FromBody] ProblemMetadata data) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return(NotFound()); } await res.SetMetadata(data); return(Accepted()); }
public async Task <ActionResult <TestCaseMetadata> > GetTest(string id, string tid) { IProblemProvider res = await _workspace.Problems.Get(id); if (res != null) { return(Ok(await(await res.Tests.Get(tid)).GetMetadata())); } else { return(NotFound()); } }
public async Task <ActionResult <TestCaseMetadata> > CreateTest(string id, [FromBody] TestCaseData data) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return(NotFound()); } ITestCaseProvider item = await res.Tests.Create(data.Metadata); await UpdateIOData(data, item); return(Created($"problems/{res.Id}/tests/{item.Id}", await item.GetMetadata())); }
public async Task <ActionResult> GetTestOutput(string id, string tid) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return(NotFound()); } ITestCaseProvider item = await res.Tests.Get(tid); if (item == null) { return(NotFound()); } return(File(await item.GetOutput(), "text/plain", $"{tid}.out")); }
public async Task <ActionResult <DataPreview> > GetTestOutputPreview(string id, string tid, int num) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return(NotFound()); } ITestCaseProvider item = await res.Tests.Get(tid); if (item == null) { return(NotFound()); } return(Ok(await item.GetOutputPreview(num))); }
public async Task <ActionResult <TestCaseMetadata> > UpdateTest(string id, string tid, [FromBody] TestCaseData data) { IProblemProvider res = await _workspace.Problems.Get(id); if (res == null) { return(NotFound()); } ITestCaseProvider item = await res.Tests.Get(tid); if (item == null) { return(NotFound()); } await item.SetMetadata(data.Metadata); await UpdateIOData(data, item); return(Accepted()); }
public async Task <ActionResult <IEnumerable <TestCaseMetadata> > > GetTests(string id) { IProblemProvider res = await _workspace.Problems.Get(id); if (res != null) { IEnumerable <ITestCaseProvider> all = await res.Tests.GetAll(); List <TestCaseMetadata> ans = new List <TestCaseMetadata>(); foreach (ITestCaseProvider v in all) { ans.Add(await v.GetMetadata()); } return(Ok(ans)); } else { return(NotFound()); } }