Ejemplo n.º 1
0
 public Startup(IConfiguration configuration)
 {
     Configuration             = configuration;
     _optionsResolver          = new OptionsResolver(configuration);
     _connectionStringResolver = new ConnectionStringResolver(configuration);
     _customMediaTypeService   = new CustomMediaTypeService();
 }
Ejemplo n.º 2
0
        protected virtual void CreateOrMigrate(Tenant tenant, Action <TDbContext> seedAction)
        {
            var args = new DbPerTenantConnectionStringResolveArgs(
                tenant == null ? (int?)null : (int?)tenant.Id,
                tenant == null ? MultiTenancySides.Host : MultiTenancySides.Tenant
                );

            args["DbContextType"]         = typeof(TDbContext);
            args["DbContextConcreteType"] = typeof(TDbContext);

            var nameOrConnectionString = ConnectionStringHelper.GetConnectionString(
                ConnectionStringResolver.GetNameOrConnectionString(args)
                );

            using (var uow = UnitOfWorkManager.Begin(TransactionScopeOption.Suppress))
            {
                using (var dbContext = DbContextResolver.Resolve <TDbContext>(nameOrConnectionString, null))
                {
                    dbContext.Database.Migrate();
                    seedAction?.Invoke(dbContext);
                    UnitOfWorkManager.Current.SaveChanges();
                    uow.Complete();
                }
            }
        }
Ejemplo n.º 3
0
        public CosmosEmployeeService(ConnectionStringResolver connectionStringResolver, CompanyNameResolver companyNameResolver)
        {
            _companyName = companyNameResolver.GetCompanyName();
            var connectionString = connectionStringResolver.GetConnectionString();

            _cosmosClient = new CosmosClient(connectionString);
        }
Ejemplo n.º 4
0
 public UnitOfWorkFactory(
     ConnectionStringResolver connectionStringResolver,
     IRepositoryMapper repositoryTypeMapper
     )
 {
     _connectionStringResolver = connectionStringResolver;
     _repositoryTypeMapper     = repositoryTypeMapper;
 }
        public void Should_Fail_On_Empty_Connection_String()
        {
            var resolver = new ConnectionStringResolver {
                ConnectionStrings = new ConnectionStringSettingsCollection {
                    new ConnectionStringSettings("correct_name", "")
                }
            };

            Assert.Throws <TransportException>(() => resolver.ResolveConnectionString("correct_name"));
        }
        public void Should_Succeed_On_Connection_String_Found()
        {
            var resolver = new ConnectionStringResolver {
                ConnectionStrings = new ConnectionStringSettingsCollection {
                    new ConnectionStringSettings("correct_name", "Some text"), new ConnectionStringSettings("wrong_name", "Wrong text")
                }
            };

            resolver.ResolveConnectionString("correct_name").Should().Be("Some text");
        }
Ejemplo n.º 7
0
        public WorkOrderFlowEntity GetOrder(Guid orderId)
        {
            IConnectionStringResolver connectionStringResolver = new ConnectionStringResolver("Name");
            IDbContextResolver        dbContextResolver        = new DbContextResolver();

            using (var dbContext = dbContextResolver.Resolve <SqlDbContext>(connectionStringResolver))
            {
                IOrderRepository orderRepository = new OrderRepository(dbContext);
                return(orderRepository.Get(orderId));
            }
        }
Ejemplo n.º 8
0
        public static IHost MigrateBillChopDb(this IHost webHost)
        {
            var connectionString = ConnectionStringResolver.GetBillChopDbConnectionString();
            var options          = new DbContextOptionsBuilder <BillChopContext>()
                                   .UseSqlServer(connectionString)
                                   .UseLazyLoadingProxies()
                                   .Options;

            var dbContext = new BillChopContext(options);

            dbContext.Database.Migrate();

            return(webHost);
        }
Ejemplo n.º 9
0
        public void TestGetWorkOrders()
        {
            IConnectionStringResolver connectionStringResolver = new ConnectionStringResolver("Asmkt.WorkOrderSystem.Database");

            using (var uow = new EfUnitOfWork(connectionStringResolver))
            {
                var context = new EfDbContext <WorkOrderEntity, Guid>(uow.DbContext);
                var datas   = context.Entities.ToList();
                Console.WriteLine(context.CurrentContext.Database.Connection.GetHashCode());
                Assert.IsTrue(datas != null);
                var repository2 = new EfDbContext <WorkOrderFlowEntity, Guid>(uow.DbContext);
                var entity      = repository2.Entities.Find(Guid.Parse("07B60E03-1BFC-4C5C-9109-13CC6F77375B"));
                Console.WriteLine(repository2.CurrentContext.Database.Connection.GetHashCode());
                Assert.IsTrue(entity != null);

                uow.Begin();
            }
        }
