Beispiel #1
0
        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;
     }
 }