Ejemplo n.º 1
0
 public static void ExpectSuccess(DatasetCreateUpdateInputBaseDto createRequest, ApiResponseWrapper <DatasetDto> responseWrapper)
 {
     ApiResponseBasicAsserts.ExpectSuccess <DatasetDto>(responseWrapper);
     Assert.NotEqual <int>(0, responseWrapper.Content.Id);
     Assert.Equal(createRequest.Name, responseWrapper.Content.Name);
     Assert.Equal(createRequest.Classification, responseWrapper.Content.Classification);
 }
Ejemplo n.º 2
0
        public static async Task <DatasetSeedResult> Create(RestHelper restHelper, int studyId, string location = "norwayeast", string name = "datasetName", string classification = "open")
        {
            var request = new DatasetCreateUpdateInputBaseDto()
            {
                Name = name, Location = location, Classification = classification
            };
            var response = await restHelper.Post <DatasetDto, DatasetCreateUpdateInputBaseDto>(String.Format(ApiUrls.STUDY_SPECIFIC_DATASETS, studyId), request);

            return(new DatasetSeedResult(request, response));
        }
Ejemplo n.º 3
0
        public async Task <DatasetDto> CreateStudySpecificDatasetAsync(int studyId, DatasetCreateUpdateInputBaseDto newDatasetInput, string clientIp, CancellationToken cancellationToken = default)
        {
            var studyFromDb = await _studyModelService.GetForDatasetCreationAsync(studyId, UserOperation.Study_AddRemove_Dataset);

            await _studyWbsValidationService.ValidateForDatasetCreationOrThrow(studyFromDb);

            DatasetUtils.PerformUsualTestForPostedDatasets(newDatasetInput);

            ThrowIfDatasetNameTaken(studyFromDb, newDatasetInput.Name);

            var dataset = _mapper.Map <Dataset>(newDatasetInput);

            dataset.StudySpecific = true;

            var currentUser = await _userService.GetCurrentUserAsync();

            dataset.CreatedBy = currentUser.UserName;

            _db.Datasets.Add(dataset);
            await _db.SaveChangesAsync();

            // Create new linking table entry
            var studyDataset = new StudyDataset {
                StudyId = studyFromDb.Id, DatasetId = dataset.Id
            };
            await _db.StudyDatasets.AddAsync(studyDataset);

            await _db.SaveChangesAsync();

            dataset = await _studySpecificDatasetModelService.GetForResourceAndFirewall(dataset.Id, UserOperation.Study_AddRemove_Dataset);

            try
            {
                await _datasetCloudResourceService.CreateResourcesForStudySpecificDatasetAsync(studyFromDb, dataset, clientIp, cancellationToken);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Unable to create resources for Study specific Dataset, deleting dataset");
                _db.StudyDatasets.Remove(studyDataset);
                _db.Datasets.Remove(dataset);
                await _db.SaveChangesAsync();

                throw;
            }

            var datasetDto = _mapper.Map <DatasetDto>(dataset);

            await DecorateDtoStudySpecific(_userService, studyFromDb, datasetDto.Permissions);

            return(datasetDto);
        }
Ejemplo n.º 4
0
 public static void PerformUsualTestForPostedDatasets(DatasetCreateUpdateInputBaseDto datasetDto)
 {
     if (String.IsNullOrWhiteSpace(datasetDto.Name))
     {
         throw new ArgumentException($"Field Dataset.Name is required. Current value: {datasetDto.Name}");
     }
     if (String.IsNullOrWhiteSpace(datasetDto.Classification))
     {
         throw new ArgumentException($"Field Dataset.Classification is required. Current value: {datasetDto.Classification}");
     }
     if (String.IsNullOrWhiteSpace(datasetDto.Location))
     {
         throw new ArgumentException($"Field Dataset.Location is required. Current value: {datasetDto.Location}");
     }
 }
Ejemplo n.º 5
0
        public static void UpdateDatasetBasicDetails(Dataset datasetFromDb, DatasetCreateUpdateInputBaseDto updatedDataset)
        {
            if (!String.IsNullOrWhiteSpace(updatedDataset.Name) && updatedDataset.Name != datasetFromDb.Name)
            {
                datasetFromDb.Name = updatedDataset.Name;
            }

            if (!String.IsNullOrWhiteSpace(updatedDataset.Classification) && updatedDataset.Classification != datasetFromDb.Classification)
            {
                datasetFromDb.Classification = updatedDataset.Classification;
            }

            if (updatedDataset.DataId != 0 && updatedDataset.DataId != datasetFromDb.DataId)
            {
                datasetFromDb.DataId = updatedDataset.DataId;
            }
        }
Ejemplo n.º 6
0
 public DatasetSeedResult(DatasetCreateUpdateInputBaseDto request, ApiResponseWrapper <DatasetDto> response)
 {
     Request  = request;
     Response = response;
 }
        public async Task <IActionResult> UpdateStudySpecificDataSet(int studyId, int datasetId, DatasetCreateUpdateInputBaseDto updatedDataset)
        {
            var updatedStudy = await _studySpecificDatasetService.UpdateStudySpecificDatasetAsync(studyId, datasetId, updatedDataset);

            return(new JsonResult(updatedStudy));
        }
        public async Task <IActionResult> CreateStudySpecificDataSetAsync(int studyId, DatasetCreateUpdateInputBaseDto newDataset, CancellationToken cancellation = default)
        {
            var clientIp = IpAddressUtil.GetClientIp(HttpContext);

            var updatedStudy = await _studySpecificDatasetService.CreateStudySpecificDatasetAsync(studyId, newDataset, clientIp, cancellation);

            return(new JsonResult(updatedStudy));
        }
Ejemplo n.º 9
0
        public async Task <DatasetDto> UpdateStudySpecificDatasetAsync(int studyId, int datasetId, DatasetCreateUpdateInputBaseDto updatedDataset)
        {
            DatasetUtils.PerformUsualTestForPostedDatasets(updatedDataset);

            var studyFromDb = await _studyModelService.GetForDatasetsAsync(studyId, UserOperation.Study_AddRemove_Dataset);

            var datasetFromDb = GetStudySpecificDatasetOrThrow(studyFromDb, datasetId);

            DatasetUtils.UpdateDatasetBasicDetails(datasetFromDb, updatedDataset);

            Validate(datasetFromDb);

            await _db.SaveChangesAsync();

            var datasetDto = _mapper.Map <DatasetDto>(datasetFromDb);

            await DecorateDtoStudySpecific(_userService, studyFromDb, datasetDto.Permissions);

            return(datasetDto);
        }