Ejemplo n.º 10
0
        public async void CreateOrder(WorkOrderFlowEntity orderEntity)
        {
            IConnectionStringResolver connectionStringResolver = new ConnectionStringResolver("Name");

            using (var unitOfWork = new EFUow.EfUnitOfWork(connectionStringResolver))
            {
                WorkOrderFlowEntity order           = new WorkOrderFlowEntity();
                IOrderRepository    orderRepository = new OrderRepository(unitOfWork.DbContext);
                unitOfWork.Begin();
                var result = await orderRepository.InsertAsync(order);

                if (!result)
                {
                    unitOfWork.RollBack();
                    return;
                }
                unitOfWork.Complete();
            }
        }
Ejemplo n.º 11
0
        public async Task MigrateAsync()
        {
            /* We intentionally resolving the MarauderMapMigrationsDbContext
             * from IServiceProvider (instead of directly injecting it)
             * to properly get the connection string of the current tenant in the
             * current scope.
             */

            var database = _serviceProvider
                           .GetRequiredService <MarauderMapDbContext>()
                           .Database;
            var dataSource = ConnectionStringResolver.GetDataSourceValue(database.GetConnectionString());
            var dbPath     = Path.GetDirectoryName(dataSource);

            if (!Directory.Exists(dbPath))
            {
                Directory.CreateDirectory(dbPath);
            }
            await database.MigrateAsync();
        }
Ejemplo n.º 12
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton(Log.Logger);

            var connectionStringResolver = new ConnectionStringResolver(_configuration);

            services.AddSingleton(connectionStringResolver);

            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(connectionStringResolver.GetConnectionString()));

            services.AddDefaultIdentity <ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
            .AddEntityFrameworkStores <ApplicationDbContext>();

            services.AddHostedService <MigratorHostedService>();

            services.AddIdentityServer().AddApiAuthorization <ApplicationUser, ApplicationDbContext>();
            services.AddAuthentication().AddIdentityServerJwt();
            services.AddControllersWithViews();
            services.AddRazorPages();

            services.AddServices();
            services.MapRepositories();
            services.AddManagers();

            services.AddApiVersioning();
            if (_env.IsDevelopment())
            {
                services.AddSwaggerGen(options =>
                {
                    options.SwaggerDoc("v1", new OpenApiInfo {
                        Title = "Sentiment Analyser API", Version = "v1"
                    });
                    options.SchemaFilter <EnumSchemaFilter>();
                });
            }

            Mapper.Initialize();

            services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/dist"; });
        }
 public SQLiteConnectionConnection(
     [NotNull] DbContextConfiguration configuration,
     [NotNull] ConnectionStringResolver connectionStringResolver)
     : base(configuration, connectionStringResolver)
 {
 }
Ejemplo n.º 14
0
 protected virtual string ResolveConnectionString(ConnectionStringResolveArgs args)
 {
     return(ConnectionStringResolver.GetNameOrConnectionString(args));
 }
Ejemplo n.º 15
0
 protected virtual string ResolveConnectionString(Dictionary <string, object> arg)
 {
     return(ConnectionStringResolver.GetNameOrConnectionString(arg));
 }
Ejemplo n.º 16
0
 private ConnectionStringResolver()
 {
     _connectionStringResolver = new ConnectionStringResolver();
 }
Ejemplo n.º 17
0
 public ActionResult SwitchConnection()
 {
     AuthenticationManager.SignOut();
     ConnectionStringResolver.SwitchConnection();
     return(Redirect(Request.UrlReferrer.AbsolutePath));
 }
Ejemplo n.º 18
0
 protected virtual string ResolveConnectionString(ref string schema)
 {
     return(ConnectionStringResolver.GetNameOrConnectionString(ref schema));
 }
Ejemplo n.º 19
0
 protected virtual async Task <string> ResolveConnectionStringAsync(ConnectionStringResolveArgs args)
 {
     return(await ConnectionStringResolver.GetNameOrConnectionStringAsync(args));
 }
Ejemplo n.º 20
0
 public void SetUp()
 {
     _fixture                  = new Fixture();
     _configurationMock        = new Mock <IConfiguration>();
     _connectionStringResolver = new ConnectionStringResolver(_configurationMock.Object);
 }