diff --git a/build/analyzers.ruleset b/build/analyzers.ruleset index 9d8283bffa..bbf7b12dab 100644 --- a/build/analyzers.ruleset +++ b/build/analyzers.ruleset @@ -30,7 +30,7 @@ - + diff --git a/src/Tgstation.Server.Api/ApiHeaders.cs b/src/Tgstation.Server.Api/ApiHeaders.cs index f7bf788a7e..b1be91ff6f 100644 --- a/src/Tgstation.Server.Api/ApiHeaders.cs +++ b/src/Tgstation.Server.Api/ApiHeaders.cs @@ -137,6 +137,9 @@ namespace Tgstation.Server.Api /// The containing the public ApiHeaders(RequestHeaders requestHeaders) { + if (requestHeaders == null) + throw new ArgumentNullException(nameof(requestHeaders)); + var jsonAccept = new Microsoft.Net.Http.Headers.MediaTypeHeaderValue(ApplicationJson); if (!requestHeaders.Accept.Any(x => x.MediaType == jsonAccept.MediaType)) throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Client does not accept {0}!", ApplicationJson)); diff --git a/src/Tgstation.Server.Api/Models/Internal/DreamDaemonLaunchParameters.cs b/src/Tgstation.Server.Api/Models/Internal/DreamDaemonLaunchParameters.cs index 34054f4487..43999fb783 100644 --- a/src/Tgstation.Server.Api/Models/Internal/DreamDaemonLaunchParameters.cs +++ b/src/Tgstation.Server.Api/Models/Internal/DreamDaemonLaunchParameters.cs @@ -1,4 +1,5 @@ -using System.ComponentModel.DataAnnotations; +using System; +using System.ComponentModel.DataAnnotations; namespace Tgstation.Server.Api.Models.Internal { @@ -43,7 +44,7 @@ namespace Tgstation.Server.Api.Models.Internal /// The to compare against /// if they match, otherwise public bool Match(DreamDaemonLaunchParameters otherParameters) => - AllowWebClient == otherParameters.AllowWebClient + AllowWebClient == (otherParameters?.AllowWebClient ?? throw new ArgumentNullException(nameof(otherParameters))) && SecurityLevel == otherParameters.SecurityLevel && PrimaryPort == otherParameters.PrimaryPort && SecondaryPort == otherParameters.SecondaryPort diff --git a/src/Tgstation.Server.Host.Service/ServerService.cs b/src/Tgstation.Server.Host.Service/ServerService.cs index b82dd1de65..42bb08041f 100644 --- a/src/Tgstation.Server.Host.Service/ServerService.cs +++ b/src/Tgstation.Server.Host.Service/ServerService.cs @@ -2,7 +2,6 @@ using Microsoft.Extensions.Logging.EventLog; using System; using System.Diagnostics; -using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.ServiceProcess; using System.Threading; @@ -85,9 +84,7 @@ namespace Tgstation.Server.Host.Service Task.Run(Stop, cancellationToken); } catch (OperationCanceledException) { } -#pragma warning disable CA1031 // Do not catch general exception types catch (Exception e) -#pragma warning restore CA1031 // Do not catch general exception types { EventLog.WriteEntry(String.Format(CultureInfo.InvariantCulture, "Error stopping service! Exception: {0}", e)); } @@ -97,7 +94,6 @@ namespace Tgstation.Server.Host.Service } /// - [SuppressMessage("Microsoft.Usage", "CA2213:DisposableFieldsShouldBeDisposed", MessageId = "cancellationTokenSource", Justification = "IT'S DISPOSED RIGHT THERE YOU FUCCBOI!")] protected override void Dispose(bool disposing) { cancellationTokenSource?.Dispose(); diff --git a/src/Tgstation.Server.Host/Components/Compiler/DreamMaker.cs b/src/Tgstation.Server.Host/Components/Compiler/DreamMaker.cs index b4b52bf9ba..318243c064 100644 --- a/src/Tgstation.Server.Host/Components/Compiler/DreamMaker.cs +++ b/src/Tgstation.Server.Host/Components/Compiler/DreamMaker.cs @@ -176,9 +176,9 @@ namespace Tgstation.Server.Host.Components.Compiler var dirA = ioManager.ConcatPath(job.DirectoryName.ToString(), ADirectoryName); job.MinimumSecurityLevel = securityLevel; // needed for the TempDmbProvider - var provider = new TemporaryDmbProvider(ioManager.ResolvePath(dirA), String.Concat(job.DmeName, DmbExtension), job); - var timeoutAt = DateTimeOffset.Now.AddSeconds(timeout); + + using (var provider = new TemporaryDmbProvider(ioManager.ResolvePath(dirA), String.Concat(job.DmeName, DmbExtension), job)) using (var controller = await sessionControllerFactory.LaunchNew(launchParameters, provider, byondLock, true, true, true, cancellationToken).ConfigureAwait(false)) { var launchResult = await controller.LaunchResult.ConfigureAwait(false); diff --git a/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs b/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs index 997f463571..cfa7c81c0d 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/SessionControllerFactory.cs @@ -296,29 +296,30 @@ namespace Tgstation.Server.Host.Components.Watchdog { networkPromptReaper.RegisterProcess(process); result = new SessionController(reattachInformation, process, byondLock, byondTopicSender, chatJsonTrackingContext, context, chat, loggerFactory.CreateLogger(), null, null); + + process = null; + context = null; + byondLock = null; + chatJsonTrackingContext = null; } finally { - if (result == null) - process.Dispose(); + process?.Dispose(); } } finally { - if (result == null) - context.Dispose(); + context?.Dispose(); } } finally { - if (result == null) - byondLock.Dispose(); + byondLock?.Dispose(); } } finally { - if (result == null) - chatJsonTrackingContext.Dispose(); + chatJsonTrackingContext?.Dispose(); } return result; diff --git a/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs b/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs index 0aa84f2601..84ea3fb90d 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs @@ -208,6 +208,10 @@ namespace Tgstation.Server.Host.Components.Watchdog DisposeAndNullControllers(); semaphore.Dispose(); restartRegistration.Dispose(); + + // mostly here to please fxcop, but it definitely should be disposed already + Debug.Assert(monitorCts == null, "We reached Disposes() an monitorCts is not null!"); + monitorCts?.Dispose(); } /// @@ -679,6 +683,7 @@ namespace Tgstation.Server.Host.Components.Watchdog monitorCts.Cancel(); await monitorTask.ConfigureAwait(false); monitorCts.Dispose(); + monitorCts = null; monitorTask = null; return true; } diff --git a/src/Tgstation.Server.Host/Core/SetupWizard.cs b/src/Tgstation.Server.Host/Core/SetupWizard.cs index 44fc7eb3ff..ed782260ff 100644 --- a/src/Tgstation.Server.Host/Core/SetupWizard.cs +++ b/src/Tgstation.Server.Host/Core/SetupWizard.cs @@ -274,7 +274,8 @@ namespace Tgstation.Server.Host.Core await console.WriteAsync("Testing create DB permission...", true, cancellationToken).ConfigureAwait(false); using (var command = testConnection.CreateCommand()) { - command.CommandText = String.Format(CultureInfo.InvariantCulture, "CREATE DATABASE {0}", databaseName); + command.CommandText = "CREATE DATABASE ?"; + command.Parameters.Add(databaseName); await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false); } @@ -282,7 +283,8 @@ namespace Tgstation.Server.Host.Core await console.WriteAsync("Dropping test database...", true, cancellationToken).ConfigureAwait(false); using (var command = testConnection.CreateCommand()) { - command.CommandText = String.Format(CultureInfo.InvariantCulture, "DROP DATABASE {0}", databaseName); + command.CommandText = "DROP DATABASE ?"; + command.Parameters.Add(databaseName); try { await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180906135553_MSInitialCreate.cs b/src/Tgstation.Server.Host/Models/Migrations/20180906135553_MSInitialCreate.cs index c796a12444..cb61dfd5cc 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180906135553_MSInitialCreate.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180906135553_MSInitialCreate.cs @@ -16,6 +16,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.CreateTable( name: "Users", columns: table => new @@ -596,6 +599,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_Jobs_Instances_InstanceId", table: "Jobs"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180906143029_MYInitialCreate.cs b/src/Tgstation.Server.Host/Models/Migrations/20180906143029_MYInitialCreate.cs index 2da9d98878..7ceb691436 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180906143029_MYInitialCreate.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180906143029_MYInitialCreate.cs @@ -16,6 +16,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.CreateTable( name: "Users", columns: table => new @@ -593,6 +596,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_Jobs_Instances_InstanceId", table: "Jobs"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180918020726_MYAddMinimumSecurity.cs b/src/Tgstation.Server.Host/Models/Migrations/20180918020726_MYAddMinimumSecurity.cs index 95950e251f..d2d3149416 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180918020726_MYAddMinimumSecurity.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180918020726_MYAddMinimumSecurity.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; using Tgstation.Server.Api.Models; namespace Tgstation.Server.Host.Models.Migrations @@ -14,6 +15,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.AddColumn( name: "ApiValidationSecurityLevel", table: "DreamMakerSettings", @@ -33,6 +37,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropColumn( name: "ApiValidationSecurityLevel", table: "DreamMakerSettings"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180918021228_MSAddMinimumSecurity.cs b/src/Tgstation.Server.Host/Models/Migrations/20180918021228_MSAddMinimumSecurity.cs index 9ac5b22b9f..67abc2ea84 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180918021228_MSAddMinimumSecurity.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180918021228_MSAddMinimumSecurity.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; using Tgstation.Server.Api.Models; namespace Tgstation.Server.Host.Models.Migrations @@ -14,6 +15,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.AddColumn( name: "ApiValidationSecurityLevel", table: "DreamMakerSettings", @@ -33,6 +37,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropColumn( name: "ApiValidationSecurityLevel", table: "DreamMakerSettings"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs b/src/Tgstation.Server.Host/Models/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs index c5bf5fa166..2bb9547f3e 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180918204520_MYNullableAndForeignKeyCleanup.cs @@ -14,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_Instances_WatchdogReattachInformations_WatchdogReattachInfor~", table: "Instances"); @@ -122,6 +125,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_TestMerges_RevisionInformations_PrimaryRevisionInformationId", table: "TestMerges"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs b/src/Tgstation.Server.Host/Models/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs index 3cc60483d6..ec767c8e53 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180918205224_MSNullableAndForeignKeyCleanup.cs @@ -14,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_Instances_WatchdogReattachInformations_WatchdogReattachInformationId", table: "Instances"); @@ -120,6 +123,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_TestMerges_RevisionInformations_PrimaryRevisionInformationId", table: "TestMerges"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180926033145_MSReattachCompileJobRequired.cs b/src/Tgstation.Server.Host/Models/Migrations/20180926033145_MSReattachCompileJobRequired.cs index 1de3ab48ca..8bed2d3671 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180926033145_MSReattachCompileJobRequired.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180926033145_MSReattachCompileJobRequired.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; namespace Tgstation.Server.Host.Models.Migrations { @@ -13,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_ReattachInformations_CompileJobs_CompileJobId", table: "ReattachInformations"); @@ -39,6 +43,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_ReattachInformations_CompileJobs_CompileJobId", table: "ReattachInformations"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20180926034014_MYReattachCompileJobRequired.cs b/src/Tgstation.Server.Host/Models/Migrations/20180926034014_MYReattachCompileJobRequired.cs index 6eb1596cc8..b51167b1a3 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20180926034014_MYReattachCompileJobRequired.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20180926034014_MYReattachCompileJobRequired.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; namespace Tgstation.Server.Host.Models.Migrations { @@ -13,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_ReattachInformations_CompileJobs_CompileJobId", table: "ReattachInformations"); @@ -39,6 +43,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_ReattachInformations_CompileJobs_CompileJobId", table: "ReattachInformations"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20181124231534_MSToggleTestmergeComments.cs b/src/Tgstation.Server.Host/Models/Migrations/20181124231534_MSToggleTestmergeComments.cs index 752755e8c1..8ec93a1f6b 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20181124231534_MSToggleTestmergeComments.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20181124231534_MSToggleTestmergeComments.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; namespace Tgstation.Server.Host.Models.Migrations { @@ -13,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.AddColumn( name: "PostTestMergeComment", table: "RepositorySettings", @@ -26,6 +30,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropColumn( name: "PostTestMergeComment", table: "RepositorySettings"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20181124231549_MYToggleTestmergeComments.cs b/src/Tgstation.Server.Host/Models/Migrations/20181124231549_MYToggleTestmergeComments.cs index e34f586448..dddde6535d 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20181124231549_MYToggleTestmergeComments.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20181124231549_MYToggleTestmergeComments.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; namespace Tgstation.Server.Host.Models.Migrations { @@ -13,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.AddColumn( name: "PostTestMergeComment", table: "RepositorySettings", @@ -26,6 +30,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropColumn( name: "PostTestMergeComment", table: "RepositorySettings"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20190219041825_MSFixRevInfoIndex.cs b/src/Tgstation.Server.Host/Models/Migrations/20190219041825_MSFixRevInfoIndex.cs index 3f24dd001a..622f0cc147 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20190219041825_MSFixRevInfoIndex.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20190219041825_MSFixRevInfoIndex.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; namespace Tgstation.Server.Host.Models.Migrations { @@ -13,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropIndex( name: "IX_RevisionInformations_CommitSha", table: "RevisionInformations"); @@ -34,6 +38,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropIndex( name: "IX_RevisionInformations_InstanceId_CommitSha", table: "RevisionInformations"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/20190219042440_MYFixRevInfoIndex.cs b/src/Tgstation.Server.Host/Models/Migrations/20190219042440_MYFixRevInfoIndex.cs index dab01e982b..a76290268a 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/20190219042440_MYFixRevInfoIndex.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/20190219042440_MYFixRevInfoIndex.cs @@ -1,4 +1,5 @@ using Microsoft.EntityFrameworkCore.Migrations; +using System; namespace Tgstation.Server.Host.Models.Migrations { @@ -13,6 +14,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Up(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_RevisionInformations_Instances_InstanceId", table: "RevisionInformations"); @@ -46,6 +50,9 @@ namespace Tgstation.Server.Host.Models.Migrations /// The to use protected override void Down(MigrationBuilder migrationBuilder) { + if (migrationBuilder == null) + throw new ArgumentNullException(nameof(migrationBuilder)); + migrationBuilder.DropForeignKey( name: "FK_RevisionInformations_Instances_InstanceId", table: "RevisionInformations"); diff --git a/src/Tgstation.Server.Host/Models/Migrations/DesignTimeDbContextFactoryHelpers.cs b/src/Tgstation.Server.Host/Models/Migrations/DesignTimeDbContextFactoryHelpers.cs index 98af100f86..cb4e730d1e 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/DesignTimeDbContextFactoryHelpers.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/DesignTimeDbContextFactoryHelpers.cs @@ -7,7 +7,7 @@ using Tgstation.Server.Host.Configuration; namespace Tgstation.Server.Host.Models.Migrations { /// - /// Contains helpers for creating design time s + /// Contains helpers for creating design time s /// static class DesignTimeDbContextFactoryHelpers { diff --git a/src/Tgstation.Server.Host/Models/Migrations/MySqlDesignTimeDbContextFactory.cs b/src/Tgstation.Server.Host/Models/Migrations/MySqlDesignTimeDbContextFactory.cs index 14aafaca46..8bc131c39b 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/MySqlDesignTimeDbContextFactory.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/MySqlDesignTimeDbContextFactory.cs @@ -10,6 +10,12 @@ namespace Tgstation.Server.Host.Models.Migrations sealed class MySqlDesignTimeDbContextFactory : IDesignTimeDbContextFactory { /// - public MySqlDatabaseContext CreateDbContext(string[] args) => new MySqlDatabaseContext(new DbContextOptions(), DesignTimeDbContextFactoryHelpers.GetDbContextOptions(), new DatabaseSeeder(new CryptographySuite(new PasswordHasher())), new LoggerFactory().CreateLogger()); + public MySqlDatabaseContext CreateDbContext(string[] args) + { + using (var loggerFactory = LoggerFactory.Create(builder => { })) + { + return new MySqlDatabaseContext(new DbContextOptions(), DesignTimeDbContextFactoryHelpers.GetDbContextOptions(), new DatabaseSeeder(new CryptographySuite(new PasswordHasher())), loggerFactory.CreateLogger()); + } + } } } diff --git a/src/Tgstation.Server.Host/Models/Migrations/SqlServerDesignTimeDbContextFactory.cs b/src/Tgstation.Server.Host/Models/Migrations/SqlServerDesignTimeDbContextFactory.cs index bf903b09c8..4ae89b26f1 100644 --- a/src/Tgstation.Server.Host/Models/Migrations/SqlServerDesignTimeDbContextFactory.cs +++ b/src/Tgstation.Server.Host/Models/Migrations/SqlServerDesignTimeDbContextFactory.cs @@ -10,6 +10,12 @@ namespace Tgstation.Server.Host.Models.Migrations sealed class SqlServerDesignTimeDbContextFactory : IDesignTimeDbContextFactory { /// - public SqlServerDatabaseContext CreateDbContext(string[] args) => new SqlServerDatabaseContext(new DbContextOptions(), DesignTimeDbContextFactoryHelpers.GetDbContextOptions(), new DatabaseSeeder(new CryptographySuite(new PasswordHasher())), new LoggerFactory().CreateLogger()); + public SqlServerDatabaseContext CreateDbContext(string[] args) + { + using (var loggerFactory = LoggerFactory.Create(builder => { })) + { + return new SqlServerDatabaseContext(new DbContextOptions(), DesignTimeDbContextFactoryHelpers.GetDbContextOptions(), new DatabaseSeeder(new CryptographySuite(new PasswordHasher())), loggerFactory.CreateLogger()); + } + } } } diff --git a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj index e7b5bfac57..f42cd119c1 100644 --- a/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj +++ b/src/Tgstation.Server.Host/Tgstation.Server.Host.csproj @@ -39,10 +39,14 @@ - + + + + +