public static Dictionary <int, IAnalyzerOutputHandler> GetOutputsHandlers(AnalyzerConfig analyzerConfig) { Dictionary <int, IAnalyzerOutputHandler> keyValuePairs = new Dictionary <int, IAnalyzerOutputHandler>(); analyzerConfig.Outputs.ToList().ForEach(o => { IAnalyzerOutputHandler analyzerOutputHandler = null; string assemblyFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _analyzerAssemblyFileName); if (o.OutputType == Common.Enums.OutputTypes.WindowsNotification) { assemblyFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AnalyzerNotifications.dll"); } if (File.Exists(assemblyFileName)) { var loggerAssembly = Assembly.LoadFrom(assemblyFileName); Type outputHandlerType = loggerAssembly.GetType(_namespace + "." + o.OutputType.ToString() + "OutputHandler"); analyzerOutputHandler = (IAnalyzerOutputHandler)Activator.CreateInstance(outputHandlerType, o); } if (analyzerOutputHandler != null) { keyValuePairs.Add(o.ID, analyzerOutputHandler); } }); return(keyValuePairs); }
public static ILogsReceiver Create(string[] applicationArgs, AnalyzerConfig analyzerConfig) { ILogsReceiver logsReceiver = null; switch (analyzerConfig.LogsReceiverConfig.LogReceiverType) { case Common.Enums.LogReceiverTypes.AnonymousPipes: if (applicationArgs?.Length > 0) { logsReceiver = new AnonymousPipesLogsReceiver(applicationArgs[0]); } break; case Common.Enums.LogReceiverTypes.NamedPipes: logsReceiver = new NamedPipesLogsReceiver((NamedPipesReceiverConfig)analyzerConfig.LogsReceiverConfig); break; case Common.Enums.LogReceiverTypes.WindowsEventsViewer: string mircosoftEventViewerReceiverAssemblyFileName = "LogsManager.MircosoftEventViewerReceiverReceiver.dll"; IAnalyzerOutputHandler analyzerOutputHandler = null; string assemblyFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, mircosoftEventViewerReceiverAssemblyFileName); if (File.Exists(assemblyFileName)) { var loggerAssembly = Assembly.LoadFrom(assemblyFileName); Type outputHandlerType = loggerAssembly.GetType("LogsManager.MircosoftEventViewerReceiver.EventLogsReceiver"); analyzerOutputHandler = (IAnalyzerOutputHandler)Activator.CreateInstance(outputHandlerType, analyzerConfig.LogsReceiverConfig); } break; } return(logsReceiver); }