From 9f942f295e06e7a657e892f22592d5fbd8907554 Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Wed, 11 Apr 2018 13:35:32 -0400 Subject: [PATCH] Write all XML doc comments --- src/Tgstation.Server.Api/Models/Instance.cs | 2 +- .../Models/Internal/Job.cs | 2 +- .../Models/Internal/User.cs | 6 ++++ src/Tgstation.Server.Api/Models/User.cs | 4 +-- .../Configuration/DatabaseConfiguration.cs | 14 +++++++++ .../Configuration/DatabaseType.cs | 12 +++++++ src/Tgstation.Server.Host/Core/Application.cs | 9 +++--- .../Core/ApplicationBuilderExtensions.cs | 13 +++++--- .../Core/AuthenticationContext.cs | 7 +++-- .../Core/HttpContextExtensions.cs | 13 +++++--- .../Core/IAuthenticationContext.cs | 6 ++-- .../Core/IServerUpdateConsumer.cs | 7 +++++ .../Core/ISystemIdentity.cs | 18 +++++++++++ .../Core/ISystemIdentityFactory.cs | 17 +++++++++- .../Core/ITokenManager.cs | 24 ++++++++++---- .../Models/ChatChannel.cs | 3 +- .../Models/ChatSettings.cs | 18 ++++++++++- .../Models/CompileJob.cs | 7 +++++ .../Models/DatabaseContext.cs | 31 +++++++++++++++++++ .../Models/DatabaseSeeder.cs | 3 +- .../Models/DreamDaemonSettings.cs | 21 ++++++++++++- .../Models/DreamMakerSettings.cs | 17 ++++++++-- src/Tgstation.Server.Host/Models/Instance.cs | 7 ++++- .../Models/InstanceUser.cs | 4 +++ src/Tgstation.Server.Host/Models/Job.cs | 7 +++-- .../Models/RepositorySettings.cs | 15 ++++++++- .../Models/RevisionInformation.cs | 9 +++++- .../Models/ServerSettings.cs | 8 +++-- src/Tgstation.Server.Host/Models/TestMerge.cs | 7 +++-- src/Tgstation.Server.Host/Models/User.cs | 10 ++++-- src/Tgstation.Server.Host/ServerFactory.cs | 1 - 31 files changed, 270 insertions(+), 52 deletions(-) diff --git a/src/Tgstation.Server.Api/Models/Instance.cs b/src/Tgstation.Server.Api/Models/Instance.cs index c1f198d30a..bde9f13522 100644 --- a/src/Tgstation.Server.Api/Models/Instance.cs +++ b/src/Tgstation.Server.Api/Models/Instance.cs @@ -23,7 +23,7 @@ namespace Tgstation.Server.Api.Models public string Name { get; set; } /// - /// The path to where the is located + /// The path to where the is located. Changing this will temporarily offline the while it moves /// [Permissions(WriteRight = InstanceManagerRights.Relocate)] [Required] diff --git a/src/Tgstation.Server.Api/Models/Internal/Job.cs b/src/Tgstation.Server.Api/Models/Internal/Job.cs index a3f38d806d..b8ebe63b70 100644 --- a/src/Tgstation.Server.Api/Models/Internal/Job.cs +++ b/src/Tgstation.Server.Api/Models/Internal/Job.cs @@ -6,7 +6,7 @@ namespace Tgstation.Server.Api.Models.Internal /// /// Represents a long running job /// - [Model] + [Model(RequiresInstance = true)] public class Job { /// diff --git a/src/Tgstation.Server.Api/Models/Internal/User.cs b/src/Tgstation.Server.Api/Models/Internal/User.cs index 2a62da30b2..e8c137c04a 100644 --- a/src/Tgstation.Server.Api/Models/Internal/User.cs +++ b/src/Tgstation.Server.Api/Models/Internal/User.cs @@ -16,6 +16,12 @@ namespace Tgstation.Server.Api.Models.Internal [Permissions(DenyWrite = true)] public long Id { get; set; } + /// + /// If the is enabled since users cannot be deleted. System users cannot be disabled + /// + [Permissions(WriteRight = AdministrationRights.EditUsers)] + public bool Enabled { get; set; } + /// /// When the was created /// diff --git a/src/Tgstation.Server.Api/Models/User.cs b/src/Tgstation.Server.Api/Models/User.cs index 78bdb3e934..83fac4e82f 100644 --- a/src/Tgstation.Server.Api/Models/User.cs +++ b/src/Tgstation.Server.Api/Models/User.cs @@ -4,9 +4,9 @@ public sealed class User : Internal.User { /// - /// If the is enabled since users cannot be deleted + /// The who created this /// [Permissions(DenyWrite = true)] - public bool Enabled { get; set; } + public User CreatedBy { get; set; } } } \ No newline at end of file diff --git a/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs b/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs index ef28e52f8e..4afebe14a5 100644 --- a/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs +++ b/src/Tgstation.Server.Host/Configuration/DatabaseConfiguration.cs @@ -1,9 +1,23 @@ namespace Tgstation.Server.Host.Configuration { + /// + /// Configuration options for the + /// sealed class DatabaseConfiguration { + /// + /// The key for the the resides in + /// public const string Section = "Database"; + + /// + /// The to create + /// public DatabaseType DatabaseType { get; set; } + + /// + /// The connection string for the database + /// public string ConnectionString { get; set; } } } diff --git a/src/Tgstation.Server.Host/Configuration/DatabaseType.cs b/src/Tgstation.Server.Host/Configuration/DatabaseType.cs index 919c82ed47..bbc8be7798 100644 --- a/src/Tgstation.Server.Host/Configuration/DatabaseType.cs +++ b/src/Tgstation.Server.Host/Configuration/DatabaseType.cs @@ -1,9 +1,21 @@ namespace Tgstation.Server.Host.Configuration { + /// + /// Type of database to user + /// enum DatabaseType { + /// + /// Use Microsoft SQL Server + /// SqlServer, + /// + /// Use MySQL/MariaDB + /// MySql, + /// + /// Use SQLite 3 + /// Sqlite } } diff --git a/src/Tgstation.Server.Host/Core/Application.cs b/src/Tgstation.Server.Host/Core/Application.cs index 9f8f436f50..146d764b45 100644 --- a/src/Tgstation.Server.Host/Core/Application.cs +++ b/src/Tgstation.Server.Host/Core/Application.cs @@ -6,7 +6,6 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; -using System.Collections.Generic; using System.Globalization; using Tgstation.Server.Host.Configuration; using Tgstation.Server.Host.Models; @@ -78,7 +77,7 @@ namespace Tgstation.Server.Host.Core services.AddScoped(x => x.GetRequiredService()); break; default: - throw new InvalidOperationException("Invalid DatabaseType!"); + throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Invalid {0}!", nameof(DatabaseType))); } services.AddSingleton(); @@ -100,11 +99,11 @@ namespace Tgstation.Server.Host.Core applicationBuilder.UseAsyncInitialization(async (cancellationToken) => { - using (var scop = applicationBuilder.ApplicationServices.CreateScope()) - await scop.ServiceProvider.GetRequiredService().Initialize(cancellationToken).ConfigureAwait(false); + using (var scope = applicationBuilder.ApplicationServices.CreateScope()) + await scope.ServiceProvider.GetRequiredService().Initialize(cancellationToken).ConfigureAwait(false); }); - applicationBuilder.UseSystemAuthentication(); + applicationBuilder.UseAuthentication(); applicationBuilder.UseMvc(); } diff --git a/src/Tgstation.Server.Host/Core/ApplicationBuilderExtensions.cs b/src/Tgstation.Server.Host/Core/ApplicationBuilderExtensions.cs index a1714d6b5d..343053cdfd 100644 --- a/src/Tgstation.Server.Host/Core/ApplicationBuilderExtensions.cs +++ b/src/Tgstation.Server.Host/Core/ApplicationBuilderExtensions.cs @@ -1,13 +1,18 @@ using Microsoft.AspNetCore.Builder; -using System; -using System.Collections.Generic; -using System.Text; namespace Tgstation.Server.Host.Core { + /// + /// Extension methods for + /// static class ApplicationBuilderExtensions { - public static IApplicationBuilder UseSystemAuthentication(this IApplicationBuilder applicationBuilder) + /// + /// Apply the middleware + /// + /// The to add the middleware for + /// + public static IApplicationBuilder UseAuthentication(this IApplicationBuilder applicationBuilder) { AuthenticationContext.AddToPipeline(applicationBuilder); return applicationBuilder; diff --git a/src/Tgstation.Server.Host/Core/AuthenticationContext.cs b/src/Tgstation.Server.Host/Core/AuthenticationContext.cs index 9ba9cd4867..4737b0ad9b 100644 --- a/src/Tgstation.Server.Host/Core/AuthenticationContext.cs +++ b/src/Tgstation.Server.Host/Core/AuthenticationContext.cs @@ -7,6 +7,7 @@ using System.Threading; using System.Threading.Tasks; using Tgstation.Server.Api; using Tgstation.Server.Host.Models; +using Tgstation.Server.Api.Models; namespace Tgstation.Server.Host.Core { @@ -55,7 +56,7 @@ namespace Tgstation.Server.Host.Core { if (headers.IsTokenAuthentication) { - var user = await tokenManager.GetUser(headers.Token, httpContext.RequestAborted).ConfigureAwait(false); + var user = await tokenManager.GetUser(new Token { Value = headers.Token }, httpContext.RequestAborted).ConfigureAwait(false); systemIdentity = systemIdentityFactory.CreateSystemIdentity(user); } else @@ -98,13 +99,13 @@ namespace Tgstation.Server.Host.Core public void Dispose() => SystemIdentity.Dispose(); /// - public Task User(CancellationToken cancellationToken) + public Task User(CancellationToken cancellationToken) { throw new NotImplementedException(); } /// - public Task InstanceUser(Instance instance, CancellationToken cancellationToken) + public Task InstanceUser(Models.Instance instance, CancellationToken cancellationToken) { throw new NotImplementedException(); } diff --git a/src/Tgstation.Server.Host/Core/HttpContextExtensions.cs b/src/Tgstation.Server.Host/Core/HttpContextExtensions.cs index 7bca0daf5b..f81085d310 100644 --- a/src/Tgstation.Server.Host/Core/HttpContextExtensions.cs +++ b/src/Tgstation.Server.Host/Core/HttpContextExtensions.cs @@ -1,12 +1,17 @@ using Microsoft.AspNetCore.Http; -using System; -using System.Collections.Generic; -using System.Text; namespace Tgstation.Server.Host.Core { + /// + /// Extension methods for + /// static class HttpContextExtensions { - public static IAuthenticationContext AuthenticationContext(this HttpContext httpContext) => Core.AuthenticationContext.Current(httpContext); + /// + /// Get the associated with the + /// + /// The containing the + /// The associated with the + public static IAuthenticationContext AuthenticationContext(this HttpContext httpContext) => Core.AuthenticationContext.Current(httpContext); } } diff --git a/src/Tgstation.Server.Host/Core/IAuthenticationContext.cs b/src/Tgstation.Server.Host/Core/IAuthenticationContext.cs index 1d2466bbaf..81dc20535f 100644 --- a/src/Tgstation.Server.Host/Core/IAuthenticationContext.cs +++ b/src/Tgstation.Server.Host/Core/IAuthenticationContext.cs @@ -25,9 +25,9 @@ namespace Tgstation.Server.Host.Core /// /// The represented by and a given /// - /// The of the + /// The of the /// The for the operation - /// A resulting in the represented by and a given - Task InstanceUser(Instance instance, CancellationToken cancellationToken); + /// A resulting in the represented by and a given + Task InstanceUser(Instance instance, CancellationToken cancellationToken); } } \ No newline at end of file diff --git a/src/Tgstation.Server.Host/Core/IServerUpdateConsumer.cs b/src/Tgstation.Server.Host/Core/IServerUpdateConsumer.cs index b22df996ed..9055b7206e 100644 --- a/src/Tgstation.Server.Host/Core/IServerUpdateConsumer.cs +++ b/src/Tgstation.Server.Host/Core/IServerUpdateConsumer.cs @@ -1,7 +1,14 @@ namespace Tgstation.Server.Host.Core { + /// + /// Represents a service that may take an updated assembly and run it, stopping the current assembly in the process + /// interface IServerUpdateConsumer { + /// + /// Run a new assembly and stop the current one. This will likely trigger all active s + /// + /// The path to the new assembly void ApplyUpdate(string updatePath); } } diff --git a/src/Tgstation.Server.Host/Core/ISystemIdentity.cs b/src/Tgstation.Server.Host/Core/ISystemIdentity.cs index 6f60a6bc99..8901917d98 100644 --- a/src/Tgstation.Server.Host/Core/ISystemIdentity.cs +++ b/src/Tgstation.Server.Host/Core/ISystemIdentity.cs @@ -3,12 +3,30 @@ using System.Collections.Generic; namespace Tgstation.Server.Host.Core { + /// + /// Represents a user on the current + /// interface ISystemIdentity : IDisposable { + /// + /// A unique identifier for the user + /// string Uid { get; } + + /// + /// The user's name + /// string Username { get; } + + /// + /// Groups the user is in + /// IEnumerable Groups { get; } + /// + /// Clone the creating another copy that must have called on it + /// + /// A new mirroring the current one ISystemIdentity Clone(); } } \ No newline at end of file diff --git a/src/Tgstation.Server.Host/Core/ISystemIdentityFactory.cs b/src/Tgstation.Server.Host/Core/ISystemIdentityFactory.cs index 05e03ea829..a0de1cda52 100644 --- a/src/Tgstation.Server.Host/Core/ISystemIdentityFactory.cs +++ b/src/Tgstation.Server.Host/Core/ISystemIdentityFactory.cs @@ -1,10 +1,25 @@ -using Tgstation.Server.Api.Models; +using Tgstation.Server.Host.Models; namespace Tgstation.Server.Host.Core { + /// + /// Factory for s + /// interface ISystemIdentityFactory { + /// + /// Create a for a given + /// + /// The user to create a for + /// A new ISystemIdentity CreateSystemIdentity(User user); + + /// + /// Create a for a given username and password + /// + /// The username of the user + /// The password of the user + /// A new ISystemIdentity CreateSystemIdentity(string username, string password); } } diff --git a/src/Tgstation.Server.Host/Core/ITokenManager.cs b/src/Tgstation.Server.Host/Core/ITokenManager.cs index e898760f51..d34def21a2 100644 --- a/src/Tgstation.Server.Host/Core/ITokenManager.cs +++ b/src/Tgstation.Server.Host/Core/ITokenManager.cs @@ -1,15 +1,27 @@ -using System.Collections.Generic; -using System.Threading; +using System.Threading; using System.Threading.Tasks; using Tgstation.Server.Api.Models; namespace Tgstation.Server.Host.Core { + /// + /// For creating and decoding JWTs + /// interface ITokenManager { - Task GetUser(string token, CancellationToken cancellationToken); - Task CreateToken(User user, CancellationToken cancellationToken); - Task> UserTokens(User user, CancellationToken cancellationToken); - Task> AllTokens(CancellationToken cancellationToken); + /// + /// Get the user associated with a + /// + /// The to get the user for + /// The for the operation + /// The associated with the + Task GetUser(Token token, CancellationToken cancellationToken); + + /// + /// Create a for a given + /// + /// The to create the token for. Must have the and fields available + /// A new + Token CreateToken(Models.User user); } } diff --git a/src/Tgstation.Server.Host/Models/ChatChannel.cs b/src/Tgstation.Server.Host/Models/ChatChannel.cs index 8429585cdf..4e6878da32 100644 --- a/src/Tgstation.Server.Host/Models/ChatChannel.cs +++ b/src/Tgstation.Server.Host/Models/ChatChannel.cs @@ -1,9 +1,10 @@ namespace Tgstation.Server.Host.Models { + /// sealed class ChatChannel : Api.Models.ChatChannel { /// - /// The column ID + /// The row Id /// public long Id { get; set; } } diff --git a/src/Tgstation.Server.Host/Models/ChatSettings.cs b/src/Tgstation.Server.Host/Models/ChatSettings.cs index c62d8e23dd..8513dca245 100644 --- a/src/Tgstation.Server.Host/Models/ChatSettings.cs +++ b/src/Tgstation.Server.Host/Models/ChatSettings.cs @@ -3,17 +3,33 @@ using System.ComponentModel.DataAnnotations; namespace Tgstation.Server.Host.Models { + /// sealed class ChatSettings : Api.Models.Internal.ChatSettings { + /// + /// The row Id + /// public long Id { get; set; } + /// + /// The + /// public long InstanceId { get; set; } + /// + /// The parent + /// [Required] public Instance Instance { get; set; } + /// + /// See + /// public List AdminChannels { get; set; } - + + /// + /// See + /// public List GeneralChannels { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/CompileJob.cs b/src/Tgstation.Server.Host/Models/CompileJob.cs index 9e26c011e0..2b8404da46 100644 --- a/src/Tgstation.Server.Host/Models/CompileJob.cs +++ b/src/Tgstation.Server.Host/Models/CompileJob.cs @@ -2,11 +2,18 @@ namespace Tgstation.Server.Host.Models { + /// sealed class CompileJob : Api.Models.Internal.CompileJob { + /// + /// See + /// [Required] public User TriggeredBy { get; set; } + /// + /// See + /// [Required] public RevisionInformation RevisionInformation { get; set; } } diff --git a/src/Tgstation.Server.Host/Models/DatabaseContext.cs b/src/Tgstation.Server.Host/Models/DatabaseContext.cs index a429bf65eb..af4cd43664 100644 --- a/src/Tgstation.Server.Host/Models/DatabaseContext.cs +++ b/src/Tgstation.Server.Host/Models/DatabaseContext.cs @@ -26,15 +26,46 @@ namespace Tgstation.Server.Host.Models /// The for s /// public DbSet Logs { get; set; } + + /// + /// The s in the + /// public DbSet InstanceUsers { get; set; } + /// + /// The s in the + /// public DbSet ChatChannels { get; set; } + /// + /// The s in the + /// public DbSet ChatSettings { get; set; } + /// + /// The in the + /// public DbSet DreamDaemonSettings { get; set; } + /// + /// The in the + /// public DbSet DreamMakerSettings { get; set; } + /// + /// The s in the + /// public DbSet CompileJobs { get; set; } + /// + /// The s in the + /// public DbSet Jobs { get; set; } + /// + /// The s in the + /// public DbSet TestMerges { get; set; } + /// + /// The s in the + /// public DbSet RevisionInformations { get; set; } + /// + /// The in the + /// public DbSet RepositorySettings { get; set; } /// diff --git a/src/Tgstation.Server.Host/Models/DatabaseSeeder.cs b/src/Tgstation.Server.Host/Models/DatabaseSeeder.cs index 6a2cd85c0d..fd9f0b93de 100644 --- a/src/Tgstation.Server.Host/Models/DatabaseSeeder.cs +++ b/src/Tgstation.Server.Host/Models/DatabaseSeeder.cs @@ -38,7 +38,8 @@ namespace Tgstation.Server.Host.Models AdministrationRights = (AdministrationRights)~0, CreatedAt = DateTimeOffset.Now, InstanceManagerRights = (InstanceManagerRights)~0, - Name = "Admin" + Name = "Admin", + Enabled = true, }; cryptographySuite.RegenerateUserToken(admin); cryptographySuite.SetUserPassword(admin, DefaultAdminPassword); diff --git a/src/Tgstation.Server.Host/Models/DreamDaemonSettings.cs b/src/Tgstation.Server.Host/Models/DreamDaemonSettings.cs index 2573093598..33d0246b77 100644 --- a/src/Tgstation.Server.Host/Models/DreamDaemonSettings.cs +++ b/src/Tgstation.Server.Host/Models/DreamDaemonSettings.cs @@ -2,19 +2,38 @@ namespace Tgstation.Server.Host.Models { + /// sealed class DreamDaemonSettings : Api.Models.Internal.DreamDaemonSettings { + /// + /// The row Id + /// public long Id { get; set; } + /// + /// The PID of a currently running DD instance + /// public int? ProcessId { get; set; } + /// + /// The access token used for communication with DD + /// public string AccessToken { get; set; } - + + /// + /// The + /// public long InstanceId { get; set; } + /// + /// The parent + /// [Required] public Instance Instance { get; set; } + /// + /// See + /// public CompileJob CompileJob { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/DreamMakerSettings.cs b/src/Tgstation.Server.Host/Models/DreamMakerSettings.cs index fb79315315..c6621a07f4 100644 --- a/src/Tgstation.Server.Host/Models/DreamMakerSettings.cs +++ b/src/Tgstation.Server.Host/Models/DreamMakerSettings.cs @@ -2,15 +2,28 @@ namespace Tgstation.Server.Host.Models { + /// sealed class DreamMakerSettings : Api.Models.Internal.DreamMakerSettings { + /// + /// The row Id + /// public long Id { get; set; } - + + /// + /// The + /// public long InstanceId { get; set; } + /// + /// The parent + /// [Required] public Instance Instance { get; set; } - public CompileJob CompileJob { get; set; } + /// + /// + /// + public CompileJob LastJob { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/Instance.cs b/src/Tgstation.Server.Host/Models/Instance.cs index 0ecb141755..1732bcd3c0 100644 --- a/src/Tgstation.Server.Host/Models/Instance.cs +++ b/src/Tgstation.Server.Host/Models/Instance.cs @@ -1,6 +1,5 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; -using Tgstation.Server.Api.Models; namespace Tgstation.Server.Host.Models { @@ -21,9 +20,15 @@ namespace Tgstation.Server.Host.Models [Required] public DreamMakerSettings DreamMakerSettings { get; set; } + /// + /// The for the + /// [Required] public DreamDaemonSettings DreamDaemonSettings { get; set; } + /// + /// The for the + /// [Required] public RepositorySettings RepositorySettings { get; set; } diff --git a/src/Tgstation.Server.Host/Models/InstanceUser.cs b/src/Tgstation.Server.Host/Models/InstanceUser.cs index 7794b2d357..e2c343cbb1 100644 --- a/src/Tgstation.Server.Host/Models/InstanceUser.cs +++ b/src/Tgstation.Server.Host/Models/InstanceUser.cs @@ -1,7 +1,11 @@ namespace Tgstation.Server.Host.Models { + /// sealed class InstanceUser : Api.Models.InstanceUser { + /// + /// The row Id + /// public long Id { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/Job.cs b/src/Tgstation.Server.Host/Models/Job.cs index e902cd9b96..005972d7d6 100644 --- a/src/Tgstation.Server.Host/Models/Job.cs +++ b/src/Tgstation.Server.Host/Models/Job.cs @@ -2,12 +2,13 @@ namespace Tgstation.Server.Host.Models { + /// sealed class Job : Api.Models.Internal.Job { + /// + /// See + /// [Required] public User StartedBy { get; set; } - - [Required] - public Instance Instance { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/RepositorySettings.cs b/src/Tgstation.Server.Host/Models/RepositorySettings.cs index 782ef405db..5017df5343 100644 --- a/src/Tgstation.Server.Host/Models/RepositorySettings.cs +++ b/src/Tgstation.Server.Host/Models/RepositorySettings.cs @@ -2,15 +2,28 @@ namespace Tgstation.Server.Host.Models { + /// sealed class RepositorySettings : Api.Models.Internal.RepositorySettings { + /// + /// The row Id + /// public long Id { get; set; } + /// + /// The + /// public long InstanceId { get; set; } + /// + /// The parent + /// [Required] public Instance Instance { get; set; } - + + /// + /// See + /// public RevisionInformation RevisionInformation { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/RevisionInformation.cs b/src/Tgstation.Server.Host/Models/RevisionInformation.cs index 5d5b9a4885..dddd11bb77 100644 --- a/src/Tgstation.Server.Host/Models/RevisionInformation.cs +++ b/src/Tgstation.Server.Host/Models/RevisionInformation.cs @@ -2,10 +2,17 @@ namespace Tgstation.Server.Host.Models { + /// sealed class RevisionInformation : Api.Models.Internal.RevisionInformation { + /// + /// The row Id + /// public long Id { get; set; } - + + /// + /// See + /// public List TestMerges { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/ServerSettings.cs b/src/Tgstation.Server.Host/Models/ServerSettings.cs index 8a84475dad..df05f75182 100644 --- a/src/Tgstation.Server.Host/Models/ServerSettings.cs +++ b/src/Tgstation.Server.Host/Models/ServerSettings.cs @@ -1,9 +1,11 @@ -using System.ComponentModel.DataAnnotations; - -namespace Tgstation.Server.Host.Models +namespace Tgstation.Server.Host.Models { + /// sealed class ServerSettings : Api.Models.Internal.ServerSettings { + /// + /// The row Id + /// public long Id { get; set; } } } diff --git a/src/Tgstation.Server.Host/Models/TestMerge.cs b/src/Tgstation.Server.Host/Models/TestMerge.cs index b334c2b844..ad2eab8783 100644 --- a/src/Tgstation.Server.Host/Models/TestMerge.cs +++ b/src/Tgstation.Server.Host/Models/TestMerge.cs @@ -2,11 +2,12 @@ namespace Tgstation.Server.Host.Models { - /// - /// Represent a merge of a live pull request - /// + /// sealed class TestMerge : Api.Models.Internal.TestMerge { + /// + /// See + /// [Required] public User MergedBy { get; set; } } diff --git a/src/Tgstation.Server.Host/Models/User.cs b/src/Tgstation.Server.Host/Models/User.cs index 139f940917..9977f81067 100644 --- a/src/Tgstation.Server.Host/Models/User.cs +++ b/src/Tgstation.Server.Host/Models/User.cs @@ -4,9 +4,7 @@ using Tgstation.Server.Host.Core; namespace Tgstation.Server.Host.Models { - /// - /// Represents a in the database - /// + /// sealed class User : Api.Models.Internal.User { /// @@ -20,6 +18,12 @@ namespace Tgstation.Server.Host.Models [StringLength(CryptographySuite.SecureStringLength)] public string TokenSecret { get; set; } + /// + /// See + /// + [Required] + public User CreatedBy { get; set; } + /// /// The s for the /// diff --git a/src/Tgstation.Server.Host/ServerFactory.cs b/src/Tgstation.Server.Host/ServerFactory.cs index f934789cf6..810ef924e2 100644 --- a/src/Tgstation.Server.Host/ServerFactory.cs +++ b/src/Tgstation.Server.Host/ServerFactory.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Hosting; using Tgstation.Server.Host.Startup; namespace Tgstation.Server.Host