public NorthwindUnitOfWorkRedis() : base(LibraryHelper.AppSettings <string>("Redis.Northwind")) { Domain = "Northwind"; ModelConfig <Category> .Id(x => x.CategoryId); ModelConfig <CustomerCustomerDemo> .Id(x => x.CustomerId); ModelConfig <CustomerDemographic> .Id(x => x.CustomerTypeId); ModelConfig <Customer> .Id(x => x.CustomerId); ModelConfig <Employee> .Id(x => x.EmployeeId); ModelConfig <EmployeeTerritory> .Id(x => x.EmployeeId); ModelConfig <OrderDetail> .Id(x => x.OrderId); ModelConfig <Order> .Id(x => x.OrderId); ModelConfig <Product> .Id(x => x.ProductId); ModelConfig <Region> .Id(x => x.RegionId); ModelConfig <Shipper> .Id(x => x.ShipperId); ModelConfig <Supplier> .Id(x => x.SupplierId); ModelConfig <Territory> .Id(x => x.TerritoryId); Repositories.Add(typeof(Category), new NorthwindCategoryRepositoryRedis(this)); Repositories.Add(typeof(CustomerCustomerDemo), new NorthwindCustomerCustomerDemoRepositoryRedis(this)); Repositories.Add(typeof(CustomerDemographic), new NorthwindCustomerDemographicRepositoryRedis(this)); Repositories.Add(typeof(Customer), new NorthwindCustomerRepositoryRedis(this)); Repositories.Add(typeof(Employee), new NorthwindEmployeeRepositoryRedis(this)); Repositories.Add(typeof(EmployeeTerritory), new NorthwindEmployeeTerritoryRepositoryRedis(this)); Repositories.Add(typeof(OrderDetail), new NorthwindOrderDetailRepositoryRedis(this)); Repositories.Add(typeof(Order), new NorthwindOrderRepositoryRedis(this)); Repositories.Add(typeof(Product), new NorthwindProductRepositoryRedis(this)); Repositories.Add(typeof(Region), new NorthwindRegionRepositoryRedis(this)); Repositories.Add(typeof(Shipper), new NorthwindShipperRepositoryRedis(this)); Repositories.Add(typeof(Supplier), new NorthwindSupplierRepositoryRedis(this)); Repositories.Add(typeof(Territory), new NorthwindTerritoryRepositoryRedis(this)); //IRedisClient client = base.Client; }
public ChinookUnitOfWorkRedis() : base(LibraryHelper.AppSettings <string>("Redis.Chinook")) { Domain = "Chinook"; ModelConfig <Album> .Id(x => x.AlbumId); ModelConfig <Artist> .Id(x => x.ArtistId); ModelConfig <Customer> .Id(x => x.CustomerId); ModelConfig <CustomerDocument> .Id(x => x.CustomerDocumentId); ModelConfig <Employee> .Id(x => x.EmployeeId); ModelConfig <Genre> .Id(x => x.GenreId); ModelConfig <Invoice> .Id(x => x.InvoiceId); ModelConfig <InvoiceLine> .Id(x => x.InvoiceLineId); ModelConfig <MediaType> .Id(x => x.MediaTypeId); ModelConfig <Playlist> .Id(x => x.PlaylistId); ModelConfig <PlaylistTrack> .Id(x => x.PlaylistTrackId); // !!! ModelConfig <Track> .Id(x => x.TrackId); Repositories.Add(typeof(Album), new ChinookAlbumRepositoryRedis(this)); Repositories.Add(typeof(Artist), new ChinookArtistRepositoryRedis(this)); Repositories.Add(typeof(Customer), new ChinookCustomerRepositoryRedis(this)); Repositories.Add(typeof(CustomerDocument), new ChinookCustomerDocumentRepositoryRedis(this)); Repositories.Add(typeof(Employee), new ChinookEmployeeRepositoryRedis(this)); Repositories.Add(typeof(Genre), new ChinookGenreRepositoryRedis(this)); Repositories.Add(typeof(Invoice), new ChinookInvoiceRepositoryRedis(this)); Repositories.Add(typeof(InvoiceLine), new ChinookInvoiceLineRepositoryRedis(this)); Repositories.Add(typeof(MediaType), new ChinookMediaTypeRepositoryRedis(this)); Repositories.Add(typeof(Playlist), new ChinookPlaylistRepositoryRedis(this)); Repositories.Add(typeof(PlaylistTrack), new ChinookPlaylistTrackRepositoryRedis(this)); Repositories.Add(typeof(Track), new ChinookTrackRepositoryRedis(this)); //IRedisClient client = base.Client; }
public CustomTypeFactory() { ModelConfig <CustomType> .Id(x => x.CustomId); }
public override void Configure(Container container) { IocShared.Configure(this); JsConfig.EmitCamelCaseNames = true; this.PreRequestFilters.Add((req, res) => { req.Items["_DataSetAtPreRequestFilters"] = true; }); this.GlobalRequestFilters.Add((req, res, dto) => { req.Items["_DataSetAtRequestFilters"] = true; var requestFilter = dto as RequestFilter; if (requestFilter != null) { res.StatusCode = requestFilter.StatusCode; if (!requestFilter.HeaderName.IsNullOrEmpty()) { res.AddHeader(requestFilter.HeaderName, requestFilter.HeaderValue); } res.Close(); } var secureRequests = dto as IRequiresSession; if (secureRequests != null) { res.ReturnAuthRequired(); } }); this.Container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory( "~/App_Data/db.sqlite".MapHostAbsolutePath(), SqliteDialect.Provider) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }); this.Container.Register <ICacheClient>(new MemoryCacheClient()); //this.Container.Register<ICacheClient>(new BasicRedisClientManager()); ConfigureAuth(container); //this.Container.Register<ISessionFactory>( // c => new SessionFactory(c.Resolve<ICacheClient>())); var dbFactory = this.Container.Resolve <IDbConnectionFactory>(); using (var db = dbFactory.Open()) db.DropAndCreateTable <Movie>(); ModelConfig <Movie> .Id(x => x.Title); Routes .Add <Movies>("/custom-movies", "GET, OPTIONS") .Add <Movies>("/custom-movies/genres/{Genre}") .Add <Movie>("/custom-movies", "POST,PUT") .Add <Movie>("/custom-movies/{Id}") .Add <MqHostStats>("/mqstats"); var resetMovies = this.Container.Resolve <ResetMoviesService>(); resetMovies.Post(null); container.Register <IRedisClientsManager>(c => new RedisManagerPool()); Plugins.Add(new ValidationFeature()); Plugins.Add(new SessionFeature()); Plugins.Add(new ProtoBufFormat()); Plugins.Add(new RequestLogsFeature { RequestLogger = new RedisRequestLogger(container.Resolve <IRedisClientsManager>()) }); Plugins.Add(new SwaggerFeature { //UseBootstrapTheme = true }); Plugins.Add(new PostmanFeature()); Plugins.Add(new CorsFeature()); container.RegisterValidators(typeof(CustomersValidator).Assembly); //var onlyEnableFeatures = Feature.All.Remove(Feature.Jsv | Feature.Soap); SetConfig(new HostConfig { AdminAuthSecret = AuthTestsBase.AuthSecret, //EnableFeatures = onlyEnableFeatures, DebugMode = true, //Show StackTraces for easier debugging }); if (StartMqHost) { var redisManager = new BasicRedisClientManager(); var mqHost = new RedisMqServer(redisManager); mqHost.RegisterHandler <Reverse>(ServiceController.ExecuteMessage); mqHost.Start(); this.Container.Register((IMessageService)mqHost); } }
public void Can_get_if_HasIdCustomIntProperty() { ModelConfig <HasIdCustomIntProperty> .Id(x => x.CustomId); Assert.That(new HasIdCustomIntProperty().GetId(), Is.EqualTo(IntValue)); }
public static void Configure() { ModelConfig <Book> .Id(map => map.Isbn); }
public override void Configure(Container container) { JsConfig.EmitCamelCaseNames = true; this.RequestFilters.Add((req, res, dto) => { var requestFilter = dto as RequestFilter; if (requestFilter != null) { res.StatusCode = requestFilter.StatusCode; if (!requestFilter.HeaderName.IsNullOrEmpty()) { res.AddHeader(requestFilter.HeaderName, requestFilter.HeaderValue); } res.Close(); } var secureRequests = dto as IRequiresSession; if (secureRequests != null) { res.ReturnAuthRequired(); } }); this.Container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory( "~/App_Data/db.sqlite".MapHostAbsolutePath(), SqliteOrmLiteDialectProvider.Instance) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }); this.Container.Register <ICacheClient>(new MemoryCacheClient()); //this.Container.Register<ICacheClient>(new BasicRedisClientManager()); ConfigureAuth(container); //this.Container.Register<ISessionFactory>( // c => new SessionFactory(c.Resolve<ICacheClient>())); var dbFactory = this.Container.Resolve <IDbConnectionFactory>(); dbFactory.Run(db => db.CreateTable <Movie>(true)); ModelConfig <Movie> .Id(x => x.Title); Routes .Add <Movies>("/custom-movies", "GET, OPTIONS") .Add <Movies>("/custom-movies/genres/{Genre}") .Add <Movie>("/custom-movies", "POST,PUT") .Add <Movie>("/custom-movies/{Id}") .Add <MqHostStats>("/mqstats"); var resetMovies = this.Container.Resolve <ResetMoviesService>(); resetMovies.Post(null); Plugins.Add(new ValidationFeature()); Plugins.Add(new SessionFeature()); Plugins.Add(new ProtoBufFormat()); container.RegisterValidators(typeof(CustomersValidator).Assembly); container.Register(c => new FunqSingletonScope()).ReusedWithin(ReuseScope.Default); container.Register(c => new FunqRequestScope()).ReusedWithin(ReuseScope.Request); container.Register(c => new FunqNoneScope()).ReusedWithin(ReuseScope.None); Routes.Add <IocScope>("/iocscope"); //var onlyEnableFeatures = Feature.All.Remove(Feature.Jsv | Feature.Soap); SetConfig(new EndpointHostConfig { GlobalResponseHeaders = { { "Access-Control-Allow-Origin", "*" }, { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" }, { "Access-Control-Allow-Headers", "Content-Type, X-Requested-With" }, }, //EnableFeatures = onlyEnableFeatures, DebugMode = true, //Show StackTraces for easier debugging }); var redisManager = new BasicRedisClientManager(); var mqHost = new RedisMqHost(redisManager, 2, null); mqHost.RegisterHandler <Reverse>(this.Container.Resolve <ReverseService>().Execute); mqHost.Start(); this.Container.Register((IMessageService)mqHost); }
public override void Configure(Container container) { IocShared.Configure(this); JsConfig.Init(new Text.Config { TextCase = TextCase.CamelCase, }); ServiceStack.Auth.RegisterService.AllowUpdates = true; this.PreRequestFilters.Add((req, res) => { req.Items["_DataSetAtPreRequestFilters"] = true; }); this.GlobalRequestFilters.Add((req, res, dto) => { req.Items["_DataSetAtRequestFilters"] = true; if (dto is RequestFilter requestFilter) { res.StatusCode = requestFilter.StatusCode; if (!requestFilter.HeaderName.IsNullOrEmpty()) { res.AddHeader(requestFilter.HeaderName, requestFilter.HeaderValue); } res.Close(); } if (dto is IRequiresSession secureRequests) { res.ReturnAuthRequired(); } }); Plugins.Add(new SoapFormat()); Plugins.Add(new MiniProfilerFeature()); this.Container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory( "~/App_Data/db.sqlite".MapHostAbsolutePath(), SqliteDialect.Provider) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }); this.Container.Register <ICacheClient>(new MemoryCacheClient()); //this.Container.Register<ICacheClient>(new BasicRedisClientManager()); ConfigureAuth(container); //this.Container.Register<ISessionFactory>( // c => new SessionFactory(c.Resolve<ICacheClient>())); var dbFactory = this.Container.Resolve <IDbConnectionFactory>(); using (var db = dbFactory.Open()) db.DropAndCreateTable <Movie>(); ModelConfig <Movie> .Id(x => x.Title); Routes .Add <Movies>("/custom-movies", "GET, OPTIONS") .Add <Movies>("/custom-movies/genres/{Genre}") .Add <Movie>("/custom-movies", "POST,PUT") .Add <Movie>("/custom-movies/{Id}") .Add <MqHostStats>("/mqstats"); var resetMovies = this.Container.Resolve <ResetMoviesService>(); resetMovies.Post(null); container.Register <IRedisClientsManager>(c => new RedisManagerPool()); Plugins.Add(new TemplatePagesFeature()); Plugins.Add(new ValidationFeature()); Plugins.Add(new SessionFeature()); Plugins.Add(new ProtoBufFormat()); Plugins.Add(new RequestLogsFeature { //RequestLogger = new RedisRequestLogger(container.Resolve<IRedisClientsManager>()) RequestLogger = new CsvRequestLogger(), }); Plugins.Add(new OpenApiFeature { }); Plugins.Add(new PostmanFeature()); Plugins.Add(new CorsFeature()); Plugins.Add(new AutoQueryFeature { MaxLimit = 100 }); //Plugins.Add(new AdminFeature()); container.RegisterValidators(typeof(CustomersValidator).Assembly); typeof(ResponseStatus) .AddAttributes(new ServiceStack.DataAnnotations.DescriptionAttribute("This is the Response Status!")); typeof(ResponseStatus) .GetProperty("Message") .AddAttributes(new ServiceStack.DataAnnotations.DescriptionAttribute("A human friendly error message")); //var onlyEnableFeatures = Feature.All.Remove(Feature.Jsv | Feature.Soap); SetConfig(new HostConfig { AdminAuthSecret = AuthTestsBase.AuthSecret, ApiVersion = "0.2.0", //EnableFeatures = onlyEnableFeatures, DebugMode = true, //Show StackTraces for easier debugging RedirectPaths = { { "/swagger-ui", "/swagger-ui/" } } }); if (StartMqHost) { var redisManager = new BasicRedisClientManager(); var mqHost = new RedisMqServer(redisManager); mqHost.RegisterHandler <Reverse>(ExecuteMessage); mqHost.Start(); this.Container.Register((IMessageService)mqHost); } }
public override void Configure(Container container) { JsConfig.EmitCamelCaseNames = true; this.RequestFilters.Add((req, res, dto) => { var requestFilter = dto as RequestFilter; if (requestFilter != null) { res.StatusCode = requestFilter.StatusCode; if (!requestFilter.HeaderName.IsNullOrEmpty()) { res.AddHeader(requestFilter.HeaderName, requestFilter.HeaderValue); } res.Close(); } var secureRequests = dto as IRequiresSession; if (secureRequests != null) { res.ReturnAuthRequired(); } }); this.Container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory( "~/App_Data/db.sqlite".MapHostAbsolutePath(), SqliteOrmLiteDialectProvider.Instance) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }); this.Container.Register <ICacheClient>(new MemoryCacheClient()); //this.Container.Register<ICacheClient>(new BasicRedisClientManager()); ConfigureAuth(container); //this.Container.Register<ISessionFactory>( // c => new SessionFactory(c.Resolve<ICacheClient>())); var dbFactory = this.Container.Resolve <IDbConnectionFactory>(); dbFactory.Exec(dbCmd => dbCmd.CreateTable <Movie>(true)); ModelConfig <Movie> .Id(x => x.Title); Routes .Add <Movies>("/custom-movies", "GET") .Add <Movies>("/custom-movies/genres/{Genre}") .Add <Movie>("/custom-movies", "POST,PUT") .Add <Movie>("/custom-movies/{Id}") .Add <MqHostStats>("/mqstats"); var resetMovies = this.Container.Resolve <ResetMoviesService>(); resetMovies.Post(null); ValidationFeature.Init(this); container.RegisterValidators(typeof(CustomersValidator).Assembly); SessionFeature.Init(this); //var onlyEnableFeatures = Feature.All.Remove(Feature.Jsv | Feature.Soap); SetConfig(new EndpointHostConfig { //EnableFeatures = onlyEnableFeatures, DebugMode = true, //Show StackTraces for easier debugging }); var redisManager = new BasicRedisClientManager(); var mqHost = new RedisMqHost(redisManager, 2, null); mqHost.RegisterHandler <Reverse>(this.Container.Resolve <ReverseService>().Execute); mqHost.Start(); this.Container.Register((IMessageService)mqHost); }
public ChinookRedis() { _client = new RedisClient(LibraryHelper.AppSettings <string>("Redis.Chinook")); ModelConfig <Genre> .Id(x => x.GenreId); }
static RunRequestInfoService() { //Tell OrmLite what to use for the primary key ModelConfig <RequestInfoResponse> .Id(x => x.Host); }
public override void Configure(Funq.Container container) { IocShared.Configure(this); this.PreRequestFilters.Add((req, res) => { req.Items["_DataSetAtPreRequestFilters"] = true; }); this.GlobalRequestFilters.Add((req, res, dto) => { req.Items["_DataSetAtRequestFilters"] = true; if (dto is RequestFilter requestFilter) { res.StatusCode = requestFilter.StatusCode; if (!requestFilter.HeaderName.IsNullOrEmpty()) { res.AddHeader(requestFilter.HeaderName, requestFilter.HeaderValue); } res.Close(); } if (dto is IRequiresSession secureRequests) { res.ReturnAuthRequired(); } }); Plugins.Add(new SoapFormat()); Plugins.Add(new MiniProfilerFeature()); container.Register <IDbConnectionFactory>(c => new OrmLiteConnectionFactory( "~/App_Data/db.sqlite".MapHostAbsolutePath(), SqliteDialect.Provider) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }); container.Register <ICacheClient>(new MemoryCacheClient()); //container.Register<ICacheClient>(new BasicRedisClientManager()); ConfigureAuth(container); //container.Register<ISessionFactory>( // c => new SessionFactory(c.Resolve<ICacheClient>())); var dbFactory = container.Resolve <IDbConnectionFactory>(); using (var db = dbFactory.Open()) db.DropAndCreateTable <Movie>(); ModelConfig <Movie> .Id(x => x.Title); Routes .Add <Movies>("/custom-movies", "GET, OPTIONS") .Add <Movies>("/custom-movies/genres/{Genre}") .Add <Movie>("/custom-movies", "POST,PUT") .Add <Movie>("/custom-movies/{Id}") .Add <MqHostStats>("/mqstats"); container.Register <IRedisClientsManager>(c => new RedisManagerPool()); Plugins.Add(new TemplatePagesFeature()); Plugins.Add(new ValidationFeature()); Plugins.Add(new SessionFeature()); Plugins.Add(new ProtoBufFormat()); Plugins.Add(new RequestLogsFeature { //RequestLogger = new RedisRequestLogger(container.Resolve<IRedisClientsManager>()) RequestLogger = new CsvRequestLogger(), }); Plugins.Add(new SwaggerFeature { //UseBootstrapTheme = true OperationFilter = x => x.Consumes = x.Produces = new[] { MimeTypes.Json, MimeTypes.Xml }.ToList(), RouteSummary = { { "/swaggerexamples", "Swagger Examples Summary" } } }); Plugins.Add(new PostmanFeature()); Plugins.Add(new CorsFeature()); Plugins.Add(new AutoQueryFeature { MaxLimit = 100 }); Plugins.Add(new AdminFeature()); container.RegisterValidators(typeof(CustomersValidator).Assembly); typeof(ResponseStatus) .AddAttributes(new DescriptionAttribute("This is the Response Status!")); typeof(ResponseStatus) .GetProperty("Message") .AddAttributes(new DescriptionAttribute("A human friendly error message")); if (StartMqHost) { var redisManager = new BasicRedisClientManager(); var mqHost = new RedisMqServer(redisManager); mqHost.RegisterHandler <Reverse>(ExecuteMessage); mqHost.Start(); container.Register((IMessageService)mqHost); } }