private static void exportToFile(IEnumerable <ActiveDirectoryServer> serversToExport, CommandLineOptions options) { logger.Info("Export File: " + options.ExportFile); Regex csvExtension = new Regex("\\.csv$", RegexOptions.Compiled | RegexOptions.IgnoreCase); if (csvExtension.IsMatch(options.ExportFile)) { logger.Info("Exporting to CSV file..."); try { ActiveDirectoryUserProvider reader = new ActiveDirectoryUserProvider(); reader.DumpUserRecordsToCSV(options.ExportFile, serversToExport, options.Limit); } catch (Exception csvException) { logException("Error while exporting AD records to CSV file", csvException); } } else { logger.Info("Exporting to text file..."); try { ActiveDirectoryUserProvider reader = new ActiveDirectoryUserProvider(); reader.DumpUserRecordsToText(options.ExportFile, serversToExport, options.Limit); } catch (Exception txtException) { logException("Error while exporting AD records to text file", txtException); } } }
private static int syncFromActiveDirectory(int returnCode, ActiveDirectorySyncSettings adSyncSettings, AddressBookStore addressBook, CommandLineOptions options) { logger.Info("Initializing active directory reader..."); ActiveDirectoryUserProvider reader = new ActiveDirectoryUserProvider(); int recordsIterated = 0; try { foreach (var adServer in adSyncSettings.ActiveDirectoryServers) { if (!string.IsNullOrWhiteSpace(options.ServerName) && options.ServerName != "None" && adServer.Name != options.ServerName) { // If user provides a specific server name, then skip all other servers logger.Warn("Skipping AD server: " + adServer.Name); continue; } logger.Info(new String('=', 50)); string displayContextContainer = adServer.ContextContainer; if (string.IsNullOrWhiteSpace(displayContextContainer)) { displayContextContainer = "No Context Container Provided"; } logger.Info("Processing: " + adServer.Name + " (" + adServer.Domain + " / " + displayContextContainer + ")"); foreach (var adUser in reader.GetUserRecords(adServer)) { addressBook.AddOrSyncADUser(adUser, adSyncSettings.SyncSettings.UpdateUserInformation); recordsIterated++; if (options.Limit > 0 && recordsIterated >= options.Limit) { break; } } if (options.Limit > 0 && recordsIterated >= options.Limit) { logger.Info("\nObtained maximum record count of " + options.Limit); break; } } } catch (Exception exc) { logException("Unexpected Exception Occured", exc); returnCode = 1; } return(returnCode); }