public async Task <IActionResult> Targets(CancellationToken cancellationToken, [FromServices] IEnvironmentTypeService environmentTypeService) { var environmentTypes = await environmentTypeService.GetEnvironmentTypes(cancellationToken); var targets = (await _targetSource.GetOrganizationsAsync(cancellationToken)) .SelectMany( organization => organization.Projects.SelectMany(project => project.DeploymentTargets)) .Select(deploymentTarget => { string editUrl = Url.RouteUrl(TargetConstants.EditTargetRouteName, new { deploymentTargetId = deploymentTarget.Id }); string historyUrl = Url.RouteUrl(DeploymentConstants.HistoryRouteName, new { deploymentTargetId = deploymentTarget.Id }); string statusUrl = Url.RouteUrl(TargetConstants.TargetStatusApiRouteName, new { deploymentTargetId = deploymentTarget.Id }); EnvironmentType environmentType = environmentTypes.SingleOrDefault(type => type.Id.Equals(deploymentTarget.EnvironmentTypeId)) ?? EnvironmentType.Unknown; return(new { targetId = deploymentTarget.Id, name = deploymentTarget.Name, url = deploymentTarget.Url, editUrl, historyUrl, statusKey = DeployStatus.Unknown.Key, statusDisplayName = DeployStatus.Unknown.DisplayName, statusUrl, isPreReleaseVersion = false, semanticVersion = "", preReleaseClass = "", intervalAgo = "", intervalAgoName = "", deployedAtLocalTime = "", environmentType = environmentType.Name, metadataUrl = deploymentTarget.Url is null ? null : $"{deploymentTarget.Url.AbsoluteUri.TrimEnd('/')}/applicationmetadata.json", statusMessage = "", latestNewerAvailabe = "", deployEnabled = deploymentTarget.Enabled && !deploymentTarget.IsReadOnly, packages = Array.Empty <object>(), packageId = deploymentTarget.PackageId }); })
public async Task SeedAsync(CancellationToken cancellationToken) { var types = await _environmentTypeService.GetEnvironmentTypes(cancellationToken); if (!types.IsDefaultOrEmpty) { return; } CreateEnvironment[] commands = { new() { EnvironmentTypeId = "qa", EnvironmentTypeName = "QualityAssurance", PreReleaseBehavior = PreReleaseBehavior.AllowWithForceFlag.Name }, new() { EnvironmentTypeId = "production", EnvironmentTypeName = "Production", PreReleaseBehavior = PreReleaseBehavior.Deny.Name }, new() { EnvironmentTypeId = "development ", EnvironmentTypeName = "Development ", PreReleaseBehavior = PreReleaseBehavior.Allow.Name }, new() { EnvironmentTypeId = "test", EnvironmentTypeName = "Test", PreReleaseBehavior = PreReleaseBehavior.Allow.Name } }; foreach (CreateEnvironment createEnvironment in commands) { CreateEnvironmentResult result = await _mediator.Send(createEnvironment, cancellationToken); _logger.Debug("CreateEnvironment result for Id {Id}: {Status}", result.Id, result.Status); } }
public async Task SeedAsync(CancellationToken cancellationToken) { try { var environmentTypes = await _environmentTypeService.GetEnvironmentTypes(cancellationToken); var targets = await _deploymentTargetReadService.GetDeploymentTargetsAsync(stoppingToken : cancellationToken); foreach (DeploymentTarget deploymentTarget in targets) { await UpdateTarget(cancellationToken, deploymentTarget, environmentTypes); } } catch (TaskCanceledException ex) { _logger.Error(ex, "Could not run seeder task"); } }