コード例 #1
0
 public ApiRoleAttribute(string[] roles)
 {
     _roles = roles;
     DbSet  = new CvManagementDbContext();
 }
コード例 #2
0
 public ApiRoleAttribute(UserRoles role)
 {
     _role      = role;
     _dbContext = new CvManagementDbContext();
 }
コード例 #3
0
 public UserDescriptionDomain(DbContext dbContext, IDbService dbService)
 {
     _dbContext = (CvManagementDbContext)dbContext;
     _dbService = dbService;
 }
コード例 #4
0
 public ResponsibilityDomain(DbContext dbContext, IDbService dbService)
 {
     _dbContext = (CvManagementDbContext)dbContext;
     _dbService = dbService;
 }
コード例 #5
0
        public static void Register(HttpConfiguration httpConfiguration)
        {
            var builder = new ContainerBuilder();

            builder.RegisterApiControllers()
            .WithAttributeFiltering();

            #region Automapper

            var oMapperConfigurationExpression = new MapperConfigurationExpression();
            oMapperConfigurationExpression.CreateMap <User, ProfileModel>();
            oMapperConfigurationExpression.CreateMap <ProfileModel, User>();
            oMapperConfigurationExpression.CreateMap <SkillCategory, SkillCategoryViewModel>();
            oMapperConfigurationExpression.CreateMap <IQueryable <SkillCategory>, IQueryable <SkillCategoryViewModel> >();
            //var autoMapperOptions = new MapperConfiguration(options =>
            //{
            //    options.CreateMap<User, ProfileModel>();
            //    options.CreateMap<ProfileModel, User>();
            //    options.CreateMap<SkillCategory, SkillCategoryViewModel>();
            //    options.CreateMap<IQueryable<SkillCategory>, IQueryable<SkillCategoryViewModel>>();
            //});

            var autoMapperOptions = new MapperConfiguration(oMapperConfigurationExpression);
            var mapper            = new Mapper(autoMapperOptions);
            Mapper.Initialize(oMapperConfigurationExpression);
            builder.RegisterInstance(mapper)
            .As <IMapper>()
            .SingleInstance();

            #endregion

            #region Controllers & hubs

            // Controllers & hubs
            builder.RegisterApiControllers(typeof(Startup).Assembly);
            builder.RegisterWebApiFilterProvider(httpConfiguration);

            #endregion

            #region Database context

#if !USE_IN_MEMORY
            builder.Register(c =>
            {
                var dbContextOptionsBuilder = new DbContextOptionsBuilder <CvManagementDbContext>();
                var connectionString        = ConfigurationManager.ConnectionStrings["CvManagement"].ConnectionString;
                dbContextOptionsBuilder.UseSqlServer(connectionString)
                .EnableSensitiveDataLogging()
                .UseLoggerFactory(new LoggerFactory().AddConsole(
                                      (category, level) => level == LogLevel.Information &&
                                      category == DbLoggerCategory.Database.Command.Name, true));

                var dbContext = new CvManagementDbContext(dbContextOptionsBuilder.Options);
                return(dbContext);
            })
            .As <DbContext>()
            .InstancePerLifetimeScope();
#else
            builder.Register(c =>
            {
                var dbContextOptionsBuilder = new DbContextOptionsBuilder <CvManagementInMemoryDbContext>();
                dbContextOptionsBuilder.UseInMemoryDatabase(nameof(CvManagementInMemoryDbContext))
                .ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning));

                var dbContext = new CvManagementInMemoryDbContext(dbContextOptionsBuilder.Options);
                dbContext.Seed();
                return(dbContext);
            })
            .As <DbContext>()
            .SingleInstance();
#endif
            #endregion

            #region Model

            var appSettings = FindAppSettings();
            builder.RegisterInstance(appSettings);

            var appPaths = FindAppPathSettings();
            builder.RegisterInstance(appPaths);

            #endregion

            #region Services

            builder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();
            builder.RegisterType <UnitOfWork>().As <IUnitOfWork>().InstancePerLifetimeScope();
            builder.RegisterType <DbService>().As <IDbService>().InstancePerLifetimeScope();
            builder.RegisterType <ProfileService>().As <IProfileService>().InstancePerLifetimeScope();
            builder.RegisterType <GoogleCaptchaService>().As <ICaptchaService>().InstancePerLifetimeScope();
            builder.RegisterType <TokenService>().As <ITokenService>().InstancePerLifetimeScope();
            builder.RegisterType <FileService>().As <IFileService>().InstancePerLifetimeScope();
            builder.Register(c => new HttpClient()).As <HttpClient>().SingleInstance();
            builder.RegisterHttpRequestMessage(httpConfiguration);
            builder.Register(x => new UrlHelper(x.Resolve <HttpRequestMessage>()));
            builder.RegisterType <ProfileCacheService>().As <IValueCacheService <string, ProfileModel> >().SingleInstance()
            .WithAttributeFiltering();

            RegisterRedisCachingServices(ref builder);

            // Api services.
            builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope();
            builder.RegisterType <UserDescriptionService>().As <IUserDescriptionService>().InstancePerLifetimeScope();
            builder.RegisterType <ProjectService>().As <IProjectService>().InstancePerLifetimeScope();
            builder.RegisterType <HobbyService>().As <IHobbyService>().InstancePerLifetimeScope();
            builder.RegisterType <SkillService>().As <ISkillService>().InstancePerLifetimeScope();
            builder.RegisterType <ProjectSkill>().As <IProjectSkillService>().InstancePerLifetimeScope();
            builder.RegisterType <ProjectResponsibilityService>().As <IProjectResponsibilityService>().InstancePerLifetimeScope();
            builder.RegisterType <ResponsibilityService>().As <IResponsibilityService>().InstancePerLifetimeScope();
            builder.RegisterType <SkillCategoryService>().As <ISkillCategoryService>().InstancePerLifetimeScope();

            #endregion

            var containerBuilder = builder.Build();
            httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(containerBuilder);
        }
コード例 #6
0
 public SkillCategoryDomain(DbContext dbContext, IDbService dbService)
 {
     _dbContext = (CvManagementDbContext)dbContext;
     _dbService = dbService;
 }
コード例 #7
0
 public ProjectSkillDomain(DbContext dbContext, IDbService dbService)
 {
     _dbContext = (CvManagementDbContext)dbContext;
     _dbService = dbService;
 }