Beispiel #1
0
        private void RegisterAll(ContainerBuilder builder)
        {
            // repo configuration does not exist
            // fallback to defauls sql server repository
            if (_repoConf == null)
            {
                builder.Register((c, p) =>
                                 new SqlServerRepository(p.Named <string>("connectionId")))
                .As <IRepository>();
            }
            else
            {
                if (_repoConf.Type == RepositoryType.SqlDb)
                {
                    SqlConfig.Initialize(_repoConf);
                    SqlConfig.UseModel <Product>(new DbProducts());
                    SqlConfig.UseModel <Category>(new DbCategories());

                    builder.Register((c, p) => new SqlServerRepository(_repoConf.Id))
                    .As <IRepository>();
                }
                else
                {
                    FileConfig.UseModel <Product>(HostingEnvironment.MapPath(Path.Combine("~/App_Data/files", "products.json")));
                    FileConfig.UseModel <Category>(HostingEnvironment.MapPath(Path.Combine("~/App_Data/files", "categories.json")));

                    builder.RegisterType <FileRepository>()
                    .As <IRepository>();
                }
            }
            // storage
            // Configurable switch between db and file source of products
            //if ((temp = ConfigurationManager.GetSection("repoConfig")) != null)
            //{
            //    conf = temp as RepositoryConfig;
            //    if (conf.Type == RepositoryType.SqlDb)
            //    {
            //        SqlConfig.Initialize(conf);
            //        SqlConfig.UseModel<Product>(new DbProducts());
            //        SqlConfig.UseModel<Category>(new DbCategories());

            //        builder.Register((c, p) => new SqlServerRepository(conf.Id))
            //            .As<IRepository>();
            //    }
            //    else
            //    {
            //        FileConfig.UseModel<Product>(HostingEnvironment.MapPath(Path.Combine("~/App_Data/files", "products.json")));
            //        FileConfig.UseModel<Category>(HostingEnvironment.MapPath(Path.Combine("~/App_Data/files", "categories.json")));

            //        builder.RegisterType<FileRepository>()
            //            .As<IRepository>();
            //    }
            //}
            //else
            //{
            //    builder.Register((c, p) =>
            //            new SqlServerRepository(p.Named<string>("connectionId")))
            //        .As<IRepository>();
            //}
        }