private async Task ReportManagedCertificateStatus(ManagedCertificate managedCertificate)
 {
     if (CoreAppSettings.Current.EnableStatusReporting)
     {
         if (_pluginManager != null && _pluginManager.DashboardClient != null)
         {
             var report = new Models.Shared.RenewalStatusReport
             {
                 InstanceId          = CoreAppSettings.Current.InstanceId,
                 MachineName         = Environment.MachineName,
                 PrimaryContactEmail = (await GetAccountDetailsForManagedItem(managedCertificate))?.Email,
                 ManagedSite         = managedCertificate,
                 AppVersion          = Util.GetAppVersion().ToString()
             };
             try
             {
                 await _pluginManager.DashboardClient.ReportRenewalStatusAsync(report);
             }
             catch (Exception)
             {
                 // failed to report status
                 LogMessage(managedCertificate.Id, "Failed to send renewal status report.",
                            LogItemType.GeneralWarning);
             }
         }
     }
 }
        private async Task ReportManagedCertificateStatus(ManagedCertificate managedCertificate)
        {
            if (CoreAppSettings.Current.EnableStatusReporting)
            {
                if (_pluginManager != null && _pluginManager.DashboardClient != null)
                {
                    var reportedCert = Newtonsoft.Json.JsonConvert.DeserializeObject <ManagedCertificate>(Newtonsoft.Json.JsonConvert.SerializeObject(managedCertificate));

                    // remove anything we don't want to report to the dashboard

                    reportedCert.RequestConfig.CustomCSR        = null;
                    reportedCert.RequestConfig.CustomPrivateKey = null;

                    var report = new Models.Shared.RenewalStatusReport
                    {
                        InstanceId          = CoreAppSettings.Current.InstanceId,
                        MachineName         = Environment.MachineName,
                        PrimaryContactEmail = (await GetAccountDetailsForManagedItem(managedCertificate))?.Email,
                        ManagedSite         = reportedCert,
                        AppVersion          = Util.GetAppVersion().ToString()
                    };
                    try
                    {
                        await _pluginManager.DashboardClient.ReportRenewalStatusAsync(report);
                    }
                    catch (Exception)
                    {
                        // failed to report status
                        LogMessage(managedCertificate.Id, "Failed to send renewal status report.",
                                   LogItemType.GeneralWarning);
                    }
                }
            }
        }