From 32f191f7e370a4b28c3b1bfac9c4a0a06000e0cd Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Thu, 15 Dec 2022 22:36:15 +0100 Subject: [PATCH] Refactor --- .../AppDb.cs => Backend/Database/Database.cs | 6 +- .../Database}/Tables/DbInfo.cs | 2 +- .../Database}/Tables/Invite.cs | 4 +- .../Database}/Tables/User.cs | 2 +- Migrations.cs => Backend/Migrations.cs | 9 +- Program.cs => Backend/Program.cs | 5 +- Startup.cs => Backend/Startup.cs | 4 +- StreamUtils.cs => Backend/StreamUtils.cs | 7 +- Controllers/RtmpAuthController.cs | 4 +- Pages/Admin.cshtml | 7 +- Pages/Admin.cshtml.cs | 8 +- Pages/Content.cshtml | 1 + Pages/Credits.cshtml | 1 + Pages/Dashboard.cshtml | 5 +- Pages/Dashboard.cshtml.cs | 6 +- Pages/Index.cshtml | 5 +- Pages/Login.cshtml.cs | 4 +- Pages/Privacy.cshtml | 1 + Pages/Profile.cshtml | 5 +- Pages/Register.cshtml.cs | 6 +- Pages/Shared/_Layout.cshtml | 5 +- Pages/Stats.cshtml | 1 + Pages/_ViewImports.cshtml | 2 - RTMPDash.csproj | 98 ++++++++++--------- 24 files changed, 102 insertions(+), 96 deletions(-) rename DataModels/AppDb.cs => Backend/Database/Database.cs (91%) rename {DataModels => Backend/Database}/Tables/DbInfo.cs (84%) rename {DataModels => Backend/Database}/Tables/Invite.cs (76%) rename {DataModels => Backend/Database}/Tables/User.cs (96%) rename Migrations.cs => Backend/Migrations.cs (95%) rename Program.cs => Backend/Program.cs (94%) rename Startup.cs => Backend/Startup.cs (98%) rename StreamUtils.cs => Backend/StreamUtils.cs (98%) diff --git a/DataModels/AppDb.cs b/Backend/Database/Database.cs similarity index 91% rename from DataModels/AppDb.cs rename to Backend/Database/Database.cs index 80845ce..3025d24 100644 --- a/DataModels/AppDb.cs +++ b/Backend/Database/Database.cs @@ -3,11 +3,11 @@ using System.Linq; using LinqToDB; using LinqToDB.Configuration; using LinqToDB.Data; -using RTMPDash.DataModels.Tables; +using RTMPDash.Backend.Database.Tables; -namespace RTMPDash.DataModels; +namespace RTMPDash.Backend.Database; -public class AppDb { +public class Database { public class ConnectionStringSettings : IConnectionStringSettings { public string ConnectionString { get; set; } public string Name { get; set; } diff --git a/DataModels/Tables/DbInfo.cs b/Backend/Database/Tables/DbInfo.cs similarity index 84% rename from DataModels/Tables/DbInfo.cs rename to Backend/Database/Tables/DbInfo.cs index 084cb57..43f74e7 100644 --- a/DataModels/Tables/DbInfo.cs +++ b/Backend/Database/Tables/DbInfo.cs @@ -1,6 +1,6 @@ using LinqToDB.Mapping; -namespace RTMPDash.DataModels.Tables; +namespace RTMPDash.Backend.Database.Tables; [Table(Name = "DbInfo")] public class DbInfo { diff --git a/DataModels/Tables/Invite.cs b/Backend/Database/Tables/Invite.cs similarity index 76% rename from DataModels/Tables/Invite.cs rename to Backend/Database/Tables/Invite.cs index 125b264..62b9bc2 100644 --- a/DataModels/Tables/Invite.cs +++ b/Backend/Database/Tables/Invite.cs @@ -1,8 +1,8 @@ using LinqToDB.Mapping; -namespace RTMPDash.DataModels.Tables; +namespace RTMPDash.Backend.Database.Tables; [Table(Name = "Invites")] public class Invite { [Column(Name = "Code"), PrimaryKey, NotNull] public string Code { get; set; } -} \ No newline at end of file +} diff --git a/DataModels/Tables/User.cs b/Backend/Database/Tables/User.cs similarity index 96% rename from DataModels/Tables/User.cs rename to Backend/Database/Tables/User.cs index f910c03..8825fbc 100644 --- a/DataModels/Tables/User.cs +++ b/Backend/Database/Tables/User.cs @@ -1,6 +1,6 @@ using LinqToDB.Mapping; -namespace RTMPDash.DataModels.Tables; +namespace RTMPDash.Backend.Database.Tables; [Table(Name = "Users")] public class User { diff --git a/Migrations.cs b/Backend/Migrations.cs similarity index 95% rename from Migrations.cs rename to Backend/Migrations.cs index 529d9b4..e2974f6 100644 --- a/Migrations.cs +++ b/Backend/Migrations.cs @@ -3,11 +3,10 @@ using System.Collections.Generic; using System.Linq; using LinqToDB; using LinqToDB.Data; -using RTMPDash.DataModels; -using RTMPDash.DataModels.Tables; +using RTMPDash.Backend.Database.Tables; using RTMPDash.Pages; -namespace RTMPDash; +namespace RTMPDash.Backend; public static class Migrations { private const int DbVer = 2; @@ -20,7 +19,7 @@ public static class Migrations { }; public static void RunMigrations() { - using var db = new AppDb.DbConn(); + using var db = new Database.Database.DbConn(); var ccolor = Console.ForegroundColor; if (!db.DataProvider.GetSchemaProvider().GetSchema(db).Tables.Any()) { @@ -82,7 +81,7 @@ public static class Migrations { new Migration(0, "COMMIT TRANSACTION").Run(db); - var newdb = new AppDb.DbConn(); + var newdb = new Database.Database.DbConn(); var dbinfo = newdb.DbInfo.First(); dbinfo.DbVer = DbVer; newdb.Update(dbinfo); diff --git a/Program.cs b/Backend/Program.cs similarity index 94% rename from Program.cs rename to Backend/Program.cs index 1807eb6..47bb16f 100644 --- a/Program.cs +++ b/Backend/Program.cs @@ -3,9 +3,8 @@ using System.Threading; using LinqToDB.Data; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; -using RTMPDash.DataModels; -namespace RTMPDash; +namespace RTMPDash.Backend; public class Program { public const string SiteName = "chaos.stream"; @@ -25,7 +24,7 @@ public class Program { "Telegram, Threema, or via email."; public static void Main(string[] args) { - DataConnection.DefaultSettings = new AppDb.Settings(); + DataConnection.DefaultSettings = new Database.Database.Settings(); ThreadPool.SetMinThreads(100, 100); Migrations.RunMigrations(); CreateHostBuilder(args).Build().Run(); diff --git a/Startup.cs b/Backend/Startup.cs similarity index 98% rename from Startup.cs rename to Backend/Startup.cs index 25222d4..4a6bec4 100644 --- a/Startup.cs +++ b/Backend/Startup.cs @@ -5,7 +5,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -namespace RTMPDash; +namespace RTMPDash.Backend; public class Startup { public Startup(IConfiguration configuration) => Configuration = configuration; @@ -62,4 +62,4 @@ public class Startup { endpoints.MapControllers(); }); } -} \ No newline at end of file +} diff --git a/StreamUtils.cs b/Backend/StreamUtils.cs similarity index 98% rename from StreamUtils.cs rename to Backend/StreamUtils.cs index 3f8ea02..7299543 100644 --- a/StreamUtils.cs +++ b/Backend/StreamUtils.cs @@ -2,9 +2,8 @@ using System.Collections.Generic; using System.Linq; using System.Net; using System.Xml.Serialization; -using RTMPDash.DataModels; -namespace RTMPDash; +namespace RTMPDash.Backend; public static class StreamUtils { private static readonly XmlSerializer Serializer = new(typeof(StatsObject)); @@ -19,7 +18,7 @@ public static class StreamUtils { long.Parse(stats.Server.Applications.First(p => p.Name == "ingress").MethodLive.Streams.First(p => p.Name == user).Time); public static int CountLiveRestreams(string user, StatsObject stats) { - var db = new AppDb.DbConn(); + var db = new Database.Database.DbConn(); var dbUser = db.Users.First(p => p.Username == user); return dbUser.RestreamTargets.Split(",") .Count(target => stats.Server.Applications.First(p => p.Name == "ingress") @@ -27,7 +26,7 @@ public static class StreamUtils { } public static int CountLiveRestreams(string user, string privateAccesskey, StatsObject stats) { - var db = new AppDb.DbConn(); + var db = new Database.Database.DbConn(); var dbUser = db.Users.First(p => p.Username == user); return dbUser.RestreamTargets.Split(",") .Count(target => stats.Server.Applications.First(p => p.Name == "ingress") diff --git a/Controllers/RtmpAuthController.cs b/Controllers/RtmpAuthController.cs index 9f57d12..38e2d6b 100644 --- a/Controllers/RtmpAuthController.cs +++ b/Controllers/RtmpAuthController.cs @@ -1,6 +1,6 @@ using System.Linq; using Microsoft.AspNetCore.Mvc; -using RTMPDash.DataModels; +using RTMPDash.Backend.Database; namespace RTMPDash.Controllers; @@ -8,7 +8,7 @@ namespace RTMPDash.Controllers; public class RtmpAuthController : ControllerBase { [HttpGet] public string Get() { - var db = new AppDb.DbConn(); + var db = new Database.DbConn(); if (!db.Users.Any(p => p.StreamKey == Request.Query["name"])) { Response.StatusCode = 403; return "unauthorized"; diff --git a/Pages/Admin.cshtml b/Pages/Admin.cshtml index 5d30412..bfd9f96 100644 --- a/Pages/Admin.cshtml +++ b/Pages/Admin.cshtml @@ -2,14 +2,15 @@ @inject IAntiforgery Antiforgery @using Microsoft.AspNetCore.Antiforgery @using Microsoft.AspNetCore.Http -@using RTMPDash.DataModels +@using RTMPDash.Backend +@using RTMPDash.Backend.Database @model AdminModel @{ ViewData["Title"] = "Admin"; - var db = new AppDb.DbConn(); + var db = new Database.DbConn(); var tokenSet = Antiforgery.GetAndStoreTokens(HttpContext); - if (string.IsNullOrEmpty(HttpContext.Session.GetString("authenticatedUser")) || !new AppDb.DbConn().Users.First(p => p.Username == HttpContext.Session.GetString("authenticatedUser")).IsAdmin) { + if (string.IsNullOrEmpty(HttpContext.Session.GetString("authenticatedUser")) || !new Database.DbConn().Users.First(p => p.Username == HttpContext.Session.GetString("authenticatedUser")).IsAdmin) { Response.Redirect("/"); return; } diff --git a/Pages/Admin.cshtml.cs b/Pages/Admin.cshtml.cs index f834694..6f1a6e5 100644 --- a/Pages/Admin.cshtml.cs +++ b/Pages/Admin.cshtml.cs @@ -3,8 +3,8 @@ using System.Linq; using LinqToDB; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.RazorPages; -using RTMPDash.DataModels; -using RTMPDash.DataModels.Tables; +using RTMPDash.Backend.Database; +using RTMPDash.Backend.Database.Tables; namespace RTMPDash.Pages; @@ -13,13 +13,13 @@ public class AdminModel : PageModel { public void OnPost() { if (string.IsNullOrEmpty(HttpContext.Session.GetString("authenticatedUser")) - || !new AppDb.DbConn().Users.First(p => p.Username == HttpContext.Session.GetString("authenticatedUser")).IsAdmin) + || !new Database.DbConn().Users.First(p => p.Username == HttpContext.Session.GetString("authenticatedUser")).IsAdmin) return; if (!Request.HasFormContentType || string.IsNullOrWhiteSpace(Request.Form["action"])) return; - var db = new AppDb.DbConn(); + var db = new Database.DbConn(); if (Request.Form["action"] == "invite_generate") db.Insert(new Invite { Code = Guid.NewGuid().ToString() }); diff --git a/Pages/Content.cshtml b/Pages/Content.cshtml index df5b2ab..9677574 100644 --- a/Pages/Content.cshtml +++ b/Pages/Content.cshtml @@ -1,4 +1,5 @@ @page +@using RTMPDash.Backend @model ContentModel @{ ViewData["Title"] = "Content Policy"; diff --git a/Pages/Credits.cshtml b/Pages/Credits.cshtml index 6cf8e57..ed6cf52 100644 --- a/Pages/Credits.cshtml +++ b/Pages/Credits.cshtml @@ -1,4 +1,5 @@ @page +@using RTMPDash.Backend @model CreditsModel @{ ViewData["Title"] = "Credits"; diff --git a/Pages/Dashboard.cshtml b/Pages/Dashboard.cshtml index efb9cbb..e60ab58 100644 --- a/Pages/Dashboard.cshtml +++ b/Pages/Dashboard.cshtml @@ -2,7 +2,8 @@ @inject IAntiforgery _antiforgery @using Microsoft.AspNetCore.Antiforgery @using Microsoft.AspNetCore.Http -@using RTMPDash.DataModels +@using RTMPDash.Backend +@using RTMPDash.Backend.Database @model DashboardModel @{ ViewData["Title"] = "Dashboard"; @@ -16,7 +17,7 @@ } else { - var db = new AppDb.DbConn(); + var db = new Database.DbConn(); var user = db.Users.First(p => p.Username == HttpContext.Session.GetString("authenticatedUser")); var stats = StreamUtils.GetStatsObject();