Ejemplo n.º 1
0
        /// <summary>
        /// Gets the module configs from assembly.
        /// </summary>
        protected IEnumerable <ModulConfig> GetModuleConfigsFromAssembly(Assembly assembly, ModulesConfiguration modulesConfiguration)
        {
            var moduleConfigs = new List <ModulConfig>();
            var modules       = assembly.GetTypes().Where(t => typeof(IClientModule).IsAssignableFrom(t)).ToList();

            foreach (var module in modules)
            {
                var att = module.GetCustomAttribute <ClientModuleAttribute>();
                if (att == null)
                {
                    continue;
                }

                var configuredModule = modulesConfiguration.Modules.FirstOrDefault(m => m.ModuleName == att.Name);
                if (configuredModule != null)
                {
                    continue;
                }

                var libraryName = module.Assembly.ManifestModule.ScopeName;

                configuredModule = new ModulConfig
                {
                    ModuleName = att.Name,
                    SortIndex  = 9999,
                    IsEnabled  = true,
                    Accesses   = new Dictionary <string, OperationAccess>()
                };

                moduleConfigs.Add(configuredModule);
            }

            return(moduleConfigs);
        }
        public void ModuleConfigCopyToTest()
        {
            var modConf = new ModulConfig
            {
                Accesses = new Dictionary <string, OperationAccess>
                {
                    { "Test", OperationAccess.LimitedRead }
                },
                SortIndex = 2,
                IsEnabled = true
            };

            var clientModuleConfig = new ClientModuleConfigMock();

            modConf.CopyTo(clientModuleConfig);

            Assert.AreEqual(modConf.Accesses, clientModuleConfig.OperationAccesses);
            Assert.AreEqual(modConf.Accesses.Count, clientModuleConfig.OperationAccesses.Count);

            Assert.AreEqual(modConf.SortIndex, ((IClientModuleConfig)clientModuleConfig).SortIndex);
            Assert.AreEqual(modConf.IsEnabled, clientModuleConfig.IsEnabled);
        }