예제 #1
0
        /// <summary>
        /// Configure the data system to map requests for User type onto TUser via Identity mechanisms
        /// </summary>
        public virtual void InitialiseDataApi()
        {
            ContentTypeHierarchy.RegisterType(typeof(User));
            ContentTypeHierarchy.RegisterType(typeof(TUser));

            var sys = LyniconSystem.Instance;

            var extender = LyniconSystem.Instance.Extender;

            extender.RegisterForExtension(typeof(User));
            //extender.RegisterExtensionType(typeof(LyniconIdentityUser));

            var efDSFactory     = new EFDataSourceFactory <TContext>(sys);
            var appDbRepository = new BasicRepository(sys, efDSFactory);

            efDSFactory.DbSetSelectors[typeof(TUser)] = db => db.Users.AsNoTracking();
            efDSFactory.ContextLifetimeMode           = ContextLifetimeMode.PerCall;

            // We DON'T want to register TUser with CompositeTypeManager
            var basicCollator = new BasicCollator(sys);

            Collator.Instance.Register(typeof(TUser), new BasicCollator(sys));
            Repository.Instance.Register(typeof(TUser), appDbRepository);

            // override existing collator registration for User
            var identityAdaptorCollator = new IdentityAdaptorCollator <TUser, TUserManager>(sys);

            Collator.Instance.Register(typeof(User), identityAdaptorCollator);
            //Repository.Instance.Register(typeof(User), new BasicRepository());
        }
        /// <summary>
        /// Configure the data system to map requests for User type onto TUser via Identity mechanisms
        /// </summary>
        public virtual void InitialiseDataApi()
        {
            ContentTypeHierarchy.RegisterType(typeof(TUser));
            CompositeTypeManager.Instance.RegisterExtensionType(typeof(LyniconIdentityUser));

            var efDSFactory     = new EFDataSourceFactory <TContext>();
            var appDbRepository = new BasicRepository(efDSFactory);

            efDSFactory.DbSetSelectors[typeof(TUser)] = db => db.Users.Include(u => u.Roles);
            efDSFactory.ContextLifetimeMode           = ContextLifetimeMode.PerCall;

            // We DON'T want to register TUser with CompositeTypeManager
            Collator.Instance.Register(typeof(TUser), new BasicCollator(Repository.Instance));
            Repository.Instance.Register(typeof(TUser), appDbRepository);

            // override existing collator registration for User
            var identityAdaptorCollator = new IdentityAdaptorCollator <TUser, TUserManager>(GetUserManager);

            identityAdaptorCollator.Repository = Repository.Instance;
            Collator.Instance.Register(typeof(User), identityAdaptorCollator);
        }