Example #1
0
 /// <summary>
 /// Загрузка модулей Ninject и регистрация сервисов.
 /// </summary>
 /// <param name="kernel">Ядро Ninject.</param>
 private static void RegisterServices(IKernel kernel)
 {
     kernel.Bind <IUserRepository>().To <MongoUserRepository>().InSingletonScope();
     kernel.Bind <IRevisionRepository>().To <MongoRevisionRepository>().InSingletonScope();
     kernel.Bind <IMongoDatabase>().ToMethod(c => MongoHelper.GetMongoDb()).InSingletonScope();
     kernel.BindHttpFilter <BasicAuthenticationFilter>(FilterScope.Controller).WhenControllerHas <BasicAuthenticationAttribute>();
     kernel.BindHttpFilter <KnownExceptionFilterAttribute>(FilterScope.Controller);
     kernel.BindHttpFilter <RewriteResponseCodeFilterAttribute>(FilterScope.Controller);
 }
 /// <summary>
 /// Загрузка модулей Ninject и регистрация сервисов.
 /// </summary>
 /// <param name="kernel">Ядро Ninject.</param>
 private static void RegisterServices(IKernel kernel)
 {
     kernel.Bind<IUserRepository>().To<MongoUserRepository>().InSingletonScope();
     kernel.Bind<IRevisionRepository>().To<MongoRevisionRepository>().InSingletonScope();
     kernel.Bind<IMongoDatabase>().ToMethod(c=>MongoHelper.GetMongoDb()).InSingletonScope();
     kernel.BindHttpFilter<BasicAuthenticationFilter>(FilterScope.Controller).WhenControllerHas<BasicAuthenticationAttribute>();
     kernel.BindHttpFilter<KnownExceptionFilterAttribute>(FilterScope.Controller);
     kernel.BindHttpFilter<RewriteResponseCodeFilterAttribute>(FilterScope.Controller);
 }
Example #3
0
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind <DbContext>().To <ModelPersistanceContext>().InRequestScope().
            WithConstructorArgument(typeof(string), "name=ModelContext");
            kernel.Bind(typeof(IRepository <>)).To(typeof(EntityFrameworkRepository <>)).InRequestScope();
            kernel.Bind <IEntityMapper>().To <EntityMapper>().InRequestScope();
            kernel.Bind <IUnitOfWork>().To <NonTransactionalUnitOfWork>();

            kernel.BindHttpFilter <UnitOfWorkActionFilter>(FilterScope.Controller).WhenControllerHas <UnitOfWorkAttribute>();
            kernel.BindHttpFilter <UnitOfWorkActionFilter>(FilterScope.Action).WhenActionMethodHas <UnitOfWorkAttribute>();
        }
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind <IModelFactory>().To <ModelFactory>();
            kernel.Bind <IUserRoleManager>().To <UserRoleManager>();
            kernel.Bind <IUserManager>().To <UserManager>();
            kernel.Bind <IAuthenticationManagement>().To <AuthenticationManagement>();

            kernel.Bind <ModelFactory>().To <ModelFactory>();
            //kernel.Bind<IAuthenticationRepository>().To<AuthenticationRepository>();
            kernel.Bind <ApplicationUserManager>().To <ApplicationUserManager>();
            kernel.Bind <ApplicationDbContext>().To <ApplicationDbContext>();
            kernel.Bind <IUserStore <ApplicationUser> >().To <UserStore <ApplicationUser> >().WithConstructorArgument("context", kernel.Get <ApplicationDbContext>());
            kernel.Bind <IUserManagement>().To <UserManagement>();
            kernel.Bind <IAuthorizationManager>().To <BusinessManager>();
            kernel.Bind <IBusinessManager>().To <BusinessManager>();
            kernel.Bind <IDataAccess>().To <DataAccess>();
            kernel.Bind <IValidationHelper>().To <ValidationHelper>();
            kernel.Bind <IUtilityManager>().To <UtilityManager>();

            kernel.BindHttpFilter(x => new AuthorizationActionFilter(x.Inject <IAuthorizationManager>()), FilterScope.Action).WhenActionMethodHas <AuthorizationActionAttribute>();

            kernel.Bind <IRoleStore <IdentityRole, string> >().To <RoleStore <IdentityRole, string, IdentityUserRole> >().WithConstructorArgument("context", kernel.Get <ApplicationDbContext>());
            kernel.Bind <RoleManager <IdentityRole> >().To <RoleManager <IdentityRole> >();
            kernel.Bind <ApplicationRoleManager>().To <ApplicationRoleManager>();
            kernel.Bind <IRoleManagement>().To <RoleManagement>();
        }
