コード例 #1
0
        public async Task <IActionResult> Index(DatabaseDetails database)
        {
            if (!string.IsNullOrWhiteSpace(database.Server))
            {
                // Connect to Azure SQL with AAD password auth

                SqlConnectionStringBuilder csb = GetConnectionStringBuilder(database);

                try
                {
                    database.SuccessfulConnection = await IsAzureSqlAsync(csb.ConnectionString);
                }
                catch (Exception e)
                {
                    database.ErrorMessage = e.Message;
                    Exception inner = e.InnerException;

                    while (!(inner is null))
                    {
                        database.ErrorMessage = inner.Message;
                        inner = inner.InnerException;
                    }
                    ;
                }
            }

            return(View(database));
        }
コード例 #2
0
        private void ShowDatabaseDetails()
        {
            var window = new DatabaseDetails();

            window.Show();
            CloseAction();
        }
コード例 #3
0
 private static SqlConnectionStringBuilder GetConnectionStringBuilder(DatabaseDetails database) => new SqlConnectionStringBuilder
 {
     DataSource             = database.Port == 0 ? database.Server : $"{database.Server},{database.Port}",
     InitialCatalog         = database.DatabaseName,
     UserID                 = database.UserName,
     Password               = database.Password,
     Authentication         = SqlAuthenticationMethod.ActiveDirectoryPassword,
     IntegratedSecurity     = false,
     Encrypt                = true,
     TrustServerCertificate = false,
     ConnectRetryCount      = 5,
     ConnectTimeout         = 30
 };
コード例 #4
0
ファイル: Program.cs プロジェクト: aliiftikhar/SODI
        private static void Import <T>(IXmlRepository xmlRepository, DatabaseDetails databaseConnectionDetails, Logger logger)
            where T : IStackOverflowEntity, new()
        {
            IDatabaseRepository <T> repository =
                new DatabaseRepositoryStrategy <T>(databaseConnectionDetails).GetDatabaseRepository();

            T entity =
                new T();

            IDataImportService <T> dataImportService =
                new DataImportServiceLogger <T>(logger,
                                                new DataImportService <T>(repository, xmlRepository, entity));

            dataImportService.ImportData();
        }
コード例 #5
0
        public SqlServerRepository(DatabaseDetails dbConnectionDetails)
        {
            this.dbConnectionDetails = dbConnectionDetails;

            this.connectionString =
                String.Format("Server={0};Database={1};User Id={2};Password={3};",
                              dbConnectionDetails.Server,
                              dbConnectionDetails.DatabaseName,
                              dbConnectionDetails.Username,
                              dbConnectionDetails.Password);

            this.masterConnectionString =
                String.Format("Server={0};Database={1};User Id={2};Password={3};",
                              dbConnectionDetails.Server,
                              "master",
                              dbConnectionDetails.Username,
                              dbConnectionDetails.Password);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: aliiftikhar/SODI
        static void Main(string[] args)
        {
            string xmlSourceFolderPathIncludingLastSlash =
                ConfigurationManager.AppSettings["XmlSourceFolderPathIncludingLastSlash"];

            IXmlRepository xmlRepository =
                new XmlRepository(xmlSourceFolderPathIncludingLastSlash);

            DatabaseDetails databaseDetails =
                GetDatabaseDetailsFromAppConfig();

            Logger logger =
                new Logger();

            ImportStackOverflowEntities(xmlRepository, databaseDetails, logger);

            logger.Log("All Done");
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: aliiftikhar/SODI
        private static DatabaseDetails GetDatabaseDetailsFromAppConfig()
        {
            DatabaseDetails databaseConnectionDetails =
                new DatabaseDetails();

            databaseConnectionDetails.Type =
                (DatabaseType)Enum.Parse(typeof(DatabaseType), ConfigurationManager.AppSettings["DatabaseType"]);

            databaseConnectionDetails.Server =
                ConfigurationManager.AppSettings["DatabaseServerName"];

            databaseConnectionDetails.DatabaseName =
                ConfigurationManager.AppSettings["DatabaseName"];

            databaseConnectionDetails.Username =
                ConfigurationManager.AppSettings["DatabaseUsername"];

            databaseConnectionDetails.Password =
                ConfigurationManager.AppSettings["DatabasePassword"];

            return(databaseConnectionDetails);
        }
コード例 #8
0
ファイル: Migrator.cs プロジェクト: glav/DbMigrationsDemo
        private static int RunPostScriptIfNotInDebugMode(DatabaseDetails dbDetails)
        {
#if DEBUG
            Logger.LogMessage("In DEBUG mode, not executing POST creation script");
#else
            Logger.LogMessage("Not in DEBUG mode, about to execute POST creation script");
            var postCreator =
                DeployChanges.To
                .SqlDatabase(dbDetails.ConnectionString)
                .WithScriptsFromFileSystem(dbDetails.PostScriptsDirectory)
                .JournalTo(new NullJournal())
                .LogToConsole()
                .Build();

            var postResult = postCreator.PerformUpgrade();
            if (!postResult.Successful)
            {
                Logger.LogMessage(postResult.Error.Message, true);
                return(-1);
            }
#endif

            return(0);
        }
コード例 #9
0
 public void Update(DatabaseDetails databaseDetails) =>
 _dbContext.Update(databaseDetails);
コード例 #10
0
 public void Add(DatabaseDetails databaseDetails) =>
 _dbContext.Add(databaseDetails);
コード例 #11
0
ファイル: Program.cs プロジェクト: aliiftikhar/SODI
        private static void ImportStackOverflowEntities(IXmlRepository xmlRepository, DatabaseDetails databaseDetails, Logger logger)
        {
            Import <TagEntity>(xmlRepository, databaseDetails, logger);

            Import <UserEntity>(xmlRepository, databaseDetails, logger);

            Import <BadgeEntity>(xmlRepository, databaseDetails, logger);

            Import <VoteEntity>(xmlRepository, databaseDetails, logger);

            Import <CommentEntity>(xmlRepository, databaseDetails, logger);

            Import <PostEntity>(xmlRepository, databaseDetails, logger);
        }
コード例 #12
0
        public DatabaseRepositoryStrategy(DatabaseDetails databaseDetails)
        {
            this.databaseDetails = databaseDetails;

            GetSupportedDatabaseTypeRepositories();
        }