public async Task <DeploymentTarget> GetDeploymentTargetAsync( [NotNull] string deploymentTargetId, CancellationToken cancellationToken = default) { if (string.IsNullOrWhiteSpace(deploymentTargetId)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(deploymentTargetId)); } using (IQuerySession session = _documentStore.QuerySession()) { try { DeploymentTargetData deploymentTargetData = await session.Query <DeploymentTargetData>() .SingleOrDefaultAsync(target => target.Id.Equals(deploymentTargetId, StringComparison.OrdinalIgnoreCase), cancellationToken); DeploymentTarget deploymentTarget = MapDataToTarget(deploymentTargetData); return(deploymentTarget); } catch (Exception ex) when(!ex.IsFatal()) { _logger.Warning(ex, "Could not get deployment target with id {Id}", deploymentTargetId); return(DeploymentTarget.None); } } }
public async Task <UpdateDeploymentTargetResult> Handle( UpdateDeploymentTarget request, CancellationToken cancellationToken) { using (IDocumentSession session = _documentStore.OpenSession()) { DeploymentTargetData data = await session.LoadAsync <DeploymentTargetData>(request.Id, cancellationToken); if (data is null) { return(new UpdateDeploymentTargetResult(new ValidationError("Not found"))); } data.PackageId = request.PackageId; data.Url = request.Url; data.IisSiteName = request.IisSiteName; data.AllowExplicitPreRelease = request.AllowExplicitPreRelease; data.NuGetPackageSource = request.NugetPackageSource; data.NuGetConfigFile = request.NugetConfigFile; data.AutoDeployEnabled = request.AutoDeployEnabled; data.PublishSettingsXml = request.PublishSettingsXml; data.TargetDirectory = request.TargetDirectory; data.WebConfigTransform = request.WebConfigTransform; data.ExcludedFilePatterns = request.ExcludedFilePatterns; data.Enabled = request.Enabled; session.Store(data); await session.SaveChangesAsync(cancellationToken); } _logger.Information("Updated target with id {Id}", request.Id); return(new UpdateDeploymentTargetResult()); }
private static DeploymentTarget MapDataToTarget(DeploymentTargetData deploymentTargetData) { if (deploymentTargetData is null) { return(null); } var deploymentTargetAsync = new DeploymentTarget( deploymentTargetData.Id, deploymentTargetData.Name, deploymentTargetData.PackageId ?? Core.Constants.NotAvailable, deploymentTargetData.PublishSettingsXml, deploymentTargetData.AllowExplicitPreRelease, uri: deploymentTargetData.Url?.ToString(), nuGetConfigFile: deploymentTargetData.NuGetConfigFile, nuGetPackageSource: deploymentTargetData.NuGetPackageSource, iisSiteName: deploymentTargetData.IisSiteName, autoDeployEnabled: deploymentTargetData.AutoDeployEnabled, targetDirectory: deploymentTargetData.TargetDirectory, webConfigTransform: deploymentTargetData.WebConfigTransform, excludedFilePatterns: deploymentTargetData.ExcludedFilePatterns, enabled: deploymentTargetData.Enabled); return(deploymentTargetAsync); }
public async Task <CreateTargetResult> Handle(CreateTarget request, CancellationToken cancellationToken) { if (!request.IsValid) { return(new CreateTargetResult(new ValidationError("Invalid"))); } using (IDocumentSession session = _documentStore.OpenSession()) { var data = new DeploymentTargetData { Id = request.Id, Name = request.Name }; session.Store(data); await session.SaveChangesAsync(cancellationToken); } _logger.Information("Created target with id {Id}", request.Id); return(new CreateTargetResult(request.Id)); }