示例#1
0
        private static void DatabaseTest(IDbConnectionFactory connectionFactory)
        {
            ConfigureDatabase.Init(connectionFactory);

            var storeRequest = new StoreNewUser {
                Email    = "new@email",
                Password = "******",
                UserName = "******"
            };

            var storeHandler = new StoreNewUserService {
                ConnectionFactory = connectionFactory
            };

            storeHandler.Execute(storeRequest);

            var getAllHandler = new GetAllUsersService {
                ConnectionFactory = connectionFactory
            };
            var response = (GetAllUsersResponse)getAllHandler.Execute(new GetAllUsers());

            var user = response.Users[0];

            System.Console.WriteLine("Stored and retrieved user: {0}, {1}, {2}",
                                     user.Id, user.UserName, user.Email);
        }
        public override void Configure(Container container)
        {
            //Permit modern browsers (e.g. Firefox) to allow sending of any REST HTTP Method
            base.SetConfig(new HostConfig
            {
                DebugMode = true,
            });

            Plugins.Add(new CorsFeature());

            container.Register <IAppSettings>(new AppSettings());
            container.Register(c => new ExampleConfig(c.Resolve <IAppSettings>()));

            var appConfig = container.Resolve <ExampleConfig>();

            container.Register <IDbConnectionFactory>(c =>
                                                      new OrmLiteConnectionFactory(
                                                          appConfig.ConnectionString.MapHostAbsolutePath(),
                                                          SqliteOrmLiteDialectProvider.Instance));

            ConfigureDatabase.Init(container.Resolve <IDbConnectionFactory>());

            //If you give Redis a try, you won't be disappointed. This however requires Redis to be installed.
            //container.Register<ICacheClient>(c => new BasicRedisClientManager());

            log.InfoFormat("AppHost Configured: {0}", DateTime.Now);
        }
示例#3
0
        public override void Configure(Container container)
        {
            //Permit modern browsers (e.g. Firefox) to allow sending of any REST HTTP Method
            base.SetConfig(new EndpointHostConfig
            {
                GlobalResponseHeaders =
                {
                    { "Access-Control-Allow-Origin",  "*"                               },
                    { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" },
                },
            });

            container.Register <IResourceManager>(new ConfigurationResourceManager());
            container.Register(c => new ExampleConfig(c.Resolve <IResourceManager>()));

            var appConfig = container.Resolve <ExampleConfig>();

            container.Register <IDbConnectionFactory>(c =>
                                                      new OrmLiteConnectionFactory(
                                                          appConfig.ConnectionString.MapHostAbsolutePath(),
                                                          SqliteOrmLiteDialectProvider.Instance));

            ConfigureDatabase.Init(container.Resolve <IDbConnectionFactory>());

            //The MemoryCacheClient is a great way to get started with caching; nothing external to setup.
            container.Register <ICacheClient>(c => new MemoryCacheClient());

            //If you give Redis a try, you won't be disappointed. This however requires Redis to be installed.
            //container.Register<ICacheClient>(c => new BasicRedisClientManager());

            log.InfoFormat("AppHost Configured: {0}", DateTime.Now);
        }
        public MainWindowViewModel()
        {
            //start ninject
            var kernel = new StandardKernel();
            //kernel.Load(Assembly.GetExecutingAssembly());

            //start the db
            var db = new ConfigureDatabase();
            var sessionFactory = db.Create(kernel);

            _invTypes = InventoryType.GetAll();

            DisplayName = "Fetching data...";
            _orders = new List<Order>();

            //var orderQuery = new OrderQuery(sessionFactory);
            var orderQuery = kernel.Get<OrderQuery>();

            var fetchDealsThread = new Thread(() =>
            {
                _orders.AddRange(orderQuery.GetOrdersSince(DateTime.Now.Subtract(TimeSpan.FromDays(2))));
                SpotSweetDeals();
            });

            fetchDealsThread.Start();
        }
示例#5
0
        public void ConfigureServices(IServiceCollection services)
        {
            ConfigureDatabase.ConfigureDependencyDatabases(services);
            ConfigureService.ConfigureDependencyServices(services);
            ConfigureRepository.ConfigureDependencyRepositories(services);
            ConfigureMapping.ConfigureDependencyMapping(services);

            var signingConfiguration = new SigningConfiguration();
            var tokenConfiguration   = Configuration.GetSection("Token").Get <TokenConfiguration>();

            services.AddSingleton(signingConfiguration);
            services.AddSingleton(tokenConfiguration);

            services.AddAuthentication(options => {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(options => {
                var validation = options.TokenValidationParameters;
                validation.IssuerSigningKey         = signingConfiguration.Key;
                validation.ValidAudience            = tokenConfiguration.Audience;
                validation.ValidIssuer              = tokenConfiguration.Issuer;
                validation.ValidateIssuerSigningKey = true;
                validation.ValidateLifetime         = true;
                validation.ClockSkew = TimeSpan.Zero;
            });

            services.AddAuthorization(options => {
                options.DefaultPolicy = new AuthorizationPolicyBuilder()
                                        .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                                        .RequireAuthenticatedUser()
                                        .Build();
            });

            services.AddSwaggerGen(config =>
            {
                config.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "My API", Version = "v1"
                });
                config.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme {
                    In          = ParameterLocation.Header,
                    Description = "Token jwt",
                    Name        = "Authorization",
                    Type        = SecuritySchemeType.ApiKey
                });
                config.AddSecurityRequirement(new OpenApiSecurityRequirement {
                    {
                        new OpenApiSecurityScheme {
                            Reference = new OpenApiReference {
                                Id   = "Bearer",
                                Type = ReferenceType.SecurityScheme
                            }
                        },
                        new string[0]
                    }
                });
            });

            services.AddControllers();
        }
