@page @inject IAntiforgery Antiforgery @using Microsoft.AspNetCore.Antiforgery @using Microsoft.AspNetCore.Http @using RTMPDash.DataModels @model AdminModel @{ ViewData["Title"] = "Admin"; var db = new AppDb.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) { Response.Redirect("/"); return; } var stats = StreamUtils.GetStatsObject(); }

Users

@foreach (var user in db.Users) { }
Username Stream status Actions
@user.Username @if (StreamUtils.IsLive(user.Username, stats)) { var uptime = TimeSpan.FromMilliseconds(StreamUtils.GetClientTime(user.Username, stats)).StripMilliseconds(); if (user.AllowRestream && !string.IsNullOrWhiteSpace(user.RestreamTargets)) { var restreams = StreamUtils.CountLiveRestreams(user.Username, stats); if (restreams > 0) { } else { } } else { } } else if (StreamUtils.IsLive(user.PrivateAccessKey, stats)) { var uptime = TimeSpan.FromMilliseconds(StreamUtils.GetClientTime(user.PrivateAccessKey, stats)).StripMilliseconds(); if (user.AllowRestream && !string.IsNullOrWhiteSpace(user.RestreamTargets)) { var restreams = StreamUtils.CountLiveRestreams(user.PrivateAccessKey, stats); if (restreams > 0) { } else { } } else { } } else { } @if (user.IsAdmin) { if (user.Username != HttpContext.Session.GetString("authenticatedUser")) { } else { } } else { } @if (user.AllowRestream) { } else { } @if (user.IsAdmin) { } else { }

Invites

@foreach (var invite in db.Invites) { }
Code Actions
@invite.Code