Example #5
0
 /// <summary>
 /// Load your modules or register your services here!
 /// </summary>
 /// <param name="kernel">The kernel.</param>
 private static void RegisterServices(IKernel kernel)
 {
     //kernel.Bind<ILog>().ToMethod(GetLogger);
     //kernel.BindHttpFilter<LogFilter>(FilterScope.Controller)
     //    .WithConstructorArgument("logLevel", Level.Info);
     kernel.BindHttpFilter <AplatAuthorize>(FilterScope.Controller);
     kernel.Bind <IPermissaoService>().To <PermissaoService>().InRequestScope();
     kernel.Bind <IControleAcessoFactory>().ToFactory().InRequestScope();
     kernel.Bind <IControleAcesso>().ToProvider <CustomStrategyProvider>().InRequestScope();
 }
Example #6
0
        private static void RegisterAuthorizationBindings(IKernel kernel)
        {
            kernel.Bind <ITokenService>()
            .To <JWTService>();

            kernel.Bind <IAuthorizationService>()
            .To <AuthorizationService>();

            kernel.BindHttpFilter <AuthorizeActionFilter>(FilterScope.Action)
            .WhenActionMethodHas <JWTAuthorizeAttribute>();
        }
Example #7
0
        public static void Register(IKernel kernel)
        {
            kernel.Bind <IFilterProvider>().To <NinjectFilterProvider>();

            kernel.Load <HttpTokenAuthenticationModule>();

            kernel.Bind <IAuthorizationFilter>().To <HttpTokenAuthenticationFilter>();

            kernel.BindHttpFilter <HttpTokenAuthenticationFilter>(FilterScope.Controller)
            .WhenControllerHas <HttpTokenAuthenticationAttribute>()
            .WithPropertyValue("Auth", kernel.Get <IAuthenticationService>());

            kernel.BindHttpFilter <HttpTokenAuthenticationFilter>(FilterScope.Action)
            .WhenActionMethodHas <HttpTokenAuthenticationAttribute>()
            .WithPropertyValue("Auth", kernel.Get <IAuthenticationService>());

            //kernel.BindFilter<MvcTokenAuthenticationFilter>(System.Web.Mvc.FilterScope.Controller, 0)
            //    .WhenControllerHas<MvcTokenAuthenticationAttribute>();

            //kernel.BindFilter<MvcTokenAuthenticationFilter>(System.Web.Mvc.FilterScope.Action, 0)
            //    .WhenActionMethodHas<MvcTokenAuthenticationAttribute>();
        }