示例#6
0
        public void Configure(Container container)
        {
            container.Register <IAppSettings>(c => new AppSettings());

            container.Register <IDbConnectionFactory>(c =>
                                                      new OrmLiteConnectionFactory(
                                                          InMemoryDb,
                                                          SqliteDialect.Provider));

            ConfigureDatabase.Init(container.Resolve <IDbConnectionFactory>());

            log.InfoFormat("TestAppHost Created: " + DateTime.Now);
        }
示例#7
0
        public override void Configure(Container container)
        {
            container.Register <IAppSettings>(new AppSettings());

            container.Register(c => new ExampleConfig(c.Resolve <IAppSettings>()));
            var appConfig = container.Resolve <ExampleConfig>();

            container.Register <IDbConnectionFactory>(c =>
                                                      new OrmLiteConnectionFactory(
                                                          ":memory:",   //Use an in-memory database instead
                                                          SqliteDialect.Provider));

            ConfigureDatabase.Init(container.Resolve <IDbConnectionFactory>());
        }
示例#8
0
        public override void Configure(Container container)
        {
            container.Register <IResourceManager>(c => new ConfigurationResourceManager());

            container.Register <IDbConnectionFactory>(c =>
                                                      new OrmLiteConnectionFactory(
                                                          InMemoryDb,
                                                          false,
                                                          SqliteOrmLiteDialectProvider.Instance));

            ConfigureDatabase.Init(container.Resolve <IDbConnectionFactory>());

            log.InfoFormat("TestAppHost Created: " + DateTime.Now);
        }
示例#9
0
        public override void Configure(Container container)
        {
            container.Register <IResourceManager>(new ConfigurationResourceManager());

            container.Register(c => new ExampleConfig(c.Resolve <IResourceManager>()));
            var appConfig = container.Resolve <ExampleConfig>();

            container.Register <IDbConnectionFactory>(c =>
                                                      new OrmLiteConnectionFactory(
                                                          ":memory:",   //Use an in-memory database instead
                                                          false,        //keep the same in-memory db connection open
                                                          SqliteOrmLiteDialectProvider.Instance));

            ConfigureDatabase.Init(container.Resolve <IDbConnectionFactory>());
        }
示例#10
0
        public override void Configure(Container container)
        {
            //Signal advanced web browsers what HTTP Methods you accept
            base.SetConfig(new EndpointHostConfig
            {
                GlobalResponseHeaders =
                {
                    { "Access-Control-Allow-Origin",  "*"                               },
                    { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS" },
                },
            });

            container.Register <IResourceManager>(new ConfigurationResourceManager());

            container.Register(c => new ExampleConfig(c.Resolve <IResourceManager>()));
            var appConfig = container.Resolve <ExampleConfig>();

            container.Register <IDbConnectionFactory>(c =>
                                                      new OrmLiteConnectionFactory(
                                                          appConfig.ConnectionString.MapHostAbsolutePath(),
                                                          SqliteOrmLiteDialectProvider.Instance));

            ConfigureDatabase.Init(container.Resolve <IDbConnectionFactory>());


            //register different cache implementations depending on availability
            const bool hasRedis = false;

            if (hasRedis)
            {
                container.Register <ICacheClient>(c => new BasicRedisClientManager());
            }
            else
            {
                container.Register <ICacheClient>(c => new MemoryCacheClient());
            }


            log.InfoFormat("AppHost Configured: " + DateTime.Now);
        }
 public void SetUp()
 {
     ConfigureDatabase.ReinitializeDatabase();
 }
示例#12
0
 public static void Run()
 {
     AutoMapperConfiguration.Configure();
     ConfigureDatabase.Configure();
 }