private void EnsureUserRegionExists(string userRegion)
 {
     if (!UsersRegions.HasRegion(userRegion))
     {
         throw new NotFoundException($"User region {userRegion} not found!");
     }
 }
        public IAsyncDocumentSession GetConnection(string regionKey)
        {
            regionKey = regionKey.ToUpperInvariant();
            if (!UsersRegions.HasRegion(regionKey))
            {
                throw new NotFoundException($"Region {regionKey} not found on open connection");
            }

            return(_stores[regionKey].OpenAsyncSession());
        }
        public DBConnectionProvider(IConfiguration configuration)
        {
            string USconnectionString = configuration.GetConnectionString(UsersRegions.USA);
            string EUconnectionString = configuration.GetConnectionString(UsersRegions.Europe);
            string RUconnectionString = configuration.GetConnectionString(UsersRegions.Russia);
            string CNconnectionString = configuration.GetConnectionString(UsersRegions.China);

            CurrentRegion = configuration.GetConnectionString("LocalRegion").ToUpperInvariant();

            if (!UsersRegions.HasRegion(CurrentRegion))
            {
                throw new NotFoundException($"Region {CurrentRegion} not found");
            }

            _stores = new Dictionary <string, IDocumentStore>
            {
                { UsersRegions.USA, CreateStore(USconnectionString) },
                { UsersRegions.Europe, CreateStore(EUconnectionString) },
                { UsersRegions.Russia, CreateStore(RUconnectionString) },
                { UsersRegions.China, CreateStore(CNconnectionString) },
            };
        }