示例#1
0
        public async Task <IActionResult> DeleteDataSet(long id)
        {
            var dataSet = await aquariumDataSetRepository.GetByIdAsync(id);

            if (dataSet == null)
            {
                return(JsonNotFound($"AquariumDataSet ID {id} is not found."));
            }
            if (await experimentRepository.ExistsAsync(x => x.DataSetId == id))
            {
                return(JsonConflict($"AquariumDataSet ID {id} has been used by experiment."));
            }
            if (await experimentPreprocessRepository.ExistsAsync(x => x.DataSetId == id))
            {
                return(JsonConflict($"AquariumDataSet ID {id} has been used by experiment preprocess."));
            }

            var dataSetIds = new HashSet <long>();

            foreach (var dataSetVersion in aquariumDataSetVersionRepository.FindAll(x => x.AquariumDataSetId == id))
            {
                dataSetIds.Add(dataSetVersion.DataSetId);
            }
            aquariumDataSetRepository.Delete(dataSet);
            unitOfWork.Commit();

            foreach (var x in dataSetIds)
            {
                await dataSetLogic.ReleaseLockAsync(x);
            }
            unitOfWork.Commit();

            return(JsonNoContent());
        }
示例#2
0
        public async Task <IActionResult> Delete(long id)
        {
            var template = await templateRepository.GetByIdAsync(id);

            if (template == null)
            {
                return(JsonNotFound($"Template ID {id} is not found."));
            }

            if (await experimentRepository.ExistsAsync(x => x.TemplateId == id, true))
            {
                return(JsonConflict($"Template {id} has been used by experiment."));
            }
            if (await experimentPreprocessRepository.ExistsAsync(x => x.TemplateId == id, true))
            {
                return(JsonConflict($"Template {id} has been used by experiment preprocess."));
            }

            templateRepository.Delete(template);
            unitOfWork.Commit();
            return(JsonNoContent());
        }
        public async Task <IActionResult> Delete(long id)
        {
            var experiment = await experimentRepository
                             .GetAll()
                             .Include(x => x.ExperimentPreprocess)
                             .SingleOrDefaultAsync(x => x.Id == id);

            if (experiment == null)
            {
                return(JsonNotFound($"Experiment ID {id} is not found."));
            }

            experimentRepository.Delete(experiment);
            if (experiment.TrainingHistoryId != null)
            {
                (var status, var result) = await TrainingController.DoDelete(
                    experiment.TrainingHistoryId.Value,
                    trainingHistoryRepository,
                    clusterManagementLogic,
                    dataSetLogic,
                    tagLogic,
                    unitOfWork,
                    CurrentUserInfo,
                    ModelState,
                    storageLogic,
                    inferenceHistoryRepository,
                    tensorBoardContainerRepository,
                    tagRepository,
                    RequestUrl);

                if (!status)
                {
                    return(result);
                }
            }

            if (experiment.ExperimentPreprocessId != null)
            {
                var exists = await experimentRepository
                             .ExistsAsync(x => x.ExperimentPreprocessId == experiment.ExperimentPreprocessId && x.Id != id);

                if (!exists)
                {
                    experimentPreprocessRepository.Delete(experiment.ExperimentPreprocess);
                    (var status, var result) = await TrainingController.DoDelete(
                        experiment.ExperimentPreprocess.TrainingHistoryId,
                        trainingHistoryRepository,
                        clusterManagementLogic,
                        dataSetLogic,
                        tagLogic,
                        unitOfWork,
                        CurrentUserInfo,
                        ModelState,
                        storageLogic,
                        inferenceHistoryRepository,
                        tensorBoardContainerRepository,
                        tagRepository,
                        RequestUrl);

                    if (!status)
                    {
                        return(result);
                    }
                }
            }

            unitOfWork.Commit();
            return(JsonNoContent());
        }