public async Task <IActionResult> GetManagedCertificates(string keyword)
        {
            var managedCerts = await _client.GetManagedCertificates(new Models.ManagedCertificateFilter {
                Keyword = keyword
            });

            //TODO: this assumes all identifiers are DNS, may be IPs in the future.

            var list = managedCerts.Select(i => new ManagedCertificateInfo
            {
                Id                = WebUtility.UrlEncode(i.Id),
                Title             = i.Name,
                PrimaryIdentifier = new Identifier {
                    Type = "dns", Value = i.RequestConfig.PrimaryDomain
                },
                Identifiers = i.RequestConfig.SubjectAlternativeNames.Select(s => new Identifier {
                    Type = "dns", Value = s
                }),
                DateRenewed    = i.DateRenewed,
                DateExpiry     = i.DateExpiry,
                Comments       = i.Comments,
                Status         = i.LastRenewalStatus?.ToString() ?? "",
                HasCertificate = !string.IsNullOrEmpty(i.CertificatePath)
            });

            return(new OkObjectResult(list));
        }
        public async Task <IActionResult> Get(string keyword)
        {
            var managedCerts = await _client.GetManagedCertificates(new Models.ManagedCertificateFilter {
                Keyword = keyword
            });

            var list = managedCerts.Select(i => new ManagedCertificateInfo
            {
                Id            = i.Id,
                Title         = i.Name,
                PrimaryDomain = i.RequestConfig.PrimaryDomain,
                Domains       = i.RequestConfig.SubjectAlternativeNames,
                DateRenewed   = i.DateRenewed,
                DateExpiry    = i.DateExpiry
            });

            return(new OkObjectResult(list));
        }
Exemple #3
0
        public async Task <List <ActionStep> > PerformDeployment(string managedCertificateId, string taskId = null, bool isPreview = false, bool forceTaskExecute = false)
        {
            var managedCertificates = await _client.GetManagedCertificates(new ManagedCertificateFilter { Id = managedCertificateId });

            if (managedCertificates.Count == 1)
            {
                var managedCert = managedCertificates.Single();

                if (!string.IsNullOrEmpty(taskId))
                {
                    // identify specific task
                    var task = managedCert.PostRequestTasks.FirstOrDefault(t => t.Id.ToLowerInvariant().Trim() == taskId.ToLowerInvariant().Trim());

                    if (task != null)
                    {
                        return(await _client.PerformDeployment(managedCert.Id, task.Id, isPreviewOnly : isPreview, forceTaskExecute : forceTaskExecute));
                    }
                    else
                    {
                        // no match, nothing to do
                        return(new List <ActionStep> {
                        });
                    }
                }
                else
                {
                    // perform all deployment tasks
                    return(await _client.PerformDeployment(managedCert.Id, null, isPreviewOnly : isPreview, forceTaskExecute : forceTaskExecute));
                }
            }
            else
            {
                // no matches
                return(new List <ActionStep> {
                    new ActionStep {
                        HasError = true, Description = "Managed Certificate not found for given Id. Deployment failed."
                    }
                });
            }
        }