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 <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> UpdateDescription(string id, [FromBody] ProblemDescription data)
        {
            IProblemProvider res = await _workspace.Problems.Get(id);

            if (res == null)
            {
                return(NotFound());
            }

            await res.SetDescription(data);

            return(Accepted());
        }