Example #1
0
        /// <summary>
        /// Register mapping
        /// </summary>
        /// <param name="config">Config</param>
        protected virtual void RegisterMapperConfiguration(VConfig config)
        {
            //dependencies
            var typeFinder = new WebAppTypeFinder();

            //register mapper configurations provided by other assemblies
            var mcTypes     = typeFinder.FindClassesOfType <IMapperConfiguration>();
            var mcInstances = new List <IMapperConfiguration>();

            foreach (var mcType in mcTypes)
            {
                mcInstances.Add((IMapperConfiguration)Activator.CreateInstance(mcType));
            }
            //sort
            mcInstances = mcInstances.AsQueryable().OrderBy(t => t.Order).ToList();
            //get configurations
            var configurationActions = new List <Action <IMapperConfigurationExpression> >();

            foreach (var mc in mcInstances)
            {
                configurationActions.Add(mc.GetConfiguration());
            }
            //register
            AutoMapperConfiguration.Init(configurationActions);
        }
Example #2
0
        /// <summary>
        /// Register dependencies
        /// </summary>
        /// <param name="config">Config</param>
        protected virtual void RegisterDependencies(VConfig config)
        {
            var builder = new ContainerBuilder();

            //dependencies
            var typeFinder = new WebAppTypeFinder();

            builder.RegisterInstance(config).As <VConfig>().SingleInstance();
            builder.RegisterInstance(this).As <IEngine>().SingleInstance();
            builder.RegisterInstance(typeFinder).As <ITypeFinder>().SingleInstance();

            //register dependencies provided by other assemblies
            var drTypes     = typeFinder.FindClassesOfType <IDependencyRegistrar>();
            var drInstances = new List <IDependencyRegistrar>();

            foreach (var drType in drTypes)
            {
                drInstances.Add((IDependencyRegistrar)Activator.CreateInstance(drType));
            }
            //sort
            drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList();
            foreach (var dependencyRegistrar in drInstances)
            {
                dependencyRegistrar.Register(builder, typeFinder, config);
            }

            var container = builder.Build();

            this._containerManager = new ContainerManager(container);

            //set dependency resolver
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
Example #3
0
        public static void SyncCollection <TSource, TDestination>(this IEnumerable <TSource> sourceCollection, ICollection <TDestination> targetCollection, bool useStrict = true)
        {
            var config = new VConfig
            {
                UseStrict = useStrict
            };

            SyncCollection(sourceCollection, targetCollection, config);
        }
Example #4
0
        public static void MapTo <TSource, TDestination>(this TSource parent, TDestination target, bool useStrict = true)
        {
            var config = new VConfig
            {
                UseStrict = useStrict
            };

            MapTo(parent, target, config);
        }
Example #5
0
        public AESFile()
        {
            InitializeComponent();
            usageCheck = new DataUsageCheck();
            config     = new VConfig();

            usage = usageCheck.initData();

            DataContextChanged            += AESFile_DataContextChanged;
            SaltTitle.MouseLeftButtonDown += new MouseButtonEventHandler(SaltTitle_MouseLeftButtonDown);
        }
Example #6
0
        /// <summary>
        /// Initialize components and plugins in the nop environment.
        /// </summary>
        /// <param name="config">Config</param>
        public void Initialize(VConfig config)
        {
            //register dependencies
            RegisterDependencies(config);

            //register mapper configurations
            RegisterMapperConfiguration(config);

            //startup tasks
            if (!config.IgnoreStartupTasks)
            {
                RunStartupTasks();
            }
        }
Example #7
0
        public static Pipeline Create(VConfig config, IChannel input, IChannel output, List <IFilter> inputFiters,
                                      List <IFilter> outputFilters, ILogger logger = null)
        {
            if (config is VrtuConfig)
            {
                return(Create((VrtuConfig)config, input, output, inputFiters, outputFilters, logger));
            }

            if (config is ModuleConfig)
            {
                return(Create((ModuleConfig)config, input, output, inputFiters, outputFilters, logger));
            }

            throw new InvalidCastException("VConfig invalid type.");
        }
Example #8
0
        public Dictionary <String, String> CacheAttributes(Type source, Type target, VConfig configSettings)
        {
            try
            {
                if (_cacheMetadata.Any())
                {
                    return(_cacheMetadata);
                }

                var sourceMembers = source.GetMembers().Where(member => member.MemberType == MemberTypes.Field || member.MemberType == MemberTypes.Property).ToList();
                var targetMembers = target.GetMembers().Where(member => member.MemberType == MemberTypes.Field || member.MemberType == MemberTypes.Property).ToList();
                CacheType(sourceMembers, targetMembers);
            }
            catch (Exception)
            {
                if (configSettings.UseStrict)
                {
                    throw;
                }
            }

            return(_cacheMetadata);
        }
Example #9
0
 public IPipelineBuilder AddConfig(VConfig config)
 {
     this.config = config;
     return(this);
 }
        /// <summary>
        /// Register services and interfaces
        /// </summary>
        /// <param name="builder">Container builder</param>
        /// <param name="typeFinder">Type finder</param>
        /// <param name="config">Config</param>
        public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, VConfig config)
        {
            //HTTP context and other related stuff
            builder.Register(c =>
                             (new HttpContextWrapper(HttpContext.Current) as HttpContextBase))
            .As <HttpContextBase>()
            .InstancePerLifetimeScope();
            builder.Register(c => c.Resolve <HttpContextBase>().Request)
            .As <HttpRequestBase>()
            .InstancePerLifetimeScope();
            builder.Register(c => c.Resolve <HttpContextBase>().Response)
            .As <HttpResponseBase>()
            .InstancePerLifetimeScope();
            builder.Register(c => c.Resolve <HttpContextBase>().Server)
            .As <HttpServerUtilityBase>()
            .InstancePerLifetimeScope();
            builder.Register(c => c.Resolve <HttpContextBase>().Session)
            .As <HttpSessionStateBase>()
            .InstancePerLifetimeScope();

            //controllers
            builder.RegisterControllers(typeFinder.GetAssemblies().ToArray());

            //data layer
            var dataSettingsManager  = new DataSettingsManager();
            var dataProviderSettings = dataSettingsManager.LoadSettings();

            builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>();
            builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency();
            builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency();
            if (dataProviderSettings != null && dataProviderSettings.IsValid())
            {
                var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings());
                var dataProvider          = efDataProviderManager.LoadDataProvider();
                dataProvider.InitConnectionFactory();

                builder.Register <IDbContext>(c => new VObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope();
            }
            else
            {
                builder.Register <IDbContext>(c => new VObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope();
            }

            //repository
            builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();

            #region services
            builder.RegisterType <PostService>().As <IPostService>().InstancePerLifetimeScope();
            #endregion
        }
Example #11
0
 public static void FillType(this Object target, Object source, Type sourceType, Type targetType, Dictionary <String, String> propertyNames, VConfig config)
 {
     try
     {
         foreach (var prop in propertyNames)
         {
             try
             {
                 var value = GetPropValue(source, sourceType, prop.Key);
                 SetPropValue(target, targetType, prop.Value, value);
             }
             catch (Exception)
             {
                 if (config.UseStrict)
                 {
                     throw;
                 }
             }
         }
     }
     catch (Exception)
     {
         if (config.UseStrict)
         {
             throw;
         }
     }
 }
Example #12
0
        public static void SyncCollection <TSource, TDestination>(this IEnumerable <TSource> sourceCollection, ICollection <TDestination> targetCollection, VConfig settings)
        {
            Type sourceType = typeof(TSource);
            Type targetType = typeof(TDestination);

            var cache         = new Api();
            var mappingFields = cache.CacheAttributes(sourceType, targetType, settings);

            foreach (var item in sourceCollection)
            {
                var instance = Activator.CreateInstance <TDestination>();
                instance.FillType(item, sourceType, targetType, mappingFields, settings);
                targetCollection.Add(instance);
            }
        }
Example #13
0
        public static void MapTo <TSource, TDestination>(this TSource parent, TDestination target, VConfig config)
        {
            try
            {
                Type sourceType = typeof(TSource);
                Type targetType = typeof(TDestination);

                var cache         = new Api();
                var mappingFields = cache.CacheAttributes(sourceType, targetType, config);
                target.FillType(parent, sourceType, targetType, mappingFields, config);
            }
            catch (Exception ex)
            {
                if (config.UseStrict)
                {
                    throw new Exception(String.Format("Source and Destination are incompactable : " + ex.Message));
                }
            }
        }