Exemplo n.º 1
0
        public NamespaceCleanser(ConnectionStringSetting connectionString, ILogger logger)
        {
            _connectionString = connectionString;
            _logger           = logger;

            _namespaceManager = new ThreadSafeLazy <NamespaceManager>(() => NamespaceManager.CreateFromConnectionString(_connectionString));
        }
Exemplo n.º 2
0
        private void Initialize(IConfiguration configuration)
        {
            var entityDataConfigNode = configuration.GetSection("Aolyn.Data");

            var providersNode = entityDataConfigNode.GetSection("EntityFramework:Providers");

            _providers = GetProviders(providersNode);

            _connectionStrings = ConnectionStringHelper.GetConnectionStrings(entityDataConfigNode);

            var configs = new List <EntityDbConfig>();

            foreach (var item in _connectionStrings)
            {
                var providerName = item.Provider;
                var provider     = _providers.FirstOrDefault(it => it.Name == providerName);
                if (provider == null)
                {
                    continue;
                }

                var dbItem = new ConnectionStringSetting
                {
                    Name             = item.Name,
                    Provider         = providerName,
                    ConnectionString = item.ConnectionString,
                };
                configs.Add(new EntityDbConfig(dbItem.Name, dbItem.ConnectionString, provider.Provider));
            }

            _configs = configs.ToArray();
        }
Exemplo n.º 3
0
        public NamespaceCleanser(ConnectionStringSetting connectionString, ILogger logger)
        {
            _connectionString = connectionString;
            _logger = logger;

            _namespaceManager = new ThreadSafeLazy<NamespaceManager>(() => NamespaceManager.CreateFromConnectionString(_connectionString));
        }
Exemplo n.º 4
0
 public WindowsServiceBusTransportConfiguration WithConnectionString(string connectionString)
 {
     ConnectionString = new ConnectionStringSetting {
         Value = connectionString
     };
     return(this);
 }
Exemplo n.º 5
0
        public NamespaceCleanser(ConnectionStringSetting connectionString, GlobalPrefixSetting globalPrefix, ILogger logger)
        {
            _connectionString = connectionString;
            _globalPrefix     = globalPrefix;
            _logger           = logger;

            _namespaceManager = new ThreadSafeLazy <ManagementClient>(() => new ManagementClient(connectionString));
        }