Example #8
0
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            kernel.Load <CoreModule>();
            kernel.Load <ModelModule>();
            kernel.Load <WebSettingsModule>();
            kernel.Load <ServicesModule>();
            kernel.Load <CallPlanRuntimeModule>();
            kernel.Load <StatisticsBusinessModule>();
            kernel.Load <ToggleServiceModule>();
            kernel.Load <CallRecordingServiceWriteableModule>();
            kernel.Load <InteractionPlanCoreModule>();

            kernel.Bind <ILogger>().ToMethod(l => kernel.Get <ILoggerFactory>().GetLogger()).InSingletonScope();

            kernel.Bind <IDbAccessConfiguration>().To <DbAccessConfig>();

            kernel.Bind <IHttpRequest>().ToMethod(ctx => new NewVoiceMedia.Common.HttpRequestWrapper(() => HttpContext.Current.Request)).InRequestScope();

            kernel.Bind <IInteractionBaseMapper>().To <InteractionBaseMapper>();
            kernel.Bind <IInvocationMapper>().To <InvocationMapper>();
            kernel.Bind <IInvokeRouteService>().To <InvokeRouteService>();
            kernel.Bind <IInvokeRouteServiceMetricRecorder>().To <InvokeRouteServiceMetricRecorder>();
            kernel.Bind <IApiProviderRegistrationService>().To <ApiProviderRegistrationService>();
            kernel.Bind <IInteractionRoutingService>().To <InteractionRoutingService>();

            kernel.BindHttpFilter <KongAuthenticationFilter>(FilterScope.Controller)
            .WhenControllerHas <KongAuthenticationAttribute>()
            .WithConstructorArgumentFromControllerAttribute <KongAuthenticationAttribute>("requiredScope", a => a.RequiredScope);

            kernel.BindHttpFilter <AccountAuthenticationFilter>(FilterScope.Controller)
            .WhenControllerHas <AccountAuthenticationAttribute>();

            kernel.BindHttpFilter <FeatureEnabledAuthorizationFilter>(FilterScope.Controller)
            .WhenControllerHas <RequireFeatureEnabledAttribute>()
            .WithConstructorArgumentFromControllerAttribute <RequireFeatureEnabledAttribute>("requiredFeature", a => a.RequiredFeatureType);

            kernel.Bind <NccoQueue>().ToSelf().InSingletonScope();
        }
Example #9
0
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            //Here you can easily switch between repository implementaitons. Thanks to Dependency inversion principle.
            //kernel.Bind<IAuthenticationRepository>().To<RepositoryConcrete.AuthenticationRepository>();
            kernel.Bind <IAuthenticationRepository>().To <RepositoryConcreteInMemory.AuthenticationRepository>();


            kernel.Bind <IRegistrationRepository <Person> >().To <RepositoryConcreteInMemory.RegistrationRepository <Person> >();


            kernel.Bind <ISession>().To <BusinessConcrete.Session>();
            kernel.Bind <IClassroomFactory>().To <BusinessConcrete.Factories.ClassroomFactory>();

            //this is to enable DI in action filters. Basically we bind the filter to an empty attribute class.
            kernel.BindHttpFilter <ValidateTokenFilter>(FilterScope.Action).WhenActionMethodHas <ValidateTokenAttribute>();
        }
        //public object GetService(Type serviceType)
        //{
        //    return kernel.TryGet(serviceType);
        //}

        //public IEnumerable<object> GetServices(Type serviceType)
        //{
        //    return kernel.GetAll(serviceType);
        //}

        private void AddBindings()
        {
            //Mock<IRepository> mock = new Mock<IRepository>();

            IMailApi <ApplicationClass, Domain, Account, Message> api = new HMSApi();

            IdentityDbContext <ApplicationUser> identityContext = new ApplicationDbContext();

            IRepository repo = new EFRepository();

            kernel.Bind <IRepository>().To <EFRepository>();
            kernel.BindHttpFilter <SessionAuthorizeAttribute>(FilterScope.Controller).WhenControllerHas <SessionAuthorizeAttribute>().WithConstructorArgument("repo", repo);


            //EmailSettings emailSettings = new EmailSettings
            //{
            //    WriteAsFile = bool.Parse(ConfigurationManager.AppSettings["Email.WriteAsFile"] ?? "false")
            //};

            //kernel.Bind<IOrderProcessor>().To<EmailOrderProcessor>().WithConstructorArgument("settings", emailSettings);
        }
