public static void FindValidCertExistingOnEveryServer(DataRow inputRow, DataTable dataTable, DataObjectStore store)
        {
            DataRow dataRow                   = dataTable.Rows[0];
            List <MailCertificate> list       = dataRow["MailCertificateOptions"] as List <MailCertificate>;
            IEnumerable <object>   enumerable = store.GetDataObject("ExchangeCertificates") as IEnumerable <object>;

            if (list == null)
            {
                list = (dataRow["MailCertificateOptions"] = new List <MailCertificate>());
                using (IEnumerator <object> enumerator = enumerable.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        object obj = enumerator.Current;
                        ExchangeCertificate exchangeCertificate = (ExchangeCertificate)obj;
                        if (HybridConfigurationWizardServiceCodeBehind.IsValidCertificate(exchangeCertificate))
                        {
                            list.Add(new MailCertificate
                            {
                                FriendlyName = exchangeCertificate.FriendlyName,
                                Thumbprint   = exchangeCertificate.Thumbprint,
                                Issuer       = exchangeCertificate.Issuer,
                                Subject      = exchangeCertificate.Subject
                            });
                        }
                    }
                    return;
                }
            }
            IEnumerable <string> source = from cert in enumerable
                                          where HybridConfigurationWizardServiceCodeBehind.IsValidCertificate((ExchangeCertificate)cert)
                                          select((ExchangeCertificate)cert).Thumbprint;

            for (int i = list.Count - 1; i >= 0; i--)
            {
                if (!source.Contains(list[i].Thumbprint))
                {
                    list.RemoveAt(i);
                }
            }
        }
        public static void AddCertificates(DataRow inputRow, DataTable dataTable, DataObjectStore store)
        {
            List <MailCertificate> list       = new List <MailCertificate>();
            IEnumerable <object>   enumerable = store.GetDataObject("ExchangeCertificates") as IEnumerable <object>;

            foreach (object obj in enumerable)
            {
                ExchangeCertificate exchangeCertificate = (ExchangeCertificate)obj;
                if (HybridConfigurationWizardServiceCodeBehind.IsValidCertificate(exchangeCertificate))
                {
                    list.Add(new MailCertificate
                    {
                        FriendlyName = exchangeCertificate.FriendlyName,
                        Thumbprint   = exchangeCertificate.Thumbprint,
                        Subject      = exchangeCertificate.Subject,
                        Issuer       = exchangeCertificate.Issuer
                    });
                }
            }
            DataRow dataRow = dataTable.NewRow();

            dataTable.Rows.Add(dataRow);
            dataRow["MailCertificateOptions"] = list;
        }