예제 #1
0
        public async Task <IActionResult> Delete([FromForm] TestProblemsIdViewModel test)
        {
            var testToDelete = _testRepository.GetItem(test.TestId);

            if (testToDelete == null)
            {
                return(BadRequest("No test to delete"));
            }

            var problem     = _problemRepository.GetItem(test.ProblemId);
            var problemName = problem?.ProblemName;

            //delete from linux server first
            TestDeleteModel testToDeleteModel = new TestDeleteModel
            {
                ProblemName = problemName,
                FisierIn    = testToDelete.FisierIn,
                FisierOk    = testToDelete.FisierOk
            };

            var testWasDeleted = await DeleteTest(testToDeleteModel);

            if (testWasDeleted == true)
            {
                _testRepository.Delete(test.TestId);
                _testRepository.Save();

                return(RedirectToAction(nameof(Index), new { id = test.ProblemId }));
            }
            return(RedirectToAction(nameof(Delete), new { id = test.TestId }));
        }
예제 #2
0
 public JsonResult DeleteTestFiles([FromBody] TestDeleteModel item)
 {
     if (ModelState.IsValid)
     {
         var deleted = _testGenerator.DeleteTestFile(item.FisierIn, item.FisierOk, item.ProblemName);
         if (deleted == true)
         {
             return(Json("File deleted"));
         }
         return(Json("Failed to delete files"));
     }
     return(Json("Failed response"));
 }
예제 #3
0
        private async Task <bool> DeleteTest(TestDeleteModel testToDeleteModel)
        {
            var client = new HttpClient();
            var serializedInputData = JsonConvert.SerializeObject(testToDeleteModel);
            var httpContent         = new StringContent(serializedInputData, Encoding.UTF8, "application/json");
            var response            = await client.PostAsync(_deleteTestApi, httpContent);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var result = await response.Content.ReadAsStringAsync();

                var resultDeserialized = JsonConvert.DeserializeObject(result);
                if (result.Contains("File deleted"))
                {
                    //we delete successfuly the input and the output file
                    return(true);
                }
                return(false);
            }
            return(false);
        }