static void Main(string[] args) { if (Properties.Settings.Default.forceNonParallel) { options = new ParallelOptions { MaxDegreeOfParallelism = -1 }; } else { if (Properties.Settings.Default.MaxThreads < 2) { options = new ParallelOptions { MaxDegreeOfParallelism = 1 }; } else { options = new ParallelOptions { MaxDegreeOfParallelism = Properties.Settings.Default.MaxThreads }; } } MOE.Common.Models.Repositories.ISignalsRepository sr = MOE.Common.Models.Repositories.SignalsRepositoryFactory.Create(); List <MOE.Common.Models.Signal> signalsDT = sr.GetLatestVerionOfAllSignalsByControllerType(4); Parallel.ForEach(signalsDT, options, row => //foreach (var row in signalsDT ) { if (TestIPAddress(row)) { string signalId = row.SignalID; Console.WriteLine("Starting signal" + signalId); MOE.Common.Business.MaxTimeHDLogClient client = new MOE.Common.Business.MaxTimeHDLogClient(); XmlDocument xml = client.GetSince(row.IPAddress, GetMostRecentRecordTime(signalId)); SaveToDB(xml, signalId); Console.WriteLine("Finished signal" + signalId); } } ); }
static void Main(string[] args) { MOE.Common.Models.Repositories.IApplicationEventRepository ErrorRepository = MOE.Common.Models.Repositories.ApplicationEventRepositoryFactory.Create(); int MaxThreads = Properties.Settings.Default.MaxThreads; int SNMPTimeout = Properties.Settings.Default.SNMPTimeout; int SNMPRetry = Properties.Settings.Default.SNMPRetry; int SNMPPort = Properties.Settings.Default.SNMPPort; bool DeleteAfterFTP = Properties.Settings.Default.DeleteFilesAfterFTP; bool ImportAfterFTP = Properties.Settings.Default.ImportAfterFTP; int WaitBetweenFiles = Properties.Settings.Default.WaitBetweenFiles; var connection = ConfigurationManager.ConnectionStrings["SPM"].ConnectionString; MOE.Common.Business.BulkCopyOptions Options = new MOE.Common.Business.BulkCopyOptions(connection, Properties.Settings.Default.DestinationTableName, Properties.Settings.Default.WriteToConsole, Properties.Settings.Default.forceNonParallel, Properties.Settings.Default.MaxThreads, Properties.Settings.Default.DeleteFiles, Properties.Settings.Default.EarliestAcceptableDate, Properties.Settings.Default.BulkCopyBatchSize, Properties.Settings.Default.BulkCopyTimeOut); MOE.Common.Models.SPM _db = new MOE.Common.Models.SPM(); MOE.Common.Models.Repositories.ISignalsRepository _sr = SignalsRepositoryFactory.Create(_db); var _signals = _sr.GetSignalFTPInfoForAllFTPSignals(); var options = new ParallelOptions { MaxDegreeOfParallelism = Properties.Settings.Default.MaxThreads }; Parallel.ForEach(_signals.AsEnumerable(), options, row => //foreach (var row in SignalsDT) { try { MOE.Common.Business.Signal signal = new MOE.Common.Business.Signal(); //Initialize the signal, because I didn't make a proper constructor signal.PrimaryName = row.PrimaryName.ToString(); signal.SecondaryName = row.Secondary_Name.ToString(); signal.IpAddress = row.IP_Address.ToString(); signal.SignalID = row.SignalID.ToString(); string Username = row.User_Name; string Password = row.Password; string LocalDir = Properties.Settings.Default.HostDir + signal.SignalID + "\\"; string RemoteDir = row.FTP_Directory; bool ActiveMode = row.ActiveFTP; if (!Directory.Exists(LocalDir)) { Directory.CreateDirectory(LocalDir); } //Get the records over FTP if (CheckIfIPAddressIsValid(signal)) { try { MOE.Common.Business.Signal.GetCurrentRecords(signal.IpAddress, signal.SignalID, Username, Password, LocalDir, RemoteDir, DeleteAfterFTP, SNMPRetry, SNMPTimeout, SNMPPort, ImportAfterFTP, ActiveMode, 0, Options, Properties.Settings.Default.FTPTimeout); } catch (AggregateException ex) { Console.WriteLine("Error At Highest Level for signal " + ex.Message); ErrorRepository.QuickAdd("FTPFromAllControllers", "Main", "Main Loop", MOE.Common.Models.ApplicationEvent.SeverityLevels.Medium, "Error At Highest Level for signal " + row.SignalID); } } } catch (AggregateException ex) { Console.WriteLine("Error At Highest Level for signal " + ex.Message); ErrorRepository.QuickAdd("FTPFromAllControllers", "Main", "Main Loop", MOE.Common.Models.ApplicationEvent.SeverityLevels.Medium, "Error At Highest Level for signal " + row.SignalID); } } ); }