This commit is contained in:
HueByte
2026-02-19 21:50:22 +00:00
parent 3b79c0eb6d
commit 4c105b6c68
72 changed files with 15202 additions and 336 deletions
@@ -315,8 +315,8 @@ public Task&lt;IActionResult&gt; GetChannels(int offset = 0, int limit = 50)</co
<a id="EchoHub_Server_Controllers_ChannelsController_SendUrl_" data-uid="EchoHub.Server.Controllers.ChannelsController.SendUrl*"></a>
<h3 id="EchoHub_Server_Controllers_ChannelsController_SendUrl_System_String_EchoHub_Core_DTOs_SendUrlRequest_" data-uid="EchoHub.Server.Controllers.ChannelsController.SendUrl(System.String,EchoHub.Core.DTOs.SendUrlRequest)">
SendUrl(string, SendUrlRequest)
<h3 id="EchoHub_Server_Controllers_ChannelsController_SendUrl_System_String_EchoHub_Core_DTOs_SendUrlRequest_System_String_" data-uid="EchoHub.Server.Controllers.ChannelsController.SendUrl(System.String,EchoHub.Core.DTOs.SendUrlRequest,System.String)">
SendUrl(string, SendUrlRequest, string?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ChannelsController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
@@ -326,7 +326,7 @@ public Task&lt;IActionResult&gt; GetChannels(int offset = 0, int limit = 50)</co
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;{channel}/send-url&quot;)]
[EnableRateLimiting(&quot;upload&quot;)]
public Task&lt;IActionResult&gt; SendUrl(string channel, SendUrlRequest request)</code></pre>
public Task&lt;IActionResult&gt; SendUrl(string channel, SendUrlRequest request, string? size = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -335,6 +335,8 @@ public Task&lt;IActionResult&gt; SendUrl(string channel, SendUrlRequest request)
<dd></dd>
<dt><code>request</code> <a class="xref" href="../core/EchoHub.Core.DTOs.SendUrlRequest.html">SendUrlRequest</a></dt>
<dd></dd>
<dt><code>size</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
@@ -394,8 +396,8 @@ public Task&lt;IActionResult&gt; UpdateTopic(string channel, UpdateTopicRequest
<a id="EchoHub_Server_Controllers_ChannelsController_Upload_" data-uid="EchoHub.Server.Controllers.ChannelsController.Upload*"></a>
<h3 id="EchoHub_Server_Controllers_ChannelsController_Upload_System_String_" data-uid="EchoHub.Server.Controllers.ChannelsController.Upload(System.String)">
Upload(string)
<h3 id="EchoHub_Server_Controllers_ChannelsController_Upload_System_String_System_String_" data-uid="EchoHub.Server.Controllers.ChannelsController.Upload(System.String,System.String)">
Upload(string, string?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ChannelsController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
@@ -405,13 +407,15 @@ public Task&lt;IActionResult&gt; UpdateTopic(string channel, UpdateTopicRequest
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;{channel}/upload&quot;)]
[EnableRateLimiting(&quot;upload&quot;)]
public Task&lt;IActionResult&gt; Upload(string channel)</code></pre>
public Task&lt;IActionResult&gt; Upload(string channel, string? size = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>channel</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>size</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
@@ -0,0 +1,528 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class ModerationController | EchoHub Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class ModerationController | EchoHub Documentation ">
<link rel="icon" href="../../images/hue_icon.svg">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="../toc.html">
<meta name="docfx:rel" content="../../">
<meta name="docfx:docurl" content="https://github.com/HueByte/EchoHub/new/master/apiSpec/new?filename=EchoHub_Server_Controllers_ModerationController.md&amp;value=---%0Auid%3A%20EchoHub.Server.Controllers.ModerationController%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../images/hue_icon.svg" alt="EchoHub">
EchoHub
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="EchoHub.Server.Controllers.ModerationController">
<h1 id="EchoHub_Server_Controllers_ModerationController" data-uid="EchoHub.Server.Controllers.ModerationController" class="text-break">
Class ModerationController <a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="EchoHub.html">EchoHub</a>.<a class="xref" href="EchoHub.Server.html">Server</a>.<a class="xref" href="EchoHub.Server.Controllers.html">Controllers</a></dd></dl>
<dl><dt>Assembly</dt><dd>EchoHub.Server.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[ApiController]
[Route(&quot;api/moderation&quot;)]
[Authorize]
[EnableRateLimiting(&quot;general&quot;)]
public class ModerationController : ControllerBase</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">ControllerBase</span></div>
<div><span class="xref">ModerationController</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="EchoHub_Server_Controllers_ModerationController__ctor_" data-uid="EchoHub.Server.Controllers.ModerationController.#ctor*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController__ctor_EchoHub_Server_Data_EchoHubDbContext_EchoHub_Core_Contracts_IChatService_EchoHub_Server_Services_PresenceTracker_System_Collections_Generic_IEnumerable_EchoHub_Core_Contracts_IChatBroadcaster__" data-uid="EchoHub.Server.Controllers.ModerationController.#ctor(EchoHub.Server.Data.EchoHubDbContext,EchoHub.Core.Contracts.IChatService,EchoHub.Server.Services.PresenceTracker,System.Collections.Generic.IEnumerable{EchoHub.Core.Contracts.IChatBroadcaster})">
ModerationController(EchoHubDbContext, IChatService, PresenceTracker, IEnumerable&lt;IChatBroadcaster&gt;)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ModerationController(EchoHubDbContext db, IChatService chatService, PresenceTracker presenceTracker, IEnumerable&lt;IChatBroadcaster&gt; broadcasters)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>db</code> <a class="xref" href="EchoHub.Server.Data.EchoHubDbContext.html">EchoHubDbContext</a></dt>
<dd></dd>
<dt><code>chatService</code> <a class="xref" href="../core/EchoHub.Core.Contracts.IChatService.html">IChatService</a></dt>
<dd></dd>
<dt><code>presenceTracker</code> <a class="xref" href="EchoHub.Server.Services.PresenceTracker.html">PresenceTracker</a></dt>
<dd></dd>
<dt><code>broadcasters</code> <span class="xref">IEnumerable</span>&lt;<a class="xref" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Core/Contracts/IChatBroadcaster.cs">IChatBroadcaster</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="EchoHub_Server_Controllers_ModerationController_AssignRole_" data-uid="EchoHub.Server.Controllers.ModerationController.AssignRole*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_AssignRole_EchoHub_Core_DTOs_AssignRoleRequest_" data-uid="EchoHub.Server.Controllers.ModerationController.AssignRole(EchoHub.Core.DTOs.AssignRoleRequest)">
AssignRole(AssignRoleRequest)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;role&quot;)]
public Task&lt;IActionResult&gt; AssignRole(AssignRoleRequest request)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>request</code> <a class="xref" href="../core/EchoHub.Core.DTOs.AssignRoleRequest.html">AssignRoleRequest</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Controllers_ModerationController_BanUser_" data-uid="EchoHub.Server.Controllers.ModerationController.BanUser*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_BanUser_System_String_EchoHub_Core_DTOs_BanRequest_" data-uid="EchoHub.Server.Controllers.ModerationController.BanUser(System.String,EchoHub.Core.DTOs.BanRequest)">
BanUser(string, BanRequest?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;ban/{username}&quot;)]
public Task&lt;IActionResult&gt; BanUser(string username, BanRequest? request = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>request</code> <a class="xref" href="../core/EchoHub.Core.DTOs.BanRequest.html">BanRequest</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Controllers_ModerationController_DeleteMessage_" data-uid="EchoHub.Server.Controllers.ModerationController.DeleteMessage*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_DeleteMessage_System_Guid_" data-uid="EchoHub.Server.Controllers.ModerationController.DeleteMessage(System.Guid)">
DeleteMessage(Guid)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpDelete(&quot;messages/{messageId:guid}&quot;)]
public Task&lt;IActionResult&gt; DeleteMessage(Guid messageId)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>messageId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.guid">Guid</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Controllers_ModerationController_KickUser_" data-uid="EchoHub.Server.Controllers.ModerationController.KickUser*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_KickUser_System_String_EchoHub_Core_DTOs_KickRequest_" data-uid="EchoHub.Server.Controllers.ModerationController.KickUser(System.String,EchoHub.Core.DTOs.KickRequest)">
KickUser(string, KickRequest?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;kick/{username}&quot;)]
public Task&lt;IActionResult&gt; KickUser(string username, KickRequest? request = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>request</code> <a class="xref" href="../core/EchoHub.Core.DTOs.KickRequest.html">KickRequest</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Controllers_ModerationController_MuteUser_" data-uid="EchoHub.Server.Controllers.ModerationController.MuteUser*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_MuteUser_System_String_EchoHub_Core_DTOs_MuteRequest_" data-uid="EchoHub.Server.Controllers.ModerationController.MuteUser(System.String,EchoHub.Core.DTOs.MuteRequest)">
MuteUser(string, MuteRequest?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;mute/{username}&quot;)]
public Task&lt;IActionResult&gt; MuteUser(string username, MuteRequest? request = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>request</code> <a class="xref" href="../core/EchoHub.Core.DTOs.MuteRequest.html">MuteRequest</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Controllers_ModerationController_NukeChannel_" data-uid="EchoHub.Server.Controllers.ModerationController.NukeChannel*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_NukeChannel_System_String_" data-uid="EchoHub.Server.Controllers.ModerationController.NukeChannel(System.String)">
NukeChannel(string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpDelete(&quot;channels/{channel}/nuke&quot;)]
public Task&lt;IActionResult&gt; NukeChannel(string channel)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>channel</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Controllers_ModerationController_UnbanUser_" data-uid="EchoHub.Server.Controllers.ModerationController.UnbanUser*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_UnbanUser_System_String_" data-uid="EchoHub.Server.Controllers.ModerationController.UnbanUser(System.String)">
UnbanUser(string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;unban/{username}&quot;)]
public Task&lt;IActionResult&gt; UnbanUser(string username)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Controllers_ModerationController_UnmuteUser_" data-uid="EchoHub.Server.Controllers.ModerationController.UnmuteUser*"></a>
<h3 id="EchoHub_Server_Controllers_ModerationController_UnmuteUser_System_String_" data-uid="EchoHub.Server.Controllers.ModerationController.UnmuteUser(System.String)">
UnmuteUser(string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[HttpPost(&quot;unmute/{username}&quot;)]
public Task&lt;IActionResult&gt; UnmuteUser(string username)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">IActionResult</span>&gt;</dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
<a href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Controllers/ModerationController.cs" class="edit-link">Edit this page</a>
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<div class='footer-custom'><div class='footer-inner'><span class='footer-brand'>EchoHub</span><span class='footer-sep'>&middot;</span><a href='https://github.com/HueByte/EchoHub'>GitHub</a><span class='footer-sep'>&middot;</span><a href='https://echohub.voidcube.cloud'>Website</a><span class='footer-sep'>&middot;</span><span class='footer-credit'>Built with <a href='https://dotnet.github.io/docfx'>DocFX</a></span></div></div>
</div>
</div>
</footer>
</body>
</html>
@@ -106,6 +106,10 @@ Classes
<dt><a class="xref" href="EchoHub.Server.Controllers.FilesController.html">FilesController</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Controllers.ModerationController.html">ModerationController</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Controllers.ServerController.html">ServerController</a></dt>
<dd></dd>
@@ -195,6 +195,37 @@ Class EchoHubDbContext <a class="header-action link-secondary" title="View sour
</h2>
<a id="EchoHub_Server_Data_EchoHubDbContext_ChannelMemberships_" data-uid="EchoHub.Server.Data.EchoHubDbContext.ChannelMemberships*"></a>
<h3 id="EchoHub_Server_Data_EchoHubDbContext_ChannelMemberships" data-uid="EchoHub.Server.Data.EchoHubDbContext.ChannelMemberships">
ChannelMemberships
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/EchoHubDbContext.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public DbSet&lt;ChannelMembership&gt; ChannelMemberships { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><span class="xref">DbSet</span>&lt;<a class="xref" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Core/Models/ChannelMembership.cs">ChannelMembership</a>&gt;</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_EchoHubDbContext_Channels_" data-uid="EchoHub.Server.Data.EchoHubDbContext.Channels*"></a>
<h3 id="EchoHub_Server_Data_EchoHubDbContext_Channels" data-uid="EchoHub.Server.Data.EchoHubDbContext.Channels">
@@ -0,0 +1,306 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class AddChannelIsPublic | EchoHub Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class AddChannelIsPublic | EchoHub Documentation ">
<link rel="icon" href="../../images/hue_icon.svg">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="../toc.html">
<meta name="docfx:rel" content="../../">
<meta name="docfx:docurl" content="https://github.com/HueByte/EchoHub/new/master/apiSpec/new?filename=EchoHub_Server_Data_Migrations_AddChannelIsPublic.md&amp;value=---%0Auid%3A%20EchoHub.Server.Data.Migrations.AddChannelIsPublic%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../images/hue_icon.svg" alt="EchoHub">
EchoHub
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic">
<h1 id="EchoHub_Server_Data_Migrations_AddChannelIsPublic" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic" class="text-break">
Class AddChannelIsPublic <a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219172834_AddChannelIsPublic.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="EchoHub.html">EchoHub</a>.<a class="xref" href="EchoHub.Server.html">Server</a>.<a class="xref" href="EchoHub.Server.Data.html">Data</a>.<a class="xref" href="EchoHub.Server.Data.Migrations.html">Migrations</a></dd></dl>
<dl><dt>Assembly</dt><dd>EchoHub.Server.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[DbContext(typeof(EchoHubDbContext))]
[Migration(&quot;20260219172834_AddChannelIsPublic&quot;)]
public class AddChannelIsPublic : Migration</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Migration</span></div>
<div><span class="xref">AddChannelIsPublic</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="EchoHub_Server_Data_Migrations_AddChannelIsPublic__ctor_" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.#ctor*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelIsPublic__ctor" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.#ctor">
AddChannelIsPublic()
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219172834_AddChannelIsPublic.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public AddChannelIsPublic()</code></pre>
</div>
<h2 class="section" id="methods">Methods
</h2>
<a id="EchoHub_Server_Data_Migrations_AddChannelIsPublic_BuildTargetModel_" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.BuildTargetModel*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelIsPublic_BuildTargetModel_Microsoft_EntityFrameworkCore_ModelBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
BuildTargetModel(ModelBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219172834_AddChannelIsPublic.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void BuildTargetModel(ModelBuilder modelBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>modelBuilder</code> <span class="xref">ModelBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddChannelIsPublic_Down_" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.Down*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelIsPublic_Down_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Down(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219172834_AddChannelIsPublic.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Down(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddChannelIsPublic_Up_" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.Up*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelIsPublic_Up_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddChannelIsPublic.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Up(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219172834_AddChannelIsPublic.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Up(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
<a href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219172834_AddChannelIsPublic.Designer.cs" class="edit-link">Edit this page</a>
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<div class='footer-custom'><div class='footer-inner'><span class='footer-brand'>EchoHub</span><span class='footer-sep'>&middot;</span><a href='https://github.com/HueByte/EchoHub'>GitHub</a><span class='footer-sep'>&middot;</span><a href='https://echohub.voidcube.cloud'>Website</a><span class='footer-sep'>&middot;</span><span class='footer-credit'>Built with <a href='https://dotnet.github.io/docfx'>DocFX</a></span></div></div>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,306 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class AddChannelMembership | EchoHub Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class AddChannelMembership | EchoHub Documentation ">
<link rel="icon" href="../../images/hue_icon.svg">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="../toc.html">
<meta name="docfx:rel" content="../../">
<meta name="docfx:docurl" content="https://github.com/HueByte/EchoHub/new/master/apiSpec/new?filename=EchoHub_Server_Data_Migrations_AddChannelMembership.md&amp;value=---%0Auid%3A%20EchoHub.Server.Data.Migrations.AddChannelMembership%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../images/hue_icon.svg" alt="EchoHub">
EchoHub
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership">
<h1 id="EchoHub_Server_Data_Migrations_AddChannelMembership" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership" class="text-break">
Class AddChannelMembership <a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219181720_AddChannelMembership.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="EchoHub.html">EchoHub</a>.<a class="xref" href="EchoHub.Server.html">Server</a>.<a class="xref" href="EchoHub.Server.Data.html">Data</a>.<a class="xref" href="EchoHub.Server.Data.Migrations.html">Migrations</a></dd></dl>
<dl><dt>Assembly</dt><dd>EchoHub.Server.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[DbContext(typeof(EchoHubDbContext))]
[Migration(&quot;20260219181720_AddChannelMembership&quot;)]
public class AddChannelMembership : Migration</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Migration</span></div>
<div><span class="xref">AddChannelMembership</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="EchoHub_Server_Data_Migrations_AddChannelMembership__ctor_" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.#ctor*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelMembership__ctor" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.#ctor">
AddChannelMembership()
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219181720_AddChannelMembership.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public AddChannelMembership()</code></pre>
</div>
<h2 class="section" id="methods">Methods
</h2>
<a id="EchoHub_Server_Data_Migrations_AddChannelMembership_BuildTargetModel_" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.BuildTargetModel*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelMembership_BuildTargetModel_Microsoft_EntityFrameworkCore_ModelBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
BuildTargetModel(ModelBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219181720_AddChannelMembership.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void BuildTargetModel(ModelBuilder modelBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>modelBuilder</code> <span class="xref">ModelBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddChannelMembership_Down_" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.Down*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelMembership_Down_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Down(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219181720_AddChannelMembership.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Down(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddChannelMembership_Up_" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.Up*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddChannelMembership_Up_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddChannelMembership.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Up(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219181720_AddChannelMembership.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Up(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
<a href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219181720_AddChannelMembership.Designer.cs" class="edit-link">Edit this page</a>
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<div class='footer-custom'><div class='footer-inner'><span class='footer-brand'>EchoHub</span><span class='footer-sep'>&middot;</span><a href='https://github.com/HueByte/EchoHub'>GitHub</a><span class='footer-sep'>&middot;</span><a href='https://echohub.voidcube.cloud'>Website</a><span class='footer-sep'>&middot;</span><span class='footer-credit'>Built with <a href='https://dotnet.github.io/docfx'>DocFX</a></span></div></div>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,306 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class AddMessageEmbed | EchoHub Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class AddMessageEmbed | EchoHub Documentation ">
<link rel="icon" href="../../images/hue_icon.svg">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="../toc.html">
<meta name="docfx:rel" content="../../">
<meta name="docfx:docurl" content="https://github.com/HueByte/EchoHub/new/master/apiSpec/new?filename=EchoHub_Server_Data_Migrations_AddMessageEmbed.md&amp;value=---%0Auid%3A%20EchoHub.Server.Data.Migrations.AddMessageEmbed%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../images/hue_icon.svg" alt="EchoHub">
EchoHub
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed">
<h1 id="EchoHub_Server_Data_Migrations_AddMessageEmbed" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed" class="text-break">
Class AddMessageEmbed <a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219201704_AddMessageEmbed.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="EchoHub.html">EchoHub</a>.<a class="xref" href="EchoHub.Server.html">Server</a>.<a class="xref" href="EchoHub.Server.Data.html">Data</a>.<a class="xref" href="EchoHub.Server.Data.Migrations.html">Migrations</a></dd></dl>
<dl><dt>Assembly</dt><dd>EchoHub.Server.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[DbContext(typeof(EchoHubDbContext))]
[Migration(&quot;20260219201704_AddMessageEmbed&quot;)]
public class AddMessageEmbed : Migration</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Migration</span></div>
<div><span class="xref">AddMessageEmbed</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="EchoHub_Server_Data_Migrations_AddMessageEmbed__ctor_" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.#ctor*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddMessageEmbed__ctor" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.#ctor">
AddMessageEmbed()
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219201704_AddMessageEmbed.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public AddMessageEmbed()</code></pre>
</div>
<h2 class="section" id="methods">Methods
</h2>
<a id="EchoHub_Server_Data_Migrations_AddMessageEmbed_BuildTargetModel_" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.BuildTargetModel*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddMessageEmbed_BuildTargetModel_Microsoft_EntityFrameworkCore_ModelBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
BuildTargetModel(ModelBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219201704_AddMessageEmbed.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void BuildTargetModel(ModelBuilder modelBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>modelBuilder</code> <span class="xref">ModelBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddMessageEmbed_Down_" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.Down*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddMessageEmbed_Down_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Down(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219201704_AddMessageEmbed.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Down(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddMessageEmbed_Up_" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.Up*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddMessageEmbed_Up_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddMessageEmbed.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Up(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219201704_AddMessageEmbed.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Up(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
<a href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219201704_AddMessageEmbed.Designer.cs" class="edit-link">Edit this page</a>
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<div class='footer-custom'><div class='footer-inner'><span class='footer-brand'>EchoHub</span><span class='footer-sep'>&middot;</span><a href='https://github.com/HueByte/EchoHub'>GitHub</a><span class='footer-sep'>&middot;</span><a href='https://echohub.voidcube.cloud'>Website</a><span class='footer-sep'>&middot;</span><span class='footer-credit'>Built with <a href='https://dotnet.github.io/docfx'>DocFX</a></span></div></div>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,306 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class AddModerationRoles | EchoHub Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class AddModerationRoles | EchoHub Documentation ">
<link rel="icon" href="../../images/hue_icon.svg">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="../toc.html">
<meta name="docfx:rel" content="../../">
<meta name="docfx:docurl" content="https://github.com/HueByte/EchoHub/new/master/apiSpec/new?filename=EchoHub_Server_Data_Migrations_AddModerationRoles.md&amp;value=---%0Auid%3A%20EchoHub.Server.Data.Migrations.AddModerationRoles%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../images/hue_icon.svg" alt="EchoHub">
EchoHub
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles">
<h1 id="EchoHub_Server_Data_Migrations_AddModerationRoles" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles" class="text-break">
Class AddModerationRoles <a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219162414_AddModerationRoles.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="EchoHub.html">EchoHub</a>.<a class="xref" href="EchoHub.Server.html">Server</a>.<a class="xref" href="EchoHub.Server.Data.html">Data</a>.<a class="xref" href="EchoHub.Server.Data.Migrations.html">Migrations</a></dd></dl>
<dl><dt>Assembly</dt><dd>EchoHub.Server.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[DbContext(typeof(EchoHubDbContext))]
[Migration(&quot;20260219162414_AddModerationRoles&quot;)]
public class AddModerationRoles : Migration</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Migration</span></div>
<div><span class="xref">AddModerationRoles</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="EchoHub_Server_Data_Migrations_AddModerationRoles__ctor_" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.#ctor*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddModerationRoles__ctor" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.#ctor">
AddModerationRoles()
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219162414_AddModerationRoles.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public AddModerationRoles()</code></pre>
</div>
<h2 class="section" id="methods">Methods
</h2>
<a id="EchoHub_Server_Data_Migrations_AddModerationRoles_BuildTargetModel_" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.BuildTargetModel*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddModerationRoles_BuildTargetModel_Microsoft_EntityFrameworkCore_ModelBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.BuildTargetModel(Microsoft.EntityFrameworkCore.ModelBuilder)">
BuildTargetModel(ModelBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219162414_AddModerationRoles.Designer.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void BuildTargetModel(ModelBuilder modelBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>modelBuilder</code> <span class="xref">ModelBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddModerationRoles_Down_" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.Down*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddModerationRoles_Down_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.Down(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Down(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219162414_AddModerationRoles.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Down(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Data_Migrations_AddModerationRoles_Up_" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.Up*"></a>
<h3 id="EchoHub_Server_Data_Migrations_AddModerationRoles_Up_Microsoft_EntityFrameworkCore_Migrations_MigrationBuilder_" data-uid="EchoHub.Server.Data.Migrations.AddModerationRoles.Up(Microsoft.EntityFrameworkCore.Migrations.MigrationBuilder)">
Up(MigrationBuilder)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219162414_AddModerationRoles.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected override void Up(MigrationBuilder migrationBuilder)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>migrationBuilder</code> <span class="xref">MigrationBuilder</span></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
<a href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Data/Migrations/20260219162414_AddModerationRoles.Designer.cs" class="edit-link">Edit this page</a>
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<div class='footer-custom'><div class='footer-inner'><span class='footer-brand'>EchoHub</span><span class='footer-sep'>&middot;</span><a href='https://github.com/HueByte/EchoHub'>GitHub</a><span class='footer-sep'>&middot;</span><a href='https://echohub.voidcube.cloud'>Website</a><span class='footer-sep'>&middot;</span><span class='footer-credit'>Built with <a href='https://dotnet.github.io/docfx'>DocFX</a></span></div></div>
</div>
</div>
</footer>
</body>
</html>
@@ -94,6 +94,22 @@
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Data.Migrations.AddChannelIsPublic.html">AddChannelIsPublic</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Data.Migrations.AddChannelMembership.html">AddChannelMembership</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Data.Migrations.AddMessageEmbed.html">AddMessageEmbed</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Data.Migrations.AddModerationRoles.html">AddModerationRoles</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Data.Migrations.InitialCreate.html">InitialCreate</a></dt>
<dd></dd>
+1 -1
View File
@@ -209,7 +209,7 @@ public class ChatHub : Hub&lt;IEchoHubClient&gt;, IDisposable</code></pre>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;List&lt;MessageDto&gt;&gt; GetChannelHistory(string channelName, int count = 50)</code></pre>
<pre><code class="lang-csharp hljs">public Task&lt;List&lt;MessageDto&gt;&gt; GetChannelHistory(string channelName, int count = 100)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -160,8 +160,8 @@ Class ChatService <a class="header-action link-secondary" title="View source" h
<a id="EchoHub_Server_Services_ChatService__ctor_" data-uid="EchoHub.Server.Services.ChatService.#ctor*"></a>
<h3 id="EchoHub_Server_Services_ChatService__ctor_Microsoft_Extensions_DependencyInjection_IServiceScopeFactory_EchoHub_Server_Services_PresenceTracker_System_Collections_Generic_IEnumerable_EchoHub_Core_Contracts_IChatBroadcaster__Microsoft_Extensions_Logging_ILogger_EchoHub_Server_Services_ChatService__" data-uid="EchoHub.Server.Services.ChatService.#ctor(Microsoft.Extensions.DependencyInjection.IServiceScopeFactory,EchoHub.Server.Services.PresenceTracker,System.Collections.Generic.IEnumerable{EchoHub.Core.Contracts.IChatBroadcaster},Microsoft.Extensions.Logging.ILogger{EchoHub.Server.Services.ChatService})">
ChatService(IServiceScopeFactory, PresenceTracker, IEnumerable&lt;IChatBroadcaster&gt;, ILogger&lt;ChatService&gt;)
<h3 id="EchoHub_Server_Services_ChatService__ctor_Microsoft_Extensions_DependencyInjection_IServiceScopeFactory_EchoHub_Server_Services_PresenceTracker_System_Collections_Generic_IEnumerable_EchoHub_Core_Contracts_IChatBroadcaster__EchoHub_Server_Services_LinkEmbedService_Microsoft_Extensions_Logging_ILogger_EchoHub_Server_Services_ChatService__" data-uid="EchoHub.Server.Services.ChatService.#ctor(Microsoft.Extensions.DependencyInjection.IServiceScopeFactory,EchoHub.Server.Services.PresenceTracker,System.Collections.Generic.IEnumerable{EchoHub.Core.Contracts.IChatBroadcaster},EchoHub.Server.Services.LinkEmbedService,Microsoft.Extensions.Logging.ILogger{EchoHub.Server.Services.ChatService})">
ChatService(IServiceScopeFactory, PresenceTracker, IEnumerable&lt;IChatBroadcaster&gt;, LinkEmbedService, ILogger&lt;ChatService&gt;)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/ChatService.cs"><i class="bi bi-code-slash"></i></a>
</h3>
@@ -169,7 +169,7 @@ Class ChatService <a class="header-action link-secondary" title="View source" h
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ChatService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, IEnumerable&lt;IChatBroadcaster&gt; broadcasters, ILogger&lt;ChatService&gt; logger)</code></pre>
<pre><code class="lang-csharp hljs">public ChatService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, IEnumerable&lt;IChatBroadcaster&gt; broadcasters, LinkEmbedService embedService, ILogger&lt;ChatService&gt; logger)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -180,6 +180,8 @@ Class ChatService <a class="header-action link-secondary" title="View source" h
<dd></dd>
<dt><code>broadcasters</code> <span class="xref">IEnumerable</span>&lt;<a class="xref" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Core/Contracts/IChatBroadcaster.cs">IChatBroadcaster</a>&gt;</dt>
<dd></dd>
<dt><code>embedService</code> <a class="xref" href="EchoHub.Server.Services.LinkEmbedService.html">LinkEmbedService</a></dt>
<dd></dd>
<dt><code>logger</code> <span class="xref">ILogger</span>&lt;<a class="xref" href="EchoHub.Server.Services.ChatService.html">ChatService</a>&gt;</dt>
<dd></dd>
</dl>
@@ -189,11 +189,16 @@ Class ImageToAsciiService <a class="header-action link-secondary" title="View s
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/ImageToAsciiService.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 summary"><p>Converts an image to ASCII art using half-block characters (▀▄█) with
printable color tags for 2x vertical resolution.
Each character cell represents two vertical pixels.
Format: {F:RRGGBB} foreground, {B:RRGGBB} background, {X} reset.
Uses only printable ASCII — no terminal escape bytes.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string ConvertToAscii(Stream imageStream, int width = 80, int height = 40)</code></pre>
<pre><code class="lang-csharp hljs">public string ConvertToAscii(Stream imageStream, int width = 80, int height = 80)</code></pre>
</div>
<h4 class="section">Parameters</h4>
@@ -222,6 +227,44 @@ Class ImageToAsciiService <a class="header-action link-secondary" title="View s
<a id="EchoHub_Server_Services_ImageToAsciiService_GetDimensions_" data-uid="EchoHub.Server.Services.ImageToAsciiService.GetDimensions*"></a>
<h3 id="EchoHub_Server_Services_ImageToAsciiService_GetDimensions_System_String_" data-uid="EchoHub.Server.Services.ImageToAsciiService.GetDimensions(System.String)">
GetDimensions(string?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/ImageToAsciiService.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"><p>Returns (width, height) dimensions for the given size code.
s = small (40x40), m = medium/default (80x80), l = large (120x120).</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static (int Width, int Height) GetDimensions(string? size)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>size</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt>(<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.int32,system.int32-.width">Width</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.int32,system.int32-.height">Height</a>)</dt>
<dd></dd>
</dl>
</article>
@@ -0,0 +1,256 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class LinkEmbedService | EchoHub Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class LinkEmbedService | EchoHub Documentation ">
<link rel="icon" href="../../images/hue_icon.svg">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="../toc.html">
<meta name="docfx:rel" content="../../">
<meta name="docfx:docurl" content="https://github.com/HueByte/EchoHub/new/master/apiSpec/new?filename=EchoHub_Server_Services_LinkEmbedService.md&amp;value=---%0Auid%3A%20EchoHub.Server.Services.LinkEmbedService%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../images/hue_icon.svg" alt="EchoHub">
EchoHub
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="EchoHub.Server.Services.LinkEmbedService">
<h1 id="EchoHub_Server_Services_LinkEmbedService" data-uid="EchoHub.Server.Services.LinkEmbedService" class="text-break">
Class LinkEmbedService <a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/LinkEmbedService.cs"><i class="bi bi-code-slash"></i></a>
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="EchoHub.html">EchoHub</a>.<a class="xref" href="EchoHub.Server.html">Server</a>.<a class="xref" href="EchoHub.Server.Services.html">Services</a></dd></dl>
<dl><dt>Assembly</dt><dd>EchoHub.Server.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class LinkEmbedService</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">LinkEmbedService</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="EchoHub_Server_Services_LinkEmbedService__ctor_" data-uid="EchoHub.Server.Services.LinkEmbedService.#ctor*"></a>
<h3 id="EchoHub_Server_Services_LinkEmbedService__ctor_System_Net_Http_IHttpClientFactory_Microsoft_Extensions_Logging_ILogger_EchoHub_Server_Services_LinkEmbedService__" data-uid="EchoHub.Server.Services.LinkEmbedService.#ctor(System.Net.Http.IHttpClientFactory,Microsoft.Extensions.Logging.ILogger{EchoHub.Server.Services.LinkEmbedService})">
LinkEmbedService(IHttpClientFactory, ILogger&lt;LinkEmbedService&gt;)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/LinkEmbedService.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public LinkEmbedService(IHttpClientFactory httpClientFactory, ILogger&lt;LinkEmbedService&gt; logger)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>httpClientFactory</code> <span class="xref">IHttpClientFactory</span></dt>
<dd></dd>
<dt><code>logger</code> <span class="xref">ILogger</span>&lt;<a class="xref" href="EchoHub.Server.Services.LinkEmbedService.html">LinkEmbedService</a>&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="EchoHub_Server_Services_LinkEmbedService_TryGetEmbedsAsync_" data-uid="EchoHub.Server.Services.LinkEmbedService.TryGetEmbedsAsync*"></a>
<h3 id="EchoHub_Server_Services_LinkEmbedService_TryGetEmbedsAsync_System_String_" data-uid="EchoHub.Server.Services.LinkEmbedService.TryGetEmbedsAsync(System.String)">
TryGetEmbedsAsync(string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/LinkEmbedService.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"><p>Detect all URLs in message content and attempt to fetch OG embed data for each.
Returns null if no URLs found or all fetches fail.
Never throws — all errors are caught internally.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task&lt;List&lt;EmbedDto&gt;?&gt; TryGetEmbedsAsync(string content)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>content</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span>&lt;<span class="xref">List</span>&lt;<a class="xref" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Core/DTOs/ChatDtos.cs">EmbedDto</a>&gt;&gt;</dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
<a href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/LinkEmbedService.cs" class="edit-link">Edit this page</a>
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<div class='footer-custom'><div class='footer-inner'><span class='footer-brand'>EchoHub</span><span class='footer-sep'>&middot;</span><a href='https://github.com/HueByte/EchoHub'>GitHub</a><span class='footer-sep'>&middot;</span><a href='https://echohub.voidcube.cloud'>Website</a><span class='footer-sep'>&middot;</span><span class='footer-credit'>Built with <a href='https://dotnet.github.io/docfx'>DocFX</a></span></div></div>
</div>
</div>
</footer>
</body>
</html>
@@ -182,6 +182,44 @@ Class PresenceTracker <a class="header-action link-secondary" title="View sourc
</h2>
<a id="EchoHub_Server_Services_PresenceTracker_ForceRemoveUser_" data-uid="EchoHub.Server.Services.PresenceTracker.ForceRemoveUser*"></a>
<h3 id="EchoHub_Server_Services_PresenceTracker_ForceRemoveUser_System_String_" data-uid="EchoHub.Server.Services.PresenceTracker.ForceRemoveUser(System.String)">
ForceRemoveUser(string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/PresenceTracker.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"><p>Forcibly remove a user from all tracking. Returns their connection IDs and channels
so the caller can broadcast departures and force-disconnect connections.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public (List&lt;string&gt; ConnectionIds, List&lt;string&gt; Channels) ForceRemoveUser(string username)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt>(<span class="xref">List</span>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt; <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.collections.generic.list-system.string-,system.collections.generic.list-system.string--.connectionids">ConnectionIds</a>, <span class="xref">List</span>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt; <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.valuetuple-system.collections.generic.list-system.string-,system.collections.generic.list-system.string--.channels">Channels</a>)</dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Services_PresenceTracker_GetChannelsForUser_" data-uid="EchoHub.Server.Services.PresenceTracker.GetChannelsForUser*"></a>
<h3 id="EchoHub_Server_Services_PresenceTracker_GetChannelsForUser_System_String_" data-uid="EchoHub.Server.Services.PresenceTracker.GetChannelsForUser(System.String)">
@@ -195,6 +195,80 @@ Class SignalRBroadcaster <a class="header-action link-secondary" title="View so
</h2>
<a id="EchoHub_Server_Services_SignalRBroadcaster_ForceDisconnectUserAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.ForceDisconnectUserAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_ForceDisconnectUserAsync_System_Collections_Generic_List_System_String__System_String_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.ForceDisconnectUserAsync(System.Collections.Generic.List{System.String},System.String)">
ForceDisconnectUserAsync(List&lt;string&gt;, string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/SignalRBroadcaster.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task ForceDisconnectUserAsync(List&lt;string&gt; connectionIds, string reason)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>connectionIds</code> <span class="xref">List</span>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</dt>
<dd></dd>
<dt><code>reason</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendChannelNukedAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendChannelNukedAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendChannelNukedAsync_System_String_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendChannelNukedAsync(System.String)">
SendChannelNukedAsync(string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/SignalRBroadcaster.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task SendChannelNukedAsync(string channelName)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>channelName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendChannelUpdatedAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendChannelUpdatedAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendChannelUpdatedAsync_EchoHub_Core_DTOs_ChannelDto_System_String_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendChannelUpdatedAsync(EchoHub.Core.DTOs.ChannelDto,System.String)">
@@ -271,6 +345,44 @@ Class SignalRBroadcaster <a class="header-action link-secondary" title="View so
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendMessageDeletedAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendMessageDeletedAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendMessageDeletedAsync_System_String_System_Guid_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendMessageDeletedAsync(System.String,System.Guid)">
SendMessageDeletedAsync(string, Guid)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/SignalRBroadcaster.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task SendMessageDeletedAsync(string channelName, Guid messageId)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>channelName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>messageId</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.guid">Guid</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendMessageToChannelAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendMessageToChannelAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendMessageToChannelAsync_System_String_EchoHub_Core_DTOs_MessageDto_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendMessageToChannelAsync(System.String,EchoHub.Core.DTOs.MessageDto)">
@@ -309,6 +421,44 @@ Class SignalRBroadcaster <a class="header-action link-secondary" title="View so
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendUserBannedAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserBannedAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendUserBannedAsync_System_String_System_String_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserBannedAsync(System.String,System.String)">
SendUserBannedAsync(string, string?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/SignalRBroadcaster.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task SendUserBannedAsync(string username, string? reason)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>reason</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendUserJoinedAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserJoinedAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendUserJoinedAsync_System_String_System_String_System_String_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserJoinedAsync(System.String,System.String,System.String)">
@@ -349,6 +499,46 @@ Class SignalRBroadcaster <a class="header-action link-secondary" title="View so
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendUserKickedAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserKickedAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendUserKickedAsync_System_String_System_String_System_String_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserKickedAsync(System.String,System.String,System.String)">
SendUserKickedAsync(string, string, string?)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Services/SignalRBroadcaster.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Task SendUserKickedAsync(string channelName, string username, string? reason)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>channelName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>username</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
<dt><code>reason</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Services_SignalRBroadcaster_SendUserLeftAsync_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserLeftAsync*"></a>
<h3 id="EchoHub_Server_Services_SignalRBroadcaster_SendUserLeftAsync_System_String_System_String_" data-uid="EchoHub.Server.Services.SignalRBroadcaster.SendUserLeftAsync(System.String,System.String)">
+4
View File
@@ -110,6 +110,10 @@ Classes
<dt><a class="xref" href="EchoHub.Server.Services.ImageToAsciiService.html">ImageToAsciiService</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Services.LinkEmbedService.html">LinkEmbedService</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Services.PresenceTracker.html">PresenceTracker</a></dt>
<dd></dd>
@@ -0,0 +1,254 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class DataMigrationService | EchoHub Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class DataMigrationService | EchoHub Documentation ">
<link rel="icon" href="../../images/hue_icon.svg">
<link rel="stylesheet" href="../../public/docfx.min.css">
<link rel="stylesheet" href="../../public/main.css">
<meta name="docfx:navrel" content="../../toc.html">
<meta name="docfx:tocrel" content="../toc.html">
<meta name="docfx:rel" content="../../">
<meta name="docfx:docurl" content="https://github.com/HueByte/EchoHub/new/master/apiSpec/new?filename=EchoHub_Server_Setup_DataMigrationService.md&amp;value=---%0Auid%3A%20EchoHub.Server.Setup.DataMigrationService%0Asummary%3A%20&#39;*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax&#39;%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../images/hue_icon.svg" alt="EchoHub">
EchoHub
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="EchoHub.Server.Setup.DataMigrationService">
<h1 id="EchoHub_Server_Setup_DataMigrationService" data-uid="EchoHub.Server.Setup.DataMigrationService" class="text-break">
Class DataMigrationService <a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Setup/DataMigrationService.cs"><i class="bi bi-code-slash"></i></a>
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="EchoHub.html">EchoHub</a>.<a class="xref" href="EchoHub.Server.html">Server</a>.<a class="xref" href="EchoHub.Server.Setup.html">Setup</a></dd></dl>
<dl><dt>Assembly</dt><dd>EchoHub.Server.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class DataMigrationService</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">DataMigrationService</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="EchoHub_Server_Setup_DataMigrationService_AnsiToColorTags_" data-uid="EchoHub.Server.Setup.DataMigrationService.AnsiToColorTags*"></a>
<h3 id="EchoHub_Server_Setup_DataMigrationService_AnsiToColorTags_System_String_" data-uid="EchoHub.Server.Setup.DataMigrationService.AnsiToColorTags(System.String)">
AnsiToColorTags(string)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Setup/DataMigrationService.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"><p>Convert ANSI escape codes to printable color tags.
\x1b[38;2;R;G;Bm → {F:RRGGBB}, \x1b[48;2;R;G;Bm → {B:RRGGBB}, \x1b[0m → {X}</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string AnsiToColorTags(string text)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>text</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="EchoHub_Server_Setup_DataMigrationService_RunAsync_" data-uid="EchoHub.Server.Setup.DataMigrationService.RunAsync*"></a>
<h3 id="EchoHub_Server_Setup_DataMigrationService_RunAsync_System_IServiceProvider_" data-uid="EchoHub.Server.Setup.DataMigrationService.RunAsync(System.IServiceProvider)">
RunAsync(IServiceProvider)
<a class="header-action link-secondary" title="View source" href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Setup/DataMigrationService.cs"><i class="bi bi-code-slash"></i></a>
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Task RunAsync(IServiceProvider services)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>services</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.iserviceprovider">IServiceProvider</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">Task</span></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
<a href="https://github.com/HueByte/EchoHub/blob/master/src/EchoHub.Server/Setup/DataMigrationService.cs" class="edit-link">Edit this page</a>
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<div class='footer-custom'><div class='footer-inner'><span class='footer-brand'>EchoHub</span><span class='footer-sep'>&middot;</span><a href='https://github.com/HueByte/EchoHub'>GitHub</a><span class='footer-sep'>&middot;</span><a href='https://echohub.voidcube.cloud'>Website</a><span class='footer-sep'>&middot;</span><span class='footer-credit'>Built with <a href='https://dotnet.github.io/docfx'>DocFX</a></span></div></div>
</div>
</div>
</footer>
</body>
</html>
+4
View File
@@ -94,6 +94,10 @@
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Setup.DataMigrationService.html">DataMigrationService</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="EchoHub.Server.Setup.DatabaseSetup.html">DatabaseSetup</a></dt>
<dd></dd>