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); }
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)); }
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); }
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}"); } }
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; } }
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)); }
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); }