protected object GetValue (X509CertificateRecord record, string columnName)
{
switch (columnName) {
case "ID": return record.Id;
case "BASICCONSTRAINTS": return record.BasicConstraints;
case "TRUSTED": return record.IsTrusted;
case "KEYUSAGE": return (int) record.KeyUsage;
case "NOTBEFORE": return record.NotBefore;
case "NOTAFTER": return record.NotAfter;
case "ISSUERNAME": return record.IssuerName;
case "SERIALNUMBER": return record.SerialNumber;
case "SUBJECTEMAIL": return record.SubjectEmail != null ? record.SubjectEmail.ToLowerInvariant () : string.Empty;
case "FINGERPRINT": return record.Fingerprint.ToLowerInvariant ();
case "ALGORITHMS": return EncodeEncryptionAlgorithms (record.Algorithms);
case "ALGORITHMSUPDATED": return record.AlgorithmsUpdated;
case "CERTIFICATE": return record.Certificate.GetEncoded ();
case "PRIVATEKEY": return EncodePrivateKey (record.PrivateKey);
default: throw new ArgumentException (string.Format ("Unknown column name: {0}", columnName), "columnName");
}
}