Example #11
0
 /// <summary>
 /// Загрузка модулей Ninject и регистрация сервисов.
 /// </summary>
 /// <param name="kernel">Ядро Ninject.</param>
 private static void RegisterServices(IKernel kernel)
 {
     kernel.Bind <IMongoDBStorage>().ToMethod(c => GetMongoDbStorage()).InSingletonScope();
     kernel.BindHttpFilter <BasicAuthenticationFilter>(FilterScope.Controller).WhenControllerHas <BasicAuthenticationAttribute>();
 }
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind<IBookingRequestRepository>().To<BookingRequestRepository>();
            kernel.Bind<IBookingMainRepository>().To<BookingMainRepository>();
            kernel.Bind<ITransactionRepository>().To<TransactionRepository>();
            kernel.Bind<ILog>().ToMethod(context => LogManager.GetLogger(context.Request.Target.Member.ReflectedType));
            kernel.Bind<IEmailNotification>().To<EmailNotification>();

            kernel.BindHttpFilter<BookingApiAuthorizationFilterAttribute>(FilterScope.Global).WhenControllerHas<BookingApiAuthorizationFilterAttribute>();
        }
Example #13
0
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            kernel.Bind <NsiContext>().To <NsiContext>().InRequestScope();
            kernel.Bind <ILoggerAdapter>().To <NLogAdapter>().InSingletonScope();

            // Repositories
            kernel.Bind <IPermissionRepository>().To <PermissionRepository>().InRequestScope();
            kernel.Bind <IModuleRepository>().To <ModuleRepository>().InRequestScope();
            kernel.Bind <IUserRepository>().To <UserRepository>().InRequestScope();
            kernel.Bind <IDeviceTypeRepository>().To <DeviceTypeRepository>().InRequestScope();
            kernel.Bind <IDeviceRepository>().To <DeviceRepository>().InRequestScope();
            kernel.Bind <IIncidentRepository>().To <IncidentRepository>().InRequestScope();
            kernel.Bind <IIncidentSettlementRepository>().To <IncidentSettlementRepository>().InRequestScope();
            kernel.Bind <IIncidentTypeRepository>().To <IncidentTypeRepository>().InRequestScope();
            kernel.Bind <IIncidentPriorityRepository>().To <IncidentPriorityRepository>().InRequestScope();
            kernel.Bind <IIncidentWorkOrderRepository>().To <IncidentWorkOrderRepository>().InRequestScope();
            kernel.Bind <IIncidentStatusRepository>().To <IncidentStatusRepository>().InRequestScope();
            kernel.Bind <IDevicePingRepository>().To <DevicePingRepository>().InRequestScope();
            kernel.Bind <IRoleRepository>().To <RoleRepository>().InRequestScope();
            kernel.Bind <ITenantRepository>().To <TenantRepository>().InRequestScope();
            kernel.Bind <ILanguageRepository>().To <LanguageRepository>().InRequestScope();
            kernel.Bind <IRolePermissionRepository>().To <RolePermissonRepository>().InRequestScope();
            kernel.Bind <IRoleMemberRepository>().To <RoleMemberRepository>().InRequestScope();
            kernel.Bind <IRuleRepository>().To <RuleRepository>().InRequestScope();
            kernel.Bind <IDeviceActionRepository>().To <DeviceActionRepository>().InRequestScope();
            kernel.Bind <IDevicePropertyRepository>().To <DevicePropertyRepository>().InRequestScope();

            kernel.Bind <IDocumentTypeRepository>().To <DocumentTypeRepository>().InRequestScope();
            kernel.Bind <IGeneratedDocumentRepository>().To <GeneratedDocumentRepository>().InRequestScope();
            kernel.Bind <IEmailMessageRepository>().To <EmailMessageRepository>().InRequestScope();
            kernel.Bind <IEmailRecipientRepository>().To <EmailRecipientRepository>().InRequestScope();
            kernel.Bind <IEmailRecipientTypeRepository>().To <EmailRecipientTypeRepository>().InRequestScope();
            kernel.Bind <IAttachmentRepository>().To <AttachmentRepository>().InRequestScope();
            kernel.Bind <INotificationRepository>().To <NotificationRepository>().InRequestScope();
            kernel.Bind <INotificationUserRepository>().To <NotificationUserRepository>().InRequestScope();
            kernel.Bind <INotificationStatusRepository>().To <NotificationStatusRepository>().InRequestScope();
            kernel.Bind <ISmsRepository>().To <SmsRepository>().InRequestScope();
            kernel.Bind <INotificationTypeRepository>().To <NotificationTypeRepository>().InRequestScope();
            kernel.Bind <IWebNotificationRepository>().To <WebNotificationRepository>().InRequestScope();
            kernel.Bind <IDocumentRepository>().To <DocumentRepository>().InRequestScope();
            kernel.Bind <IFileTypeRepository>().To <FileTypeRepository>().InRequestScope();
            kernel.Bind <IStorageTypeRepository>().To <StorageTypeRepository>().InRequestScope();

            kernel.Bind <IFolderRepository>().To <FolderRepository>().InRequestScope();
            kernel.Bind <ITemplateRepository>().To <TemplateRepository>().InRequestScope();
            kernel.Bind <ITemplateVersionRepository>().To <TemplateVersionRepository>().InRequestScope();

            // Business
            kernel.Bind <IPermissionManipulation>().To <PermissionManipulation>().InRequestScope();
            kernel.Bind <IModuleManipulation>().To <ModuleManipulation>().InRequestScope();
            kernel.Bind <IUserManipulation>().To <UserManipulation>().InRequestScope();
            kernel.Bind <IDeviceTypeManipulation>().To <DeviceTypeManipulation>().InRequestScope();
            kernel.Bind <IDeviceManipulation>().To <DeviceManipulation>().InRequestScope();
            kernel.Bind <IIncidentManipulation>().To <IncidentManipulation>().InRequestScope();
            kernel.Bind <IIncidentSettlementManipulation>().To <IncidentSettlementManipulation>().InRequestScope();
            kernel.Bind <IGeneratedDocumentLogger>().To <GeneratedDocumentLogger>().InRequestScope();
            kernel.Bind <IFileGenerator>().To <FileGenerator>().InRequestScope();
            kernel.Bind <IDocumentGenerator>().To <DocumentGenerator>().InRequestScope();
            kernel.Bind <IPdfGenerator>().To <PdfGenerator>().InRequestScope();
            kernel.Bind <IHtmlGenerator>().To <HtmlGenerator>().InRequestScope();
            kernel.Bind <IOdtGenerator>().To <OdtGenerator>().InRequestScope();
            kernel.Bind <IDocxGenerator>().To <DocxGenerator>().InRequestScope();
            kernel.Bind <IHtmlGeneratorHelper>().To <HtmlGeneratorHelper>().InRequestScope();
            kernel.Bind <IIncidentTypeManipulation>().To <IncidentTypeManipulation>().InRequestScope();
            kernel.Bind <IIncidentPriorityManipulation>().To <IncidentPriorityManipulation>().InRequestScope();
            kernel.Bind <IIncidentWorkOrderManipulation>().To <IncidentWorkOrderManipulation>().InRequestScope();
            kernel.Bind <IIncidentStatusManipulation>().To <IncidentStatusManipulation>().InRequestScope();
            kernel.Bind <IDevicePingManipulation>().To <DevicePingManipulation>().InRequestScope();
            kernel.Bind <IPingDeviceManipulation>().To <PingDeviceManipulation>().InRequestScope();
            kernel.Bind <IRoleManipulation>().To <RoleManipulation>().InRequestScope();
            kernel.Bind <IRuleManipulation>().To <RuleManipulation>().InRequestScope();
            kernel.Bind <IDeviceActionManipulation>().To <DeviceActionManipulation>().InRequestScope();
            kernel.Bind <IDevicePropertyManipulation>().To <DevicePropertyManipulation>().InRequestScope();


            kernel.Bind <IEmailMessageManipulation>().To <EmailMessageManipulation>().InRequestScope();
            kernel.Bind <IEmailRecipientManipulation>().To <EmailRecipientManipulation>().InRequestScope();
            kernel.Bind <IEmailRecipientTypeManipulation>().To <EmailRecipientTypeManipulation>().InRequestScope();
            kernel.Bind <IAttachmentManipulation>().To <AttachmentManipulation>().InRequestScope();
            kernel.Bind <INotificationManipulation>().To <NotificationManipulation>().InRequestScope();
            kernel.Bind <INotificationUserManipulation>().To <NotificationUserManipulation>().InRequestScope();
            kernel.Bind <INotificationStatusManipulation>().To <NotificationStatusManipulation>().InRequestScope();
            kernel.Bind <ISmsManipulation>().To <SmsManipulation>().InRequestScope();
            kernel.Bind <INotificationTypeManipulation>().To <NotificationTypeManipulation>().InRequestScope();
            kernel.Bind <IWebNotificationManipulation>().To <WebNotificationManipulation>().InRequestScope();
            kernel.Bind <IDocumentManipulation>().To <DocumentManipulation>().InRequestScope();
            kernel.Bind <IFileTypeManipulation>().To <FileTypeManipulation>().InRequestScope();
            kernel.Bind <IStorageTypeManipulation>().To <StorageTypeManipulation>().InRequestScope();
            kernel.Bind <ITenantManipulation>().To <TenantManipulation>().InRequestScope();
            kernel.Bind <ILanguageManipulation>().To <LanguageManipulation>().InRequestScope();
            kernel.Bind <IRolePermissionManipulation>().To <RolePermissionManipulation>().InRequestScope();
            kernel.Bind <IRoleMemberManipulation>().To <RoleMemberManipulation>().InRequestScope();

            kernel.Bind <IFolderManipulation>().To <FolderManipulation>().InRequestScope();
            kernel.Bind <ITemplateManipulation>().To <TemplateManipulation>().InRequestScope();
            kernel.Bind <ITemplateVersionManipulation>().To <TemplateVersionManipulation>().InRequestScope();
            kernel.Bind <ITemplateGenerator>().To <TemplateGenerator>().InRequestScope();
            kernel.Bind <IExportTemplateManipulation>().To <ExportTemplateManipulation>().InRequestScope();

            // RabbitMq EventBus Bindings
            var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
            {
                var host = cfg.Host(new Uri(ConfigurationManager.AppSettings["rabbitMQHostUri"].ToString()), h =>
                {
                    h.Username(ConfigurationManager.AppSettings["rabbitMQUsername"].ToString());
                    h.Password(ConfigurationManager.AppSettings["rabbitMQPassword"].ToString());
                });

                // Define message queues and bind consumers to queue here
                cfg.ReceiveEndpoint(host, "message_log_queue", e =>
                {
                    e.Consumer <LogMessageReceivedConsumer>();
                });

                cfg.ReceiveEndpoint(host, "device_ping_queue", e =>
                {
                    e.Consumer <DevicePingReceivedConsumer>();
                });

                cfg.ReceiveEndpoint(host, "ping_device_queue", e =>
                {
                    e.Consumer <PingDeviceReceivedConsumer>();
                });
            });

            kernel.Bind <IBusControl, IPublishEndpoint>().ToMethod(c =>
            {
                return(busControl);
            })
            .InSingletonScope();


            kernel.Bind <IBus>().ToProvider(new CallbackProvider <IBus>(x => x.Kernel.Get <IBusControl>()));

            busControl.Start();

            DevicePingListener.MakeInstance(
                (IRuleRepository)kernel.GetService(typeof(IRuleRepository)),
                (IIncidentRepository)kernel.GetService(typeof(IIncidentRepository)),
                (IDevicePingRepository)kernel.GetService(typeof(IDevicePingRepository)),
                (IIncidentTypeRepository)kernel.GetService(typeof(IIncidentTypeRepository))
                );

            // TODO: Do this better :)
            kernel.BindHttpFilter <HandleExceptionFilterAttribute>(FilterScope.Global).WithConstructorArgument("logger", kernel.Get <ILoggerAdapter>());

            kernel.Load(Assembly.GetExecutingAssembly());
            //kernel.Bind(x => x.FromAssembliesMatching("dll name").SelectAllClasses().BindAllInterfaces();
        }
 /// <summary>
 /// Загрузка модулей Ninject и регистрация сервисов.
 /// </summary>
 /// <param name="kernel">Ядро Ninject.</param>
 private static void RegisterServices(IKernel kernel)
 {
     kernel.Bind<IMongoDBStorage>().ToMethod(c => GetMongoDbStorage()).InSingletonScope();
     kernel.BindHttpFilter<BasicAuthenticationFilter>(FilterScope.Controller).WhenControllerHas<BasicAuthenticationAttribute>();
 }
