예제 #1
0
        private void InitializeTabPageSqlDatabaseSettings(SqlDatabaseSettings pSqlDatabaseSettings)
        {
            lblSQLServerSettings.Text = string.Format(" {0}: {1}     {2}:  {3}     {4}:  ****",
                                                      MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "Server.Text"), TechnicalSettings.DatabaseServerName,
                                                      MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "Login.Text"), TechnicalSettings.DatabaseLoginName,
                                                      MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "Password.Text"));

            lblSQLDatabaseSettingsName.Text = string.Format("{0}:  {1}            {2}:  {3}            {4}:  {5}",
                                                            MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "Database.Text"), pSqlDatabaseSettings.Name,
                                                            MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "BranchCode.Text"), pSqlDatabaseSettings.BranchCode,
                                                            MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "Size.Text"), pSqlDatabaseSettings.Size);
            lblSQLDatabaseSettingsVersion.Text = string.Format("{0}:  {1}", MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "Version.Text"), pSqlDatabaseSettings.Version);

            btnSave.Visible = true;
            btnDatabaseConnection.Visible = false;
            if (pSqlDatabaseSettings.Version != TechnicalSettings.SoftwareVersion)
            {
                tBDatabaseSettingsSchemaResult.Text = "";
                lblDatabaseSettingsMessage.Visible  = true;
                lblDatabaseSettingsMessage.Text     = MultiLanguageStrings.GetString(
                    Ressource.FrmDatabaseSettings, "UpgradeYourDatabase.Text");
                btnSQLDatabaseSettingsUpgrade.Text = string.Format("{0} {1} {2}", MultiLanguageStrings.GetString(
                                                                       Ressource.FrmDatabaseSettings, "Upgrade.Text"),
                                                                   MultiLanguageStrings.GetString(
                                                                       Ressource.FrmDatabaseSettings, "To.Text"), TechnicalSettings.SoftwareVersion);
                btnSQLDatabaseSettingsUpgrade.Enabled = true;
                btnSQLDatabaseSettingsUpgrade.Tag     = pSqlDatabaseSettings;
            }
            else
            {
                lblDatabaseSettingsMessage.Visible = false;
                btnSQLDatabaseSettingsUpgrade.Text = string.Format(MultiLanguageStrings.GetString(
                                                                       Ressource.FrmDatabaseSettings, "Upgrade.Text"));
                btnSQLDatabaseSettingsUpgrade.Enabled = false;
                CheckDatabaseStructure(pSqlDatabaseSettings.Name);
            }

            lblResultMessage.Text = string.Empty;
            tableLayoutPanelDatabaseSettings.Controls.Add(groupBoxSQLSettings, 0, 0);
            tableLayoutPanelDatabaseSettings.Controls.Add(groupBoxSaveSettings, 0, 3);
        }
예제 #2
0
        private static SqlDatabaseSettings _GetDatabaseInfos(string pDatabaseName, SqlConnection pSqlConnection)
        {
            SqlDatabaseSettings sqlDatabase = new SqlDatabaseSettings {
                Name = pDatabaseName
            };
            string version = DatabaseManager.GetDatabaseVersion(pDatabaseName, pSqlConnection);

            if (string.IsNullOrEmpty(version))
            {
                return(null);
            }

            sqlDatabase.Version = version;
            sqlDatabase.Size    = DatabaseManager.GetDatabaseSize(pDatabaseName, pSqlConnection);
            string code = DatabaseManager.GetDatabaseBranchCode(pDatabaseName, pSqlConnection);

            if (string.IsNullOrEmpty(code))
            {
                code = DatabaseManager.GetDatabaseBranchCodeFromBranches(pDatabaseName, pSqlConnection);
            }
            sqlDatabase.BranchCode = code;
            return(sqlDatabase);
        }
예제 #3
0
        private void buttonRestore_Click(object sender, EventArgs e)
        {
            if (listViewDatabases.SelectedItems.Count == 0)
            {
                lblResultMessage.ForeColor = Color.Red;
                lblResultMessage.Text      = string.Format(MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings, "SelectInList.Text"));
                return;
            }

            openFileDialog.FileName = "";
            if (DialogResult.OK != openFileDialog.ShowDialog())
            {
                return;
            }
            SqlDatabaseSettings sqlDatabase = (SqlDatabaseSettings)listViewDatabases.SelectedItems[0].Tag;

            btnRestore.Tag = sqlDatabase;

            DatabaseOperation dbo = new DatabaseOperation {
                Settings = sqlDatabase, File = openFileDialog.FileName
            };

            _exitApplicationIfClose            = true;
            groupBoxDatabaseManagement.Enabled = false;
            groupBoxSQLSettings.Enabled        = false;
            btnSave.Enabled            = false;
            lblResultMessage.ForeColor = Color.Black;
            lblResultMessage.Text      = string.Format("{0} {1} {2}",
                                                       MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings,
                                                                                      "RestoreDatabase.Text.Text"),
                                                       sqlDatabase.Name,
                                                       MultiLanguageStrings.GetString(Ressource.FrmDatabaseSettings,
                                                                                      "InProgress.Text"));

            bWDatabaseRestore.RunWorkerAsync(dbo);
        }
예제 #4
0
        public List <SqlDatabaseSettings> GetSQLDatabasesSettings(string pDatabaseServerName, string pDatabaseLoginName, string pDatabasePassword)
        {
            SqlConnection connection = ConnectionManager.GeneralSqlConnection;

            try
            {
                connection.Open();
                SQLInfoEnumerator sie = new SQLInfoEnumerator
                {
                    SQLServer = pDatabaseServerName,
                    Username  = pDatabaseLoginName,
                    Password  = pDatabasePassword
                };

                List <SqlDatabaseSettings> list = new List <SqlDatabaseSettings>();
                foreach (string database in sie.EnumerateSQLServersDatabases())
                {
                    SqlDatabaseSettings sqlDatabase = _GetDatabaseInfos(database, connection);
                    if (sqlDatabase == null)
                    {
                        continue;
                    }

                    list.Add(sqlDatabase);
                }

                connection.Close();
                List <string> filter = TechnicalSettings.AvailableDatabases;
                return(list.FindAll(db => 0 == filter.Count || filter.Contains(db.Name)));
            }
            catch (Exception)
            {
                connection.Close();
                throw;
            }
        }
예제 #5
0
        public static void AddSqlDbContext(this IServiceCollection services, IConfiguration configuration)
        {
            SqlDatabaseSettings _settings = new SqlDatabaseSettings();

            configuration.GetSection(nameof(SqlDatabaseSettings)).Bind(_settings);

            services.AddDbContextPool <SqlDBContext>(x => {
                x.UseSqlServer(
                    // x.UseNpgsql(
                    _settings.ServerUrl,
                    y => {
                    y.CommandTimeout(600);
                    y.EnableRetryOnFailure(maxRetryCount: 100, maxRetryDelay: TimeSpan.FromSeconds(5), errorNumbersToAdd: null);
                    // y.EnableRetryOnFailure(maxRetryCount: 100, maxRetryDelay: TimeSpan.FromSeconds(5), errorCodesToAdd: null);
                }
                    );
                x.EnableDetailedErrors();
                x.EnableSensitiveDataLogging();
            });

            services.AddScoped <IPropertyRepository, PropertyRepository>();

            services.AddScoped <IUnitOfWork, SqlUnitOfWork>();
        }
예제 #6
0
        private void InitializeTabPageSqlDatabaseSettings(string pDatabaseName)
        {
            SqlDatabaseSettings sqlDatabaseSettings = DatabaseServices.GetSQLDatabaseSettings(pDatabaseName);

            InitializeTabPageSqlDatabaseSettings(sqlDatabaseSettings);
        }
예제 #7
0
 public FinanceContext(SqlDatabaseSettings settings) : base()
 {
     _settings = settings;
 }