예제 #1
0
        public async Task Delete(string id)
        {
            int      _id  = int.Parse(id);
            TestCase item = await _context.Tests.FindAsync(_id);

            if (item != null && item.ProblemId == _problemId && item.IsSample == _isSample)
            {
                TestCaseProvider prov = new TestCaseProvider(_workspace, _context, item);
                Directory.Delete(prov.GetRoot(), true);
                _context.Tests.Remove(item);
                await _context.SaveChangesAsync();
            }
        }
예제 #2
0
        public async Task Clear()
        {
            TestCase[] tests = (from x in _context.Tests where x.ProblemId == _problemId && x.IsSample == _isSample select x).ToArray();

            foreach (TestCase v in tests)
            {
                TestCaseProvider item = new TestCaseProvider(_workspace, _context, v);
                Directory.Delete(item.GetRoot(), true);
            }

            _context.Tests.RemoveRange(tests);
            await _context.SaveChangesAsync();
        }
예제 #3
0
        public async Task <ITestCaseProvider> Create(TestCaseMetadata metadata)
        {
            TestCase empty = new TestCase {
                ProblemId = _problemId, IsSample = _isSample
            };

            _context.Tests.Add(empty);
            await _context.SaveChangesAsync();

            TestCaseProvider res = new TestCaseProvider(_workspace, _context, empty);

            Directory.CreateDirectory(res.GetRoot());
            await res.SetMetadata(metadata);

            return(res);
        }