public async Task CreateResourceGroupForStudySpecificDatasetsAsync(Study study, CancellationToken cancellationToken = default) { var studyForCreation = await _studyModelService.GetForDatasetCreationNoAccessCheckAsync(study.Id); var resourceGroupForDatasets = GetResourceGroupForStudySpecificDataset(studyForCreation); var parentQueueItem = QueueItemFactory.CreateParent("Create resource group for Study specific datasets"); if (resourceGroupForDatasets == null) { var resourceGroupName = AzureResourceNameUtil.StudySpecificDatasetResourceGroup(studyForCreation.Name); var tags = ResourceTagFactory.StudySpecificDatasourceResourceGroupTags(_config, studyForCreation); resourceGroupForDatasets = await _cloudResourceCreateService.CreateStudySpecificResourceGroupEntryAsync(studyForCreation.Id, resourceGroupName, "norwayeast", tags); ProvisioningQueueUtil.CreateChildAndAdd(parentQueueItem, resourceGroupForDatasets); } else { throw new Exception("Resource group allready exists"); } await ScheduleResourceGroupRoleAssignments(studyForCreation, resourceGroupForDatasets, parentQueueItem); await _provisioningQueueService.SendMessageAsync(parentQueueItem, cancellationToken : cancellationToken); }
public void StudySpecificDatasourceResourceGroupTags_ShouldReturnCorrectValues() { var config = AzureResourceTagsFactory_Factory.GetConfiguration(_serviceProvider); List <StudyParticipant> participants = new List <StudyParticipant>(); var user = new User() { Id = 1, FullName = "John Doe", EmailAddress = "*****@*****.**" }; participants.Add(new StudyParticipant() { RoleName = "Study Owner", User = user }); var study = new Study() { Name = "Study1", WbsCode = "123", StudyParticipants = participants }; var res = ResourceTagFactory.StudySpecificDatasourceResourceGroupTags(config, study); var expectedResultStudy = "Study1"; var expectedResultOwnerName = "John Doe"; var expectedResultOwnerEmail = "*****@*****.**"; Assert.Equal(expectedResultStudy, res["StudyName"]); Assert.Equal(expectedResultOwnerName, res["StudyOwnerName"]); Assert.Equal(expectedResultOwnerEmail, res["StudyOwnerEmail"]); }
async Task <CloudResource> CreateResourceGroupForStudySpecificDatasetsInternalAsync(Study study, ProvisioningQueueParentDto parentQueueItem) { var resourceGroupName = AzureResourceNameUtil.StudySpecificDatasetResourceGroup(study.Name); var tags = ResourceTagFactory.StudySpecificDatasourceResourceGroupTags(_config, study); var resourceGroupForDatasets = await _cloudResourceCreateService.CreateStudySpecificResourceGroupEntryAsync(study.Id, resourceGroupName, "norwayeast", tags); ProvisioningQueueUtil.CreateChildAndAdd(parentQueueItem, resourceGroupForDatasets); await ScheduleResourceGroupRoleAssignments(study, resourceGroupForDatasets, parentQueueItem); return(resourceGroupForDatasets); }