protected virtual void RegisterServices(IKernel kernel) { var stringNormalizer = new StringNormalizer(Path.Combine(rootPath, "PersianCharsMap.json")); kernel.Bind <IStringNormalizer>().ToConstant(stringNormalizer); var db = new MongoDbContext(ConfigurationManager.AppSettings["DBName"], ConfigurationManager.AppSettings["MongoConnString"], getUsernameFunc: () => HttpContext.Current?.User?.Identity?.Name, objectPreprocessor: stringNormalizer, setDictionaryConventionToArrayOfDocuments: ConfigurationManager.AppSettings["setDictionaryConventionToArrayOfDocuments"] == "true", customConnections: GetCustomConnections()); db.DefaultPreprocess = true; kernel.Bind <IDbContext>().ToConstant(db); kernel.Bind <IReadOnlyDbContext>().ToConstant(db); DataTableFactory tableFactory = new DataTableFactory(db); kernel.Bind <DataTableFactory>().ToConstant(tableFactory).InSingletonScope(); string provincePrefix = ConfigurationManager.AppSettings["Province"]; if (provincePrefix != null) { var province = db.FindFirst <Province>(p => p.Prefix == provincePrefix); kernel.Bind <Province>().ToConstant(province); } }