Exemplo n.º 6
0
        public void Successfully()
        {
            const string alias            = "test";
            const string connectionString = "Data Source=(LocalDb)\\mssqllocaldb;Initial Catalog=Zulu.Tests;Integrated Security=true";
            var          result           = new ConnectionStringSetting(alias, connectionString);

            Equal(alias, result.Alias);
            Equal(connectionString, result.ConnectionString);
        }
        /// <summary>
        ///     Converts an AppSettingsJsonFile's ConnectionStrings into a set of ConnectionStringSettings
        /// </summary>
        /// <param name="input">AppSettingsJsonFile</param>
        /// <returns>Collection of ConnectionStringSettings</returns>
        public static IEnumerable <ConnectionStringSetting> GetConnectionStrings(this AppSettingsJsonFile input)
        {
            Logger.Trace("Entering");

            var output = new List <ConnectionStringSetting>();

            foreach (var cs in input.ConnectionStrings)
            {
                var name             = cs.Key;
                var connectionString = cs.Value;
                try
                {
                    var builder = new SqlConnectionStringBuilder(connectionString);

                    var newItem = new ConnectionStringSetting
                    {
                        ApplicationName = builder.ApplicationName,
                        Database        = builder.InitialCatalog,
                        Name            = name,
                        Password        = builder.Password,
                        Server          = builder.DataSource,
                        UserId          = builder.UserID
                    };

                    output.Add(newItem);
                }
                catch (ArgumentException)
                {
                    // RedisConnection follows the format localhost[:999][,password=xxx].
                    if (name.Equals("RedisConnection", StringComparison.CurrentCultureIgnoreCase))
                    {
                        var matches = RedisConnectionStringPattern.Match(connectionString);
                        if (matches.Success)
                        {
                            var server   = matches.Groups[1].Value;
                            var password = matches.Groups[4].Value;

                            var newItem = new ConnectionStringSetting
                            {
                                Name     = name,
                                Password = password,
                                Server   = server
                            };

                            output.Add(newItem);
                        }
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            return(output);
        }
Exemplo n.º 8
0
        public BusSettings(IAppSettingsConfig appConfig, IConnectionStringsConfig connConfig)
            : base(TAG_PREFIX, appConfig.GetAppSettings())
        {
            IDictionary <string, ConnectionStringSetting> connSettings = connConfig.GetConnectionStrings();

            if (!connSettings.ContainsKey("SysDatabase"))
            {
                throw new ConfigSettingsException("Не найдена строка подключения к системной БД сервиса.", "SysDatabase");
            }

            _connSetting = connSettings["SysDatabase"];
        }
Exemplo n.º 9
0
        private ConnectionStringSetting GetSetting(IEnumerable <ConfigurationSetting> wmiSettings, String name)
        {
            foreach (ConfigurationSetting setting in wmiSettings)
            {
                ConnectionStringSetting connectionStringSetting = setting as ConnectionStringSetting;
                if (connectionStringSetting != null && connectionStringSetting.Name.Equals(name))
                {
                    return(connectionStringSetting);
                }
            }

            return(null);
        }
		public void SavesChangesToConfigurationObject()
		{
			ConnectionStringSettings sourceElement = new ConnectionStringSettings("name", "connection string", "provider name");
			List<ConfigurationSetting> settings = new List<ConfigurationSetting>(1);
			ConnectionStringsWmiMapper.GenerateConnectionStringWmiObjects(sourceElement, settings);
			Assert.AreEqual(1, settings.Count);
			ConnectionStringSetting setting = settings[0] as ConnectionStringSetting;
			Assert.IsNotNull(setting);
			setting.ConnectionString = "updated connection string";
			setting.ProviderName = "updated provider name";
			setting.Commit();
			Assert.AreEqual("updated connection string", sourceElement.ConnectionString);
			Assert.AreEqual("updated provider name", sourceElement.ProviderName);
		}
Exemplo n.º 11
0
 private static IServiceProvider CreateServices(ConnectionStringSetting settings)
 {
     return(new ServiceCollection().AddFluentMigratorCore().ConfigureRunner(rb =>
                                                                            rb.AddMySql5()
                                                                            .WithGlobalConnectionString(settings.ConnectionString)
                                                                            .ScanIn(typeof(InitialDB).Assembly)
                                                                            .For
                                                                            .Migrations())
            .Configure <RunnerOptions>(opt =>
     {
         opt.Tags = new[] { "System" };
     })
            .AddLogging(lb => lb.AddFluentMigratorConsole())
            .BuildServiceProvider(false));
 }
 public void CanBindObject()
 {
     ConnectionStringSetting setting = new ConnectionStringSetting(null, "name", "ConnectionString", "ProviderName");
     setting.ApplicationName = "app";
     setting.SectionName = InstrumentationConfigurationSection.SectionName;
     setting.Publish();
     using (System.Management.ManagementObjectCollection.ManagementObjectEnumerator resultEnumerator
         = new ManagementObjectSearcher("root\\enterpriselibrary", "SELECT * FROM ConnectionStringSetting")
             .Get().GetEnumerator())
     {
         Assert.IsTrue(resultEnumerator.MoveNext());
         Assert.AreEqual("ConnectionStringSetting", resultEnumerator.Current.SystemProperties["__CLASS"].Value);
         ManagementObject managementObject = resultEnumerator.Current as ManagementObject;
         Assert.IsNotNull(managementObject);
         managementObject.Put();
     }
 }
        public void SettingsAreCreatedForSingleConnectionStringWhenWmiIsEnabled()
        {
            ConnectionStringSettings connectionString = new ConnectionStringSettings("cs1", "connectionString", "providerName");

            section.ConnectionStrings.Add(connectionString);

            provider.OverrideWithGroupPoliciesAndGenerateWmiObjects(section, false, machineKey, userKey, true, wmiSettings);

            Assert.AreEqual(1, wmiSettings.Count);

            ConnectionStringSetting setting = GetSetting(wmiSettings, "cs1");

            Assert.IsNotNull(setting);
            Assert.IsNull(setting.ApplicationName);
            Assert.IsNull(setting.SectionName);
            Assert.AreEqual("connectionString", setting.ConnectionString);
            Assert.AreEqual("providerName", setting.ProviderName);
        }
 public void WmiQueryReturnsSingleResultIfSinglePublishedInstance()
 {
     ConnectionStringSetting setting = new ConnectionStringSetting(null, "name", "ConnectionString", "ProviderName");
     setting.ApplicationName = "app";
     setting.SectionName = InstrumentationConfigurationSection.SectionName;
     setting.Publish();
     using (System.Management.ManagementObjectCollection.ManagementObjectEnumerator resultEnumerator
         = new ManagementObjectSearcher("root\\enterpriselibrary", "SELECT * FROM ConnectionStringSetting")
                 .Get().GetEnumerator())
     {
         Assert.IsTrue(resultEnumerator.MoveNext());
         Assert.AreEqual("name", resultEnumerator.Current.Properties["Name"].Value);
         Assert.AreEqual("ConnectionString", resultEnumerator.Current.Properties["ConnectionString"].Value);
         Assert.AreEqual("ProviderName", resultEnumerator.Current.Properties["ProviderName"].Value);
         Assert.AreEqual("ConnectionStringSetting", resultEnumerator.Current.SystemProperties["__CLASS"].Value);
         Assert.IsFalse(resultEnumerator.MoveNext());
     }
 }
Exemplo n.º 15
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.Configure <ConnectionStringSetting>(Configuration.GetSection("ConnectionStringSetting"));

            ConnectionStringSetting siteSettings = new ConnectionStringSetting();

            Configuration.Bind("ConnectionStringSetting", siteSettings);

            TryToConnect(siteSettings);

            using (IServiceScope scope = CreateServices(siteSettings).CreateScope())
            {
                IMigrationRunner runner = scope.ServiceProvider.GetRequiredService <IMigrationRunner>();
                runner.MigrateUp();
            }

            services.CoolCatSetup(Configuration);
        }
Exemplo n.º 16
0
        private void TryToConnect(ConnectionStringSetting siteSettings)
        {
            while (ErrorCount < 10)
            {
                try
                {
                    using (var connection = new MySqlConnection(siteSettings.ConnectionString))
                    {
                        connection.Open();
                        Console.WriteLine("The target database connected.");
                        return;
                    }
                }
                catch
                {
                    Console.WriteLine("The target database hasn't been prepared.");
                    ErrorCount++;
                }

                Thread.Sleep(10000);
            }
        }
Exemplo n.º 17
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.Configure <ConnectionStringSetting>(Configuration.GetSection("ConnectionStringSetting"));

            ConnectionStringSetting siteSettings = new ConnectionStringSetting();

            Configuration.Bind("ConnectionStringSetting", siteSettings);

            TryToConnect(siteSettings);

            using (IServiceScope scope = CreateServices(siteSettings).CreateScope())
            {
                IMigrationRunner runner = scope.ServiceProvider.GetRequiredService <IMigrationRunner>();
                runner.MigrateUp();
            }

            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(o =>
            {
                o.LoginPath = "/Admin/System/Login";
            });
            services.CoolCatSetup(Configuration);
        }
 public WindowsServiceBusTransportConfiguration WithConnectionString(string connectionString)
 {
     ConnectionString = new ConnectionStringSetting {Value = connectionString};
     return this;
 }
Exemplo n.º 19
0
        private static List <ConnectionStringSetting> GetConnectionStringSettings(XContainer document)
        {
            var output = new List <ConnectionStringSetting>();

            var baseNode = document.Descendants()
                           .FirstOrDefault(
                d => d.Name.LocalName.Equals("connectionStrings", StringComparison.CurrentCultureIgnoreCase));

            if (baseNode != null)
            {
                foreach (var connectionString in baseNode.Descendants()
                         .Where(x => x.Name.LocalName.Equals("connectionString", StringComparison.CurrentCultureIgnoreCase)))
                {
                    var newItem = new ConnectionStringSetting
                    {
                        Name = connectionString.Attribute("name")?.Value
                    };

                    foreach (var parameter in connectionString.Descendants()
                             .Where(x => x.Name.LocalName.Equals("parameter")))
                    {
                        var name  = parameter.Attribute("name")?.Value;
                        var value = parameter.Attribute("value")?.Value;

                        if (name != null)
                        {
                            switch (name.ToLower())
                            {
                            case "server":
                                newItem.Server = value;

                                break;

                            case "database":
                                newItem.Database = value;

                                break;

                            case "user id":
                                newItem.UserId = value;

                                break;

                            case "password":
                                newItem.Password = value;

                                break;

                            case "application name":
                                newItem.ApplicationName = value;

                                break;

                            default:

                                throw new InvalidOperationException($"Parameter {name} is not supported.");
                            }
                        }
                    }

                    output.Add(newItem);
                }
            }

            return(output);
        }
Exemplo n.º 20
0
 public ConnectionManager(ConnectionStringSetting connectionStringSetting)
 {
     _connectionStringSetting = connectionStringSetting;
 }
Exemplo n.º 21
0
 public MySqlConnectionFactory(IOptions <ConnectionStringSetting> settingAccessor)
 {
     _setting = settingAccessor.Value;
 }