protected OpohoExecutorBase() { if (!Provider.IsValid) { Log.Error("Invalid CompositionProvider. Unable to initialise OpohoExecutor"); return; } Config = Provider.ConfigurationProvider as IConsoleConfigurationProvider; if (Config == null) { Log.Error("Invalid ConfigurationProvider. Unable to initialise OpohoExecutor"); return; } if (!Config.IsValid) { Log.Error("Invalid configuration. Unable to initialise OpohoExecutor"); return; } CsharpEngine = new ScriptEngine { BaseDirectory = Config.LibDirectory }; CsharpEngine.AddReference(typeof(System.Linq.Enumerable).Assembly); CsharpEngine.AddReference(typeof(IOpohoReportCommand).Assembly); CsharpEngine.AddReference(typeof(ReplContextBase).Assembly); if (Config.IsValid) { AddReferences(); AddImports(); } }
public ConsoleCompositionProvider(IConsoleConfigurationProvider configurationProvider) { if (configurationProvider == null || configurationProvider.IsValid == false) { _log.Error("OpohoCompositionProvider: Invalid configurationManager"); return; } if (String.IsNullOrEmpty(configurationProvider.LibDirectory)) { _log.Error("OpohoCompositionProvider directory cannot be null"); IsValid = false; return; } if (!Directory.Exists(configurationProvider.LibDirectory)) { _log.Warning("Directory: {0} doesn't exist", configurationProvider.LibDirectory); IsValid = false; return; } try { ConfigurationProvider = configurationProvider; _dirCatalog = new DirectoryCatalog(configurationProvider.LibDirectory, "*.dll"); _container = new CompositionContainer(_dirCatalog); _container.ComposeParts(this); IsValid = true; } catch (ChangeRejectedException cre) { _log.Error(cre.Message); IsValid = false; } catch (CompositionContractMismatchException cmmex) { _log.Error(cmmex.Message); IsValid = false; } catch (ReflectionTypeLoadException rtlex) { foreach (var lex in rtlex.LoaderExceptions) { _log.Error(lex.Message); } IsValid = false; } catch (Exception ex) { _log.Error(ex.Message); IsValid = false; } }