Example #15
0
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            if (Settings.EnableServices)
            {
                kernel.Bind <IAffiliateService>().To <AffiliateServiceClient>();
                kernel.Bind <IBusinessPlanService>().To <BusinessPlanServiceClient>();
                kernel.Bind <IConfigurationService>().To <ConfigurationServiceClient>();
                kernel.Bind <ICmsService>().To <CmsServiceClient>();
                kernel.Bind <IEmailService>().To <EmailServiceClient>();
                kernel.Bind <IFileService>().To <FileServiceClient>();
                kernel.Bind <IGeoService>().To <GeoServiceClient>();
                kernel.Bind <IGroupService>().To <GroupServiceClient>();
                kernel.Bind <ILogService>().To <LogServiceClient>();
                kernel.Bind <IPlanningService>().To <PlanningServiceClient>();
                kernel.Bind <IReportService>().To <ReportServiceClient>();
                kernel.Bind <IRuleService>().To <RuleServiceClient>();
                kernel.Bind <ISurveyService>().To <SurveyServiceClient>();
                kernel.Bind <IUserService>().To <UserServiceClient>();

                kernel.Bind <ILogger>().To <ServiceLogger>();
            }
            else
            {
                kernel.Bind <ISurveyRepository>().To <SurveyRepository>();
                kernel.Bind <IUserRepository>().To <UserRepository>();
                kernel.Bind <IBusinessPlanRepository>().To <BusinessPlanRepository>();
                kernel.Bind <ICmsRepository>().To <CmsRepository>();
                kernel.Bind <IFileRepository>().To <FileRepository>();
                kernel.Bind <IGeoRepository>().To <GeoRepository>();
                kernel.Bind <IServicesRepository>().To <ServicesRepository>();
                kernel.Bind <IRulesRepository>().To <RulesRepository>();
                kernel.Bind <IPlanningRepository>().To <PlanningRepository>();
                kernel.Bind <ILogRepository>().To <LogRepository>();
                kernel.Bind <IGroupRepository>().To <GroupRepository>();
                kernel.Bind <IReportRepository>().To <ReportRepository>();
                kernel.Bind <IAffiliateRepository>().To <AffiliateRepository>();
                kernel.Bind <IConfigurationRepository>().To <ConfigurationRepository>();

                kernel.Bind <IAffiliateService>().To <AffiliateService>();
                kernel.Bind <IBusinessPlanService>().To <BusinessPlanService>();
                kernel.Bind <IConfigurationService>().To <ConfigurationService>();
                kernel.Bind <ICmsService>().To <CmsService>();
                kernel.Bind <IEmailService>().To <EmailService>();
                kernel.Bind <IFileService>().To <FileService>();
                kernel.Bind <IGeoService>().To <GeoService>();
                kernel.Bind <IGroupService>().To <GroupService>();
                kernel.Bind <ILogService>().To <LogService>();
                kernel.Bind <IPlanningService>().To <PlanningService>();
                kernel.Bind <IReportService>().To <ReportService>();
                kernel.Bind <IRuleService>().To <RuleService>();
                kernel.Bind <ISurveyService>().To <SurveyService>();
                kernel.Bind <IUserService>().To <UserService>();

                kernel.Bind <ILogger>().To <EntityFrameworkLogger>();
            }

            // Filters
            kernel.BindHttpFilter <HandleExceptionsFilter>(System.Web.Http.Filters.FilterScope.Controller).WhenControllerHas <HandleExceptionsAttribute>();

            // Miscellaneous
            kernel.Bind <ICacheStorage>().To <HttpContextCacheAdapter>();
        }