in src/MIMConfigDocumenter/MIMSyncConfigDocumenter.cs [303:378]
private void ProcessConnectorConfiguration(XElement connector, ConfigEnvironment configEnvironment)
{
Logger.Instance.WriteMethodEntry();
try
{
var connectorName = (string)connector.Element("name");
var connectorCategory = (string)connector.Element("category");
ConnectorDocumenter connectorDocumenter;
switch (connectorCategory.ToUpperInvariant())
{
case "AD":
connectorDocumenter = new ActiveDirectoryConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "AD GAL":
connectorDocumenter = new ActiveDirectoryGALConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "ADAM":
connectorDocumenter = new ActiveDirectoryLDSConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "FIM":
connectorDocumenter = new FIMConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "MSSQL":
case "ORACLE":
case "DB2":
connectorDocumenter = new DatabaseConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "EXTENSIBLE2":
{
var connectorSubType = (string)connector.Element("subtype");
switch (connectorSubType.ToUpperInvariant())
{
case "WINDOWS AZURE ACTIVE DIRECTORY (MICROSOFT)":
connectorDocumenter = new AzureActiveDirectoryConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "POWERSHELL (MICROSOFT)":
connectorDocumenter = new PowerShellConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "GENERIC SQL (MICROSOFT)":
connectorDocumenter = new GenericSqlConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "GENERIC LDAP (MICROSOFT)":
connectorDocumenter = new GenericLdapConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
case "MICROSOFT WEB SERVICE ECMA2 CONNECTOR (MICROSOFT)":
connectorDocumenter = new WebServicesConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
default:
if (!string.IsNullOrEmpty(connectorSubType))
{
Logger.Instance.WriteWarning("ECMA2 Connector of subtype '{0}' is currently not supported. The connector '{1}' with be treated as a generic ECMA2 connector.", connectorSubType, connectorName);
}
connectorDocumenter = new Extensible2ConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
}
}
break;
default:
Logger.Instance.WriteWarning("Connector of type '{0}' is currently not supported. The connector '{1}' with be treated as a generic ECMA2 connector. Documentation may not be complete.", connectorCategory, connectorName);
connectorDocumenter = new Extensible2ConnectorDocumenter(this.PilotXml, this.ProductionXml, connectorName, configEnvironment);
break;
}
var report = connectorDocumenter.GetReport();
this.ReportWriter.Write(report.Item1);
this.ReportToCWriter.Write(report.Item2);
}
finally
{
Logger.Instance.WriteMethodExit();
}
}