/// <summary> /// Defines the entry point of the application. /// </summary> /// <param name="args">The arguments.</param> static void Main(string[] args) { IAsyncLogger logger = O365GroupsFactory.GetLogger(new string[] { Constants.AppSettings.LoggerInstanceKey }) as IAsyncLogger; var siteMapFileName = ConfigurationManager.AppSettings[Constants.AppSettings.SiteMapKey]; var siteMapSheetName = ConfigurationManager.AppSettings[Constants.AppSettings.SiteMapSheetKey]; var userMappingFileName = ConfigurationManager.AppSettings[Constants.AppSettings.UserMappingKey]; var userMappingSheetName = ConfigurationManager.AppSettings[Constants.AppSettings.UserMappingSheetKey]; var retryCount = int.Parse(ConfigurationManager.AppSettings[Constants.AppSettings.RetryCountKey]); var delay = int.Parse(ConfigurationManager.AppSettings[Constants.AppSettings.DelayKey]); var userAgent = ConfigurationManager.AppSettings[Constants.AppSettings.UserAgentKey]; logger.Log("Reading Files..."); var csvOperation = new CSVOperations(); var siteMapDetails = csvOperation.ReadFile(Constants.SiteMapSheet, siteMapFileName, siteMapSheetName).Cast <SiteMapReport>().ToList(); SecurityPrincipal.UserMappingList = csvOperation.ReadFile(Constants.UserMappingSheet, userMappingFileName, userMappingSheetName).Cast <UserMappingReport>().ToList(); if (siteMapDetails != null) { SecureString sourcePassword = GetSecureString(Constants.PasswordMessageSource); SecureString targetPassword = GetSecureString(Constants.PasswordMessageTarget); Object lockObj = new Object(); //Stopwatch watch = new Stopwatch(); //watch.Start(); List <ModernWeb> websList = new List <ModernWeb>(); logger.Log("Processing read sites from CSV"); foreach (var siteMap in siteMapDetails) { logger.Log("Reading " + siteMap.SourceSiteUrl); var modernWeb = new ModernWeb { SourceSiteUrl = siteMap.SourceSiteUrl, TargetSiteUrl = siteMap.TargetSiteUrl, SourceUserName = siteMap.SourceUser, TargetUserName = siteMap.TargetUser, SourcePassword = sourcePassword, TargetPassword = targetPassword }; WebsOperation websOperation = new WebsOperation(logger, retryCount, delay, userAgent); websOperation.ModernWeb = modernWeb; websOperation.MigrateWebs(); } //watch.Stop(); logger.Log("Processing complete"); Console.WriteLine("Processing Complete"); //Console.WriteLine("Elapsed Time " + watch.Elapsed.ToString()); } Console.ReadLine(); }
static void Main(string[] args) { IAsyncLogger logger = O365GroupsFactory.GetLogger(new string[] { Constants.AppSettings.LoggerInstanceKey }) as IAsyncLogger; var siteMapFileName = ConfigurationManager.AppSettings[Constants.AppSettings.UserExportSiteMapKey]; var siteMapSheetName = ConfigurationManager.AppSettings[Constants.AppSettings.SiteMapSheetKey]; var retryCount = int.Parse(ConfigurationManager.AppSettings[Constants.AppSettings.RetryCountKey]); var delay = int.Parse(ConfigurationManager.AppSettings[Constants.AppSettings.DelayKey]); var userAgent = ConfigurationManager.AppSettings[Constants.AppSettings.UserAgentKey]; List <string> completedSitesList = new List <string>(); List <string> erroredSitesList = new List <string>(); ConsoleOperations.WriteToConsole("Reading Files...", ConsoleColor.White); var csvOperation = new CSVOperations(); var siteMapDetails = csvOperation.ReadFile(Constants.AppSettings.UserExportSiteMapKey, siteMapFileName, siteMapSheetName).Cast <UserExportSiteMapReport>().ToList(); if (siteMapDetails != null) { SecureString sourcePassword = GetSecureString(Constants.PasswordMessageSource); //Stopwatch watch = new Stopwatch(); //watch.Start(); List <WebSite> websList = new List <WebSite>(); ConsoleOperations.WriteToConsole("Processing read sites from CSV", ConsoleColor.White); foreach (var siteMap in siteMapDetails) { logger.Log("Reading " + siteMap.SourceSiteUrl); var website = new WebSite { SourceSiteUrl = siteMap.SourceSiteUrl.Trim(), SourceUserName = siteMap.SourceUser.Trim(), SourcePassword = sourcePassword, Delay = delay, RetryCount = retryCount, UserAgent = userAgent }; websList.Add(website); } try { WebsUtility websOperation = new WebsUtility(retryCount, delay, userAgent); websOperation.WebSiteList = websList; (completedSitesList, erroredSitesList) = websOperation.ExportUsersList(); } catch (Exception ex) { ConsoleOperations.WriteToConsole("Error ocurred: " + ex.Message, ConsoleColor.Red); } //watch.Stop(); logger.Log("Processing complete"); ConsoleOperations.WriteToConsole($"Processing Complete; Total successful site count: {completedSitesList.Count}. The completed list is as follows:", ConsoleColor.Green); completedSitesList.ForEach(site => { ConsoleOperations.WriteToConsole(site, ConsoleColor.DarkCyan); }); ConsoleOperations.WriteToConsole("Total Errored sites: " + erroredSitesList.Count, ConsoleColor.Red); if (erroredSitesList.Count > 0) { ConsoleOperations.WriteToConsole("List: ", ConsoleColor.Red); erroredSitesList.ForEach(site => { ConsoleOperations.WriteToConsole(site, ConsoleColor.Red); }); } Console.ReadLine(); //Console.WriteLine("Elapsed Time " + watch.Elapsed.ToString()); } }