private static CompositionContainer CreateDirectoryCatalog(string directoryPath, bool recursive)
        {
            if (!Directory.Exists(directoryPath))
            {
                throw new DirectoryNotFoundException("Runtime Action directory not found: " + directoryPath);
            }

            var aggregate     = new AggregateCatalog();
            var searchPattern = "*.dll";

            try
            {
                if (recursive)
                {
                    var q = from dir in Directory.EnumerateDirectories(directoryPath, "*", SearchOption.AllDirectories)
                            select new DirectoryCatalog(dir, searchPattern);

                    q.ToList().ForEach(catalog => aggregate.Catalogs.Add(catalog));
                }
                else
                {
                    aggregate.Catalogs.Add(new DirectoryCatalog(directoryPath, searchPattern));
                }
            }
            catch (ReflectionTypeLoadException tLException)
            {
                MefHelper.ThrowReflectionTypeLoadException(tLException);
            }

            return(new CompositionContainer(aggregate));
        }
Beispiel #2
0
        /// <summary>
        /// This method would take the call object
        /// and determine what kind of call to be made to which object
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        ///

        public HttpResponseMessage Post(CallObject obj)
        {
            try
            {
                switch (obj.CallType)
                {
                case "obj":
                    return(this.Request.CreateResponse(HttpStatusCode.OK));

                case "service":
                    return(this.Request.CreateResponse(HttpStatusCode.OK));

                default:
                    return(DefaultProcess(obj));
                }
            }
            catch (Exception ex)
            {
                MefHelper.Error(ex);

                return(this.Request.CreateErrorResponse(HttpStatusCode.BadRequest, new HttpError(ex, true)));

                // return this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex);
            }
        }
Beispiel #3
0
        public void RegisterInstance_InstanceNull()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.RegisterInstance(container, typeof(ITestInterface), null));
        }
Beispiel #4
0
        public void RegisterType_Valid()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.RegisterType(container, typeof(ITestInterface), typeof(TestClass1), RegistrationType.Singleton));
        }
Beispiel #5
0
        public void RegisterType_ImplementingTypeNull()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.RegisterType(container, typeof(ITestInterface), null, RegistrationType.Singleton));
        }
Beispiel #6
0
        public void RegisterInstance_InvalidContainer()
        {
            var helper = new MefHelper();

            var container = new object();

            ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.RegisterInstance(container, typeof(ITestInterface), new TestClass1()));
        }
Beispiel #7
0
        public void ResolveType_InterfaceTypeNull()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.ResolveType(container, null));
        }
Beispiel #8
0
        public void GetRegistrationInfo_InvalidContainer()
        {
            var helper = new MefHelper();

            var container = new object();

            ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.GetRegistrationInfo(container, typeof(ITestInterface)));
        }
Beispiel #9
0
        public void IsValidContainer_InvalidContainer()
        {
            var helper = new MefHelper();

            var container = new object();

            Assert.IsFalse(helper.IsValidContainer(container));
        }
Beispiel #10
0
        public void ResolveType_ContainerWithoutTypeRegistered()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.ResolveType(container, typeof(ITestInterface)));
        }
Beispiel #11
0
        public void GetRegistrationInfo_InterfaceTypeNull()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.GetRegistrationInfo(container, null));
        }
Beispiel #12
0
        public void IsValidContainer_ValidContainer()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            Assert.IsTrue(helper.IsValidContainer(container));
        }
Beispiel #13
0
        public void ResolveType_InvalidContainer()
        {
            var helper = new MefHelper();

            var container = new object();

            ExceptionTester.CallMethodAndExpectException <NotSupportedException>(() => helper.ResolveType(container, typeof(ITestInterface)));
        }
Beispiel #14
0
        public void GetRegistrationInfo_ContainerWithoutTypeRegistered()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            Assert.IsNull(helper.GetRegistrationInfo(container, typeof(ITestInterface)));
        }
Beispiel #15
0
        public void GetRegistrationInfo_ContainerWithSingletonTypeRegistered()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            container.RegisterType(typeof(ITestInterface), typeof(TestClass1));

            var registrationInfo = helper.GetRegistrationInfo(container, typeof(ITestInterface));

            Assert.AreEqual(typeof(ITestInterface), registrationInfo.DeclaringType);
            Assert.AreEqual(RegistrationType.Singleton, registrationInfo.RegistrationType);
        }
Beispiel #16
0
        public void RegisterInstance_Valid()
        {
            var helper   = new MefHelper();
            var instance = new TestClass1()
            {
                Name = "test"
            };

            var container = new CompositionContainer();

            Assert.IsFalse(container.GetRegistrationInfo(typeof(ITestInterface)));

            helper.RegisterInstance(container, typeof(ITestInterface), instance);
            Assert.IsTrue(container.GetRegistrationInfo(typeof(ITestInterface)));
            Assert.AreEqual(instance, container.ResolveType <ITestInterface>());
        }
        public IEnumerable <IReportRuntimeAction> GetRuntimeActions()
        {
            IEnumerable <IReportRuntimeAction> result = null;

            try
            {
                var exports = _container.GetExports <IReportRuntimeAction>();

                result = (from export in exports
                          select export.Value).ToList();
            }
            catch (ReflectionTypeLoadException tLException)
            {
                MefHelper.ThrowReflectionTypeLoadException(tLException);
            }

            return(result);
        }
Beispiel #18
0
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();

            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ConfigureOAuth(app);

            MefHelper.Initialize(new ApplicationCatalog());

            WebApiConfig.Register(config);
            app.UseCors(CorsOptions.AllowAll);
            app.UseWebApi(config);
        }
        /// <summary>
        /// Gets the history storage.
        /// </summary>
        /// <param name="reportConfiguration">The report configuration.</param>
        /// <returns>
        /// The history storage or <code>null</code> if no storage exists.
        /// </returns>
        public IHistoryStorage GetHistoryStorage(ReportConfiguration reportConfiguration)
        {
            var storages = MefHelper.LoadInstancesOfType <IHistoryStorage>().ToArray();

            if (storages.Length == 1)
            {
                return(storages[0]);
            }
            else if (storages.Length > 1)
            {
                Logger.WarnFormat(Resources.SeveralCustomHistoryStorages);
            }
            else if (reportConfiguration.HistoryDirectory != null)
            {
                return(new FileHistoryStorage(reportConfiguration.HistoryDirectory));
            }

            return(null);
        }
Beispiel #20
0
        public void ResolveType_Singleton()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            container.RegisterType <ITestInterface, TestClass1>();

            var resolvedInstance1 = helper.ResolveType(container, typeof(ITestInterface));

            Assert.IsNotNull(resolvedInstance1);
            Assert.IsInstanceOfType(resolvedInstance1, typeof(TestClass1));

            var resolvedInstance2 = helper.ResolveType(container, typeof(ITestInterface));

            Assert.IsNotNull(resolvedInstance2);
            Assert.IsInstanceOfType(resolvedInstance2, typeof(TestClass1));

            Assert.IsTrue(ReferenceEquals(resolvedInstance1, resolvedInstance2));
        }
Beispiel #21
0
        public void ResolveType_Transient()
        {
            var helper = new MefHelper();

            var container = new CompositionContainer();

            container.RegisterType <ITestInterface, TestClass1>();

            var resolvedInstance1 = helper.ResolveType(container, typeof(ITestInterface));

            Assert.IsNotNull(resolvedInstance1);
            Assert.IsInstanceOfType(resolvedInstance1, typeof(TestClass1));

            var resolvedInstance2 = helper.ResolveType(container, typeof(ITestInterface));

            Assert.IsNotNull(resolvedInstance2);
            Assert.IsInstanceOfType(resolvedInstance2, typeof(TestClass1));

            // Note that MEF does not support transient types
            Assert.IsTrue(ReferenceEquals(resolvedInstance1, resolvedInstance2));
        }
        protected override void Configure()
        {
            var catalog = MefHelper.SafeDirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory);

            AssemblySource.Instance.Select(x => new AssemblyCatalog(x))
            .OfType <ComposablePartCatalog>()
            .ToList().ForEach((c) => {
                catalog.Catalogs.Add(c);
            });
            GlobalData.MefContainer = new CompositionContainer(catalog);
            // GlobalData.MefContainer = new CompositionContainer(catalog,CompositionOptions.DisableSilentRejection);//// container = CompositionHost.Initialize(catalog);

            var batch = new CompositionBatch();

            batch.AddExportedValue <IWindowManager>(new WindowManager());
            batch.AddExportedValue <IEventAggregator>(new EventAggregator());
            //batch.AddExportedValue<IWindowManager>(new ScreenLifetimeManagerViewModel());
            //batch.AddExportedValue<IEventAggregator>(new WebBoxViewModel());
            batch.AddExportedValue(GlobalData.MefContainer);
            ////batch.AddExportedValue(container);
            ////batch.AddExportedValue(catalog);

            //this.Container.ComposeParts(this);
            GlobalData.MefContainer.Compose(batch);//// container.Compose(batch);


            //EFLogger.EFLogger.Init();


            Coroutine.Completed += (s, e) => {
                if (e.Error != null)
                {
                    MessageBox.Show(e.Error.Message);
                }
            };
        }
Beispiel #23
0
        protected override void Configure()
        {
            var catalog = MefHelper.SafeDirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory);

            AssemblySource.Instance.Select(x => new AssemblyCatalog(x))
            .OfType <ComposablePartCatalog>()
            .ToList().ForEach((c) => {
                catalog.Catalogs.Add(c);
            });

            GlobalData.MefContainer = new CompositionContainer(catalog, CompositionOptions.DisableSilentRejection);

            var batch = new CompositionBatch();

            batch.AddExportedValue <IWindowManager>(new WindowManager());
            batch.AddExportedValue <IEventAggregator>(new EventAggregator());

            batch.AddExportedValue(GlobalData.MefContainer);

            //this.Container.ComposeParts(this);
            GlobalData.MefContainer.Compose(batch);

            EFLogger.EFLogger.Init();
        }
Beispiel #24
0
        public void RegisterInstance_ContainerNull()
        {
            var helper = new MefHelper();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.RegisterInstance(null, typeof(ITestInterface), new TestClass1()));
        }
Beispiel #25
0
        public void IsValidContainer_Null()
        {
            var helper = new MefHelper();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.IsValidContainer(null));
        }
Beispiel #26
0
        public void ResolveType_ContainerNull()
        {
            var helper = new MefHelper();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.ResolveType(null, typeof(ITestInterface)));
        }
Beispiel #27
0
 private static IConnectionProvider ComposeProvider(string extension)
 {
     return(MefHelper.Compose <IConnectionProvider>(extension));
 }
Beispiel #28
0
        public void RegisterType_ContainerNull()
        {
            var helper = new MefHelper();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.RegisterType(null, typeof(ITestInterface), typeof(TestClass1), RegistrationType.Singleton));
        }
Beispiel #29
0
        public void GetRegistrationInfo_ContainerNull()
        {
            var helper = new MefHelper();

            ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => helper.GetRegistrationInfo(null, typeof(ITestInterface)));
        }
 public PowerShellConsoleLauncher(IAlbumRepository albumRepository, MefHelper mefHelper)
 {
     _albumRepository = albumRepository;
     _mefHelper = mefHelper;
 }
 public PowerShellConsoleLauncher(IAlbumRepository albumRepository, MefHelper mefHelper)
 {
     _albumRepository = albumRepository;
     _mefHelper       = mefHelper;
 }