Пример #1
0
        public static SqlConnection CreateAndOpenSqlConnection()
        {
            var db            = new ProjectFirmaSqlDatabase();
            var sqlConnection = db.CreateConnection();

            sqlConnection.Open();
            return(sqlConnection);
        }
Пример #2
0
 public void TestFixtureSetup()
 {
     lock (_setupLockObject)
     {
         if (!_projectFirmaDatabaseIsSetUp)
         {
             _db = new ProjectFirmaSqlDatabase();
             _projectFirmaDatabaseIsSetUp = true;
         }
     }
 }
Пример #3
0
 public static void DoPublishingSql()
 {
     try
     {
         var sqlDatabaseConnectionString = FirmaWebConfiguration.DatabaseConnectionString;
         var sqlQueryOne = $"dbo.pImportLoaTabularData";
         using (var command = new SqlCommand(sqlQueryOne))
         {
             var sqlConnection = new SqlConnection(sqlDatabaseConnectionString);
             using (var conn = sqlConnection)
             {
                 command.Connection     = conn;
                 command.CommandTimeout = 400;
                 ProjectFirmaSqlDatabase.ExecuteSqlCommand(command);
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw new SitkaDisplayErrorException($"Problem calling SQL: {e.Message}");
     }
 }
 public void TestFixtureSetup()
 {
     _db = new ProjectFirmaSqlDatabase();
 }
        public void UrlsInTextColumnsInDatabaseMatchDatabaseRecords()
        {
            //TODO: Not sure if ProjectUpdateBatch should be in the exception list, but not clear how to correct data that has already posted that is breaking this test.
            const string  findAnyColumnsThatCouldContainUrls = @"
select c.TABLE_CATALOG, c.TABLE_SCHEMA, c.TABLE_NAME, c.COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS c
     join INFORMATION_SCHEMA.TABLES t on c.TABLE_CATALOG = t.TABLE_CATALOG and c.TABLE_SCHEMA = t.TABLE_SCHEMA and c.TABLE_NAME = t.TABLE_NAME
where c.DATA_TYPE in ('char','nvarchar','text','ntext','varchar')
      and t.TABLE_TYPE = 'BASE TABLE'  and t.TABLE_NAME not in ('AuditLog', 'FirmaPage', 'ProjectUpdateBatch')
";
            List <string> sqlQueriesToGatherDataWithUrls;

            using (var command = new SqlCommand(findAnyColumnsThatCouldContainUrls))
            {
                var sqlConnection = _db.CreateConnection();
                using (var conn = sqlConnection)
                {
                    command.Connection = conn;
                    using (var dt = ProjectFirmaSqlDatabase.ExecuteSqlCommand(command).Tables[0])
                    {
                        sqlQueriesToGatherDataWithUrls =
                            dt.Rows.Cast <DataRow>()
                            .Select(
                                x =>
                                String.Format(
                                    "select '{0}' as TableCatalog, '{1}' as TableSchema, '{2}' as TableName, '{3}' as ColumnName, [{3}] as ColumnValue from [{0}].[{1}].[{2}] where [{3}] like '%{4}%' or [{3}] like '%{5}%'",
                                    x["TABLE_CATALOG"],
                                    x["TABLE_SCHEMA"],
                                    x["TABLE_NAME"],
                                    x["COLUMN_NAME"],
                                    SitkaWebConfiguration.ApplicationDomain,
                                    ControllerPartOfUri))
                            .ToList();
                    }
                }
            }

            var dataFromRowsAndColumnsWithUrls = sqlQueriesToGatherDataWithUrls.AsParallel().SelectMany(query =>
            {
                List <ResultRow> thisColumnData;
                using (var command = new SqlCommand(query))
                {
                    var sqlConnection = _db.CreateConnection();
                    using (var conn = sqlConnection)
                    {
                        command.Connection = conn;
                        using (var dt = ProjectFirmaSqlDatabase.ExecuteSqlCommand(command).Tables[0])
                        {
                            thisColumnData =
                                dt.Rows.Cast <DataRow>()
                                .Select(x => new ResultRow((string)x["TableCatalog"], (string)x["TableSchema"], (string)x["TableName"], (string)x["ColumnName"], (string)x["ColumnValue"]))
                                .ToList();
                        }
                    }
                }
                return(thisColumnData);
            }).ToList();

            AssertThatAllReferencedFileResourceGuidsExist(dataFromRowsAndColumnsWithUrls);
            AssertThatAllUrlsAreServerRootRelative(dataFromRowsAndColumnsWithUrls);
            AssertThatAllUrlsDoNotContainAbsoluteUrlsToProdOrQa(dataFromRowsAndColumnsWithUrls);
        }