mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-04 08:36:11 +02:00
802 lines
266 KiB
JSON
802 lines
266 KiB
JSON
{
|
|
"api/client-articles/index.html": {
|
|
"href": "api/client-articles/index.html",
|
|
"title": "Client Articles | EchoHub Documentation",
|
|
"summary": "Client Articles Articles related to the EchoHub TUI client built with Terminal.Gui v2. Topics Terminal.Gui v2 patterns and conventions Theme system and customization (including transparent theme) Command system reference Configuration and session persistence Audio playback and file downloads Automatic update checking Notification sounds"
|
|
},
|
|
"api/client/EchoHub.Client.AppOrchestrator.html": {
|
|
"href": "api/client/EchoHub.Client.AppOrchestrator.html",
|
|
"title": "Class AppOrchestrator | EchoHub Documentation",
|
|
"summary": "Class AppOrchestrator Namespace EchoHub.Client Assembly EchoHub.Client.dll Central orchestrator for the EchoHub TUI client. Owns session state and wires UI events to service calls. public sealed class AppOrchestrator : IDisposable Inheritance object AppOrchestrator Implements IDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AppOrchestrator(IApplication, ClientConfig) public AppOrchestrator(IApplication app, ClientConfig config) Parameters app IApplication config ClientConfig Properties MainWindow public MainWindow MainWindow { get; } Property Value MainWindow Methods Dispose() public void Dispose()"
|
|
},
|
|
"api/client/EchoHub.Client.AsyncRunner.html": {
|
|
"href": "api/client/EchoHub.Client.AsyncRunner.html",
|
|
"title": "Class AsyncRunner | EchoHub Documentation",
|
|
"summary": "Class AsyncRunner Namespace EchoHub.Client Assembly EchoHub.Client.dll Eliminates repeated Task.Run/try/catch/app.Invoke(ShowError) boilerplate. Runs async work on a background thread and routes exceptions to the UI. public static class AsyncRunner Inheritance object AsyncRunner Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods Run(IApplication, Func<Task>, Action<string>, string, string?) public static void Run(IApplication app, Func<Task> work, Action<string> showError, string errorPrefix, string? logContext = null) Parameters app IApplication work Func<Task> showError Action<string> errorPrefix string logContext string"
|
|
},
|
|
"api/client/EchoHub.Client.Commands.CommandHandler.html": {
|
|
"href": "api/client/EchoHub.Client.Commands.CommandHandler.html",
|
|
"title": "Class CommandHandler | EchoHub Documentation",
|
|
"summary": "Class CommandHandler Namespace EchoHub.Client.Commands Assembly EchoHub.Client.dll public class CommandHandler Inheritance object CommandHandler Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors CommandHandler() public CommandHandler() Methods HandleAsync(string) public Task<CommandResult> HandleAsync(string input) Parameters input string Returns Task<CommandResult> IsCommand(string) public bool IsCommand(string input) Parameters input string Returns bool Events OnAssignRole public event Func<string, string, Task>? OnAssignRole Event Type Func<string, string, Task> OnBanUser public event Func<string, string?, Task>? OnBanUser Event Type Func<string, string, Task> OnHelp public event Func<Task>? OnHelp Event Type Func<Task> OnJoinChannel public event Func<string, Task>? OnJoinChannel Event Type Func<string, Task> OnKickUser public event Func<string, string?, Task>? OnKickUser Event Type Func<string, string, Task> OnLeaveChannel public event Func<Task>? OnLeaveChannel Event Type Func<Task> OnListUsers public event Func<Task>? OnListUsers Event Type Func<Task> OnMuteUser public event Func<string, int?, Task>? OnMuteUser Event Type Func<string, int?, Task> OnNukeChannel public event Func<Task>? OnNukeChannel Event Type Func<Task> OnOpenProfile public event Func<string?, Task>? OnOpenProfile Event Type Func<string, Task> OnOpenServers public event Func<Task>? OnOpenServers Event Type Func<Task> OnQuit public event Func<Task>? OnQuit Event Type Func<Task> OnSendFile public event Func<string, string?, Task>? OnSendFile Event Type Func<string, string, Task> OnSetAvatar public event Func<string, Task>? OnSetAvatar Event Type Func<string, Task> OnSetColor public event Func<string, Task>? OnSetColor Event Type Func<string, Task> OnSetNick public event Func<string, Task>? OnSetNick Event Type Func<string, Task> OnSetStatus public event Func<UserStatus, string?, Task>? OnSetStatus Event Type Func<UserStatus, string, Task> OnSetTheme public event Func<string, Task>? OnSetTheme Event Type Func<string, Task> OnSetTopic public event Func<string, Task>? OnSetTopic Event Type Func<string, Task> OnTestSound public event Func<Task>? OnTestSound Event Type Func<Task> OnUnbanUser public event Func<string, Task>? OnUnbanUser Event Type Func<string, Task> OnUnmuteUser public event Func<string, Task>? OnUnmuteUser Event Type Func<string, Task>"
|
|
},
|
|
"api/client/EchoHub.Client.Commands.CommandResult.html": {
|
|
"href": "api/client/EchoHub.Client.Commands.CommandResult.html",
|
|
"title": "Class CommandResult | EchoHub Documentation",
|
|
"summary": "Class CommandResult Namespace EchoHub.Client.Commands Assembly EchoHub.Client.dll public record CommandResult : IEquatable<CommandResult> Inheritance object CommandResult Implements IEquatable<CommandResult> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors CommandResult(CommandResult) protected CommandResult(CommandResult original) Parameters original CommandResult CommandResult(bool, string?, bool) public CommandResult(bool Handled, string? Message = null, bool IsError = false) Parameters Handled bool Message string IsError bool Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Handled public bool Handled { get; init; } Property Value bool IsError public bool IsError { get; init; } Property Value bool Message public string? Message { get; init; } Property Value string Methods Deconstruct(out bool, out string?, out bool) public void Deconstruct(out bool Handled, out string? Message, out bool IsError) Parameters Handled bool Message string IsError bool Equals(CommandResult?) public virtual bool Equals(CommandResult? other) Parameters other CommandResult Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(CommandResult?, CommandResult?) public static bool operator ==(CommandResult? left, CommandResult? right) Parameters left CommandResult right CommandResult Returns bool operator !=(CommandResult?, CommandResult?) public static bool operator !=(CommandResult? left, CommandResult? right) Parameters left CommandResult right CommandResult Returns bool"
|
|
},
|
|
"api/client/EchoHub.Client.Commands.html": {
|
|
"href": "api/client/EchoHub.Client.Commands.html",
|
|
"title": "Namespace EchoHub.Client.Commands | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Client.Commands Classes CommandHandler CommandResult"
|
|
},
|
|
"api/client/EchoHub.Client.Config.AccountPreset.html": {
|
|
"href": "api/client/EchoHub.Client.Config.AccountPreset.html",
|
|
"title": "Class AccountPreset | EchoHub Documentation",
|
|
"summary": "Class AccountPreset Namespace EchoHub.Client.Config Assembly EchoHub.Client.dll public class AccountPreset Inheritance object AccountPreset Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AccountPreset() public AccountPreset() Properties Bio public string? Bio { get; set; } Property Value string DisplayName public string? DisplayName { get; set; } Property Value string NicknameColor public string? NicknameColor { get; set; } Property Value string"
|
|
},
|
|
"api/client/EchoHub.Client.Config.ClientConfig.html": {
|
|
"href": "api/client/EchoHub.Client.Config.ClientConfig.html",
|
|
"title": "Class ClientConfig | EchoHub Documentation",
|
|
"summary": "Class ClientConfig Namespace EchoHub.Client.Config Assembly EchoHub.Client.dll public class ClientConfig Inheritance object ClientConfig Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ClientConfig() public ClientConfig() Properties ActiveTheme public string ActiveTheme { get; set; } Property Value string DefaultPreset public AccountPreset DefaultPreset { get; set; } Property Value AccountPreset Notifications public NotificationConfig Notifications { get; set; } Property Value NotificationConfig SavedServers public List<SavedServer> SavedServers { get; set; } Property Value List<SavedServer>"
|
|
},
|
|
"api/client/EchoHub.Client.Config.ConfigManager.html": {
|
|
"href": "api/client/EchoHub.Client.Config.ConfigManager.html",
|
|
"title": "Class ConfigManager | EchoHub Documentation",
|
|
"summary": "Class ConfigManager Namespace EchoHub.Client.Config Assembly EchoHub.Client.dll public static class ConfigManager Inheritance object ConfigManager Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods Load() public static ClientConfig Load() Returns ClientConfig RemoveServer(string) public static void RemoveServer(string url) Parameters url string Save(ClientConfig) public static void Save(ClientConfig config) Parameters config ClientConfig SaveServer(SavedServer) public static void SaveServer(SavedServer server) Parameters server SavedServer"
|
|
},
|
|
"api/client/EchoHub.Client.Config.NotificationConfig.html": {
|
|
"href": "api/client/EchoHub.Client.Config.NotificationConfig.html",
|
|
"title": "Class NotificationConfig | EchoHub Documentation",
|
|
"summary": "Class NotificationConfig Namespace EchoHub.Client.Config Assembly EchoHub.Client.dll public class NotificationConfig Inheritance object NotificationConfig Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors NotificationConfig() public NotificationConfig() Properties Enabled public bool Enabled { get; set; } Property Value bool SoundFile public string? SoundFile { get; set; } Property Value string Volume public byte Volume { get; set; } Property Value byte"
|
|
},
|
|
"api/client/EchoHub.Client.Config.SavedServer.html": {
|
|
"href": "api/client/EchoHub.Client.Config.SavedServer.html",
|
|
"title": "Class SavedServer | EchoHub Documentation",
|
|
"summary": "Class SavedServer Namespace EchoHub.Client.Config Assembly EchoHub.Client.dll public class SavedServer Inheritance object SavedServer Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors SavedServer() public SavedServer() Properties LastConnected public DateTimeOffset LastConnected { get; set; } Property Value DateTimeOffset Name public required string Name { get; set; } Property Value string RefreshToken public string? RefreshToken { get; set; } Property Value string RememberMe public bool RememberMe { get; set; } Property Value bool Url public required string Url { get; set; } Property Value string Username public string? Username { get; set; } Property Value string"
|
|
},
|
|
"api/client/EchoHub.Client.Config.html": {
|
|
"href": "api/client/EchoHub.Client.Config.html",
|
|
"title": "Namespace EchoHub.Client.Config | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Client.Config Classes AccountPreset ClientConfig ConfigManager NotificationConfig SavedServer"
|
|
},
|
|
"api/client/EchoHub.Client.Services.ApiClient.html": {
|
|
"href": "api/client/EchoHub.Client.Services.ApiClient.html",
|
|
"title": "Class ApiClient | EchoHub Documentation",
|
|
"summary": "Class ApiClient Namespace EchoHub.Client.Services Assembly EchoHub.Client.dll public sealed class ApiClient : IDisposable Inheritance object ApiClient Implements IDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ApiClient(string) public ApiClient(string baseUrl) Parameters baseUrl string Properties BaseUrl public string BaseUrl { get; } Property Value string RefreshToken public string? RefreshToken { get; } Property Value string Token public string? Token { get; } Property Value string Methods AssignRoleAsync(string, ServerRole) public Task AssignRoleAsync(string username, ServerRole role) Parameters username string role ServerRole Returns Task BanUserAsync(string, string?) public Task BanUserAsync(string username, string? reason = null) Parameters username string reason string Returns Task CreateChannelAsync(string, string?, bool) public Task<ChannelDto?> CreateChannelAsync(string name, string? topic = null, bool isPublic = true) Parameters name string topic string isPublic bool Returns Task<ChannelDto> DeleteChannelAsync(string) public Task DeleteChannelAsync(string channelName) Parameters channelName string Returns Task DeleteMessageAsync(Guid) public Task DeleteMessageAsync(Guid messageId) Parameters messageId Guid Returns Task Dispose() public void Dispose() DownloadFileToTempAsync(string, string) public Task<string> DownloadFileToTempAsync(string relativeUrl, string fileName) Parameters relativeUrl string fileName string Returns Task<string> GetChannelsAsync() public Task<List<ChannelDto>> GetChannelsAsync() Returns Task<List<ChannelDto>> GetEncryptionKeyAsync() public Task<string> GetEncryptionKeyAsync() Returns Task<string> GetServerInfoAsync() public Task<ServerStatusDto?> GetServerInfoAsync() Returns Task<ServerStatusDto> GetUserProfileAsync(string) public Task<UserProfileDto?> GetUserProfileAsync(string username) Parameters username string Returns Task<UserProfileDto> GetValidTokenAsync() Returns a valid access token, refreshing if expired. Used by EchoHubConnection for SignalR token provider. public Task<string?> GetValidTokenAsync() Returns Task<string> KickUserAsync(string, string?) public Task KickUserAsync(string username, string? reason = null) Parameters username string reason string Returns Task LoginAsync(string, string) public Task<LoginResponse> LoginAsync(string username, string password) Parameters username string password string Returns Task<LoginResponse> LoginWithRefreshTokenAsync(string) public Task<LoginResponse> LoginWithRefreshTokenAsync(string refreshToken) Parameters refreshToken string Returns Task<LoginResponse> LogoutAsync() public Task LogoutAsync() Returns Task MuteUserAsync(string, int?, string?) public Task MuteUserAsync(string username, int? durationMinutes = null, string? reason = null) Parameters username string durationMinutes int? reason string Returns Task NukeChannelAsync(string) public Task NukeChannelAsync(string channelName) Parameters channelName string Returns Task RefreshTokenAsync() public Task RefreshTokenAsync() Returns Task RegisterAsync(string, string, string?) public Task<LoginResponse> RegisterAsync(string username, string password, string? displayName = null) Parameters username string password string displayName string Returns Task<LoginResponse> SendUrlAsync(string, string, string?) public Task<MessageDto?> SendUrlAsync(string channelName, string url, string? size = null) Parameters channelName string url string size string Returns Task<MessageDto> UnbanUserAsync(string) public Task UnbanUserAsync(string username) Parameters username string Returns Task UnmuteUserAsync(string) public Task UnmuteUserAsync(string username) Parameters username string Returns Task UpdateChannelTopicAsync(string, string?) public Task<ChannelDto?> UpdateChannelTopicAsync(string channelName, string? topic) Parameters channelName string topic string Returns Task<ChannelDto> UpdateProfileAsync(UpdateProfileRequest) public Task<UserProfileDto?> UpdateProfileAsync(UpdateProfileRequest request) Parameters request UpdateProfileRequest Returns Task<UserProfileDto> UploadAvatarAsync(Stream, string) public Task<string?> UploadAvatarAsync(Stream imageStream, string fileName) Parameters imageStream Stream fileName string Returns Task<string> UploadFileAsync(string, Stream, string, string?) public Task<MessageDto?> UploadFileAsync(string channelName, Stream fileStream, string fileName, string? size = null) Parameters channelName string fileStream Stream fileName string size string Returns Task<MessageDto> Events OnTokensRefreshed public event Action? OnTokensRefreshed Event Type Action"
|
|
},
|
|
"api/client/EchoHub.Client.Services.AudioPlaybackService.html": {
|
|
"href": "api/client/EchoHub.Client.Services.AudioPlaybackService.html",
|
|
"title": "Class AudioPlaybackService | EchoHub Documentation",
|
|
"summary": "Class AudioPlaybackService Namespace EchoHub.Client.Services Assembly EchoHub.Client.dll public class AudioPlaybackService Inheritance object AudioPlaybackService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AudioPlaybackService() public AudioPlaybackService() Properties IsPaused public bool IsPaused { get; } Property Value bool IsPlaying public bool IsPlaying { get; } Property Value bool Methods PauseAsync() public Task PauseAsync() Returns Task PlayAsync(string) public Task PlayAsync(string filePath) Parameters filePath string Returns Task ResumeAsync() public Task ResumeAsync() Returns Task SetVolumeAsync(byte) public Task SetVolumeAsync(byte volume) Parameters volume byte Returns Task StopAsync() public Task StopAsync() Returns Task Events PlaybackFinished public event EventHandler? PlaybackFinished Event Type EventHandler"
|
|
},
|
|
"api/client/EchoHub.Client.Services.ClientEncryptionService.html": {
|
|
"href": "api/client/EchoHub.Client.Services.ClientEncryptionService.html",
|
|
"title": "Class ClientEncryptionService | EchoHub Documentation",
|
|
"summary": "Class ClientEncryptionService Namespace EchoHub.Client.Services Assembly EchoHub.Client.dll Client-side encryption service. Uses the same AES-256-GCM format as the server so messages are encrypted end-to-end between client and server. public sealed class ClientEncryptionService : IMessageEncryptionService Inheritance object ClientEncryptionService Implements IMessageEncryptionService Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ClientEncryptionService() public ClientEncryptionService() Properties EncryptDatabaseEnabled Whether database content should be encrypted at rest (server setting). public bool EncryptDatabaseEnabled { get; } Property Value bool IsInitialized public bool IsInitialized { get; } Property Value bool Methods Decrypt(string) public string Decrypt(string content) Parameters content string Returns string DecryptNullable(string?) public string? DecryptNullable(string? value) Parameters value string Returns string Encrypt(string) public string Encrypt(string plaintext) Parameters plaintext string Returns string EncryptNullable(string?) public string? EncryptNullable(string? value) Parameters value string Returns string SetKey(string) Initialize with the server's encryption key (fetched after login). public void SetKey(string base64Key) Parameters base64Key string"
|
|
},
|
|
"api/client/EchoHub.Client.Services.EchoHubConnection.html": {
|
|
"href": "api/client/EchoHub.Client.Services.EchoHubConnection.html",
|
|
"title": "Class EchoHubConnection | EchoHub Documentation",
|
|
"summary": "Class EchoHubConnection Namespace EchoHub.Client.Services Assembly EchoHub.Client.dll public sealed class EchoHubConnection : IAsyncDisposable Inheritance object EchoHubConnection Implements IAsyncDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors EchoHubConnection(string, ApiClient, ClientEncryptionService) public EchoHubConnection(string serverUrl, ApiClient apiClient, ClientEncryptionService encryption) Parameters serverUrl string apiClient ApiClient encryption ClientEncryptionService Properties IsConnected public bool IsConnected { get; } Property Value bool Methods ConnectAsync() public Task ConnectAsync() Returns Task DisconnectAsync() public Task DisconnectAsync() Returns Task DisposeAsync() public ValueTask DisposeAsync() Returns ValueTask GetHistoryAsync(string, int) public Task<List<MessageDto>> GetHistoryAsync(string channelName, int count = 100) Parameters channelName string count int Returns Task<List<MessageDto>> GetOnlineUsersAsync(string) public Task<List<UserPresenceDto>> GetOnlineUsersAsync(string channelName) Parameters channelName string Returns Task<List<UserPresenceDto>> JoinChannelAsync(string) public Task<List<MessageDto>> JoinChannelAsync(string channelName) Parameters channelName string Returns Task<List<MessageDto>> LeaveChannelAsync(string) public Task LeaveChannelAsync(string channelName) Parameters channelName string Returns Task SendMessageAsync(string, string) public Task SendMessageAsync(string channelName, string content) Parameters channelName string content string Returns Task UpdateStatusAsync(UserStatus, string?) public Task UpdateStatusAsync(UserStatus status, string? statusMessage = null) Parameters status UserStatus statusMessage string Returns Task Events OnChannelNuked public event Action<string>? OnChannelNuked Event Type Action<string> OnChannelUpdated public event Action<ChannelDto>? OnChannelUpdated Event Type Action<ChannelDto> OnConnectionStateChanged public event Action<string>? OnConnectionStateChanged Event Type Action<string> OnError public event Action<string>? OnError Event Type Action<string> OnForceDisconnect public event Action<string>? OnForceDisconnect Event Type Action<string> OnMessageDeleted public event Action<string, Guid>? OnMessageDeleted Event Type Action<string, Guid> OnMessageReceived public event Action<MessageDto>? OnMessageReceived Event Type Action<MessageDto> OnReconnected public event Action? OnReconnected Event Type Action OnUserBanned public event Action<string, string?>? OnUserBanned Event Type Action<string, string> OnUserJoined public event Action<string, string>? OnUserJoined Event Type Action<string, string> OnUserKicked public event Action<string, string, string?>? OnUserKicked Event Type Action<string, string, string> OnUserLeft public event Action<string, string>? OnUserLeft Event Type Action<string, string> OnUserStatusChanged public event Action<UserPresenceDto>? OnUserStatusChanged Event Type Action<UserPresenceDto>"
|
|
},
|
|
"api/client/EchoHub.Client.Services.NotificationSoundService.html": {
|
|
"href": "api/client/EchoHub.Client.Services.NotificationSoundService.html",
|
|
"title": "Class NotificationSoundService | EchoHub Documentation",
|
|
"summary": "Class NotificationSoundService Namespace EchoHub.Client.Services Assembly EchoHub.Client.dll public class NotificationSoundService Inheritance object NotificationSoundService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors NotificationSoundService(NotificationConfig) public NotificationSoundService(NotificationConfig config) Parameters config NotificationConfig Methods PlayAsync() public Task PlayAsync() Returns Task PlayTestAsync() Plays the notification sound regardless of the Enabled setting (for /test-sound). public Task PlayTestAsync() Returns Task SetEnabled(bool) public void SetEnabled(bool enabled) Parameters enabled bool SetVolume(byte) public void SetVolume(byte volume) Parameters volume byte"
|
|
},
|
|
"api/client/EchoHub.Client.Services.UpdateChecker.html": {
|
|
"href": "api/client/EchoHub.Client.Services.UpdateChecker.html",
|
|
"title": "Class UpdateChecker | EchoHub Documentation",
|
|
"summary": "Class UpdateChecker Namespace EchoHub.Client.Services Assembly EchoHub.Client.dll public sealed class UpdateChecker : IDisposable Inheritance object UpdateChecker Implements IDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors UpdateChecker(IApplication) public UpdateChecker(IApplication app) Parameters app IApplication Properties CurrentVersion public static string CurrentVersion { get; } Property Value string Methods Dispose() public void Dispose() Start() public void Start()"
|
|
},
|
|
"api/client/EchoHub.Client.Services.html": {
|
|
"href": "api/client/EchoHub.Client.Services.html",
|
|
"title": "Namespace EchoHub.Client.Services | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Client.Services Classes ApiClient AudioPlaybackService ClientEncryptionService Client-side encryption service. Uses the same AES-256-GCM format as the server so messages are encrypted end-to-end between client and server. EchoHubConnection NotificationSoundService UpdateChecker"
|
|
},
|
|
"api/client/EchoHub.Client.Themes.Theme.html": {
|
|
"href": "api/client/EchoHub.Client.Themes.Theme.html",
|
|
"title": "Class Theme | EchoHub Documentation",
|
|
"summary": "Class Theme Namespace EchoHub.Client.Themes Assembly EchoHub.Client.dll public class Theme Inheritance object Theme Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors Theme() public Theme() Properties Base public ThemeColors Base { get; set; } Property Value ThemeColors Dialog public ThemeColors Dialog { get; set; } Property Value ThemeColors Menu public ThemeColors Menu { get; set; } Property Value ThemeColors Name public required string Name { get; set; } Property Value string Status public ThemeColors Status { get; set; } Property Value ThemeColors"
|
|
},
|
|
"api/client/EchoHub.Client.Themes.ThemeColors.html": {
|
|
"href": "api/client/EchoHub.Client.Themes.ThemeColors.html",
|
|
"title": "Class ThemeColors | EchoHub Documentation",
|
|
"summary": "Class ThemeColors Namespace EchoHub.Client.Themes Assembly EchoHub.Client.dll public class ThemeColors Inheritance object ThemeColors Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ThemeColors() public ThemeColors() Properties Background public string Background { get; set; } Property Value string FocusBackground public string FocusBackground { get; set; } Property Value string FocusForeground public string FocusForeground { get; set; } Property Value string Foreground public string Foreground { get; set; } Property Value string"
|
|
},
|
|
"api/client/EchoHub.Client.Themes.ThemeManager.html": {
|
|
"href": "api/client/EchoHub.Client.Themes.ThemeManager.html",
|
|
"title": "Class ThemeManager | EchoHub Documentation",
|
|
"summary": "Class ThemeManager Namespace EchoHub.Client.Themes Assembly EchoHub.Client.dll public static class ThemeManager Inheritance object ThemeManager Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods ApplyTheme(Theme) public static void ApplyTheme(Theme theme) Parameters theme Theme GetAvailableThemes() public static List<Theme> GetAvailableThemes() Returns List<Theme> GetTheme(string) public static Theme GetTheme(string name) Parameters name string Returns Theme SaveTheme(Theme) public static void SaveTheme(Theme theme) Parameters theme Theme"
|
|
},
|
|
"api/client/EchoHub.Client.Themes.html": {
|
|
"href": "api/client/EchoHub.Client.Themes.html",
|
|
"title": "Namespace EchoHub.Client.Themes | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Client.Themes Classes Theme ThemeColors ThemeManager"
|
|
},
|
|
"api/client/EchoHub.Client.UI.AudioPlayerDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.AudioPlayerDialog.html",
|
|
"title": "Class AudioPlayerDialog | EchoHub Documentation",
|
|
"summary": "Class AudioPlayerDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll public sealed class AudioPlayerDialog Inheritance object AudioPlayerDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AudioPlayerDialog() public AudioPlayerDialog() Methods Show(IApplication, AudioPlaybackService, string, string) public static void Show(IApplication app, AudioPlaybackService audioService, string filePath, string fileName) Parameters app IApplication audioService AudioPlaybackService filePath string fileName string"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ChannelListSource.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ChannelListSource.html",
|
|
"title": "Class ChannelListSource | EchoHub Documentation",
|
|
"summary": "Class ChannelListSource Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Custom list data source for colored channel list rendering. Active channel gets a > indicator, unread channels are bright with a count badge. public class ChannelListSource : IListDataSource, IDisposable Inheritance object ChannelListSource Implements IListDataSource IDisposable Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChannelListSource() public ChannelListSource() Properties Count Gets the number of items in the data source. public int Count { get; } Property Value int MaxItemLength Gets the width in columns of the widest item in the data source. public int MaxItemLength { get; } Property Value int Remarks ListView uses this value to set its horizontal content size for scrolling. SuspendCollectionChangedEvent Gets or sets whether the CollectionChanged event should be suppressed. public bool SuspendCollectionChangedEvent { get; set; } Property Value bool Remarks Set to true to prevent CollectionChanged from being raised during bulk operations. Set back to false to resume event notifications. Methods Dispose() public void Dispose() IsMarked(int) Determines whether the specified item is marked. public bool IsMarked(int item) Parameters item int The zero-based index of the item. Returns bool true if the item is marked; otherwise false. Remarks ListView calls this method to determine whether to render the item with a mark indicator when ShowMarks is true. Render(ListView, bool, int, int, int, int, int) Renders the specified item to the ListView. public void Render(ListView listView, bool selected, int item, int col, int row, int width, int viewportX = 0) Parameters listView ListView The ListView to render to. selected bool true if the item is currently selected; otherwise false. item int The zero-based index of the item to render. col int The column in listView Viewport where rendering starts. row int The row in listView Viewport where rendering starts. width int The width available for rendering. viewportX int The horizontal scroll offset. Remarks ListView calls this method for each visible item during rendering. The color scheme will be set based on selection state before this method is called. Implementations must fill the entire width to avoid rendering artifacts. SetMark(int, bool) Sets the marked state of the specified item. public void SetMark(int item, bool value) Parameters item int The zero-based index of the item. value bool true to mark the item; false to unmark it. Remarks ListView calls this method when the user toggles marking (e.g., via the SPACE key) if ShowMarks is true. ToList() Returns the underlying data source as an System.Collections.IList. public IList ToList() Returns IList The data source as an System.Collections.IList. Remarks ListView uses this method to access individual items for events like ValueChanged and to enable keyboard search via KeystrokeNavigator. Update(List<string>, Dictionary<string, int>, string) public void Update(List<string> channels, Dictionary<string, int> unread, string activeChannel) Parameters channels List<string> unread Dictionary<string, int> activeChannel string Events CollectionChanged Raised when items are added, removed, moved, or the entire collection is refreshed. public event NotifyCollectionChangedEventHandler? CollectionChanged Event Type NotifyCollectionChangedEventHandler Remarks ListView subscribes to this event to update its display and content size when the data changes. Implementations should raise this event whenever the underlying collection changes, unless SuspendCollectionChangedEvent is true."
|
|
},
|
|
"api/client/EchoHub.Client.UI.ChatColors.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ChatColors.html",
|
|
"title": "Class ChatColors | EchoHub Documentation",
|
|
"summary": "Class ChatColors Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Shared color attributes for chat rendering (timestamps, system messages). public static class ChatColors Inheritance object ChatColors Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Fields AudioAttr public static readonly Attribute AudioAttr Field Value Attribute EmbedBorderAttr public static readonly Attribute EmbedBorderAttr Field Value Attribute EmbedDescAttr public static readonly Attribute EmbedDescAttr Field Value Attribute EmbedTitleAttr public static readonly Attribute EmbedTitleAttr Field Value Attribute EmbedUrlAttr public static readonly Attribute EmbedUrlAttr Field Value Attribute FileAttr public static readonly Attribute FileAttr Field Value Attribute MentionHighlightAttr public static readonly Attribute MentionHighlightAttr Field Value Attribute MentionTextAttr public static readonly Attribute MentionTextAttr Field Value Attribute SystemAttr public static readonly Attribute SystemAttr Field Value Attribute TimestampAttr public static readonly Attribute TimestampAttr Field Value Attribute Methods SplitMentions(string, Attribute?) Split text around @mentions, giving each @word the MentionTextAttr accent color. Non-mention text uses the provided default color. public static List<ChatSegment> SplitMentions(string text, Attribute? defaultColor = null) Parameters text string defaultColor Attribute? Returns List<ChatSegment>"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ChatLine.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ChatLine.html",
|
|
"title": "Class ChatLine | EchoHub Documentation",
|
|
"summary": "Class ChatLine Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll A single line in the chat, composed of colored segments. public class ChatLine Inheritance object ChatLine Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChatLine(List<ChatSegment>) public ChatLine(List<ChatSegment> segments) Parameters segments List<ChatSegment> ChatLine(string) public ChatLine(string plainText) Parameters plainText string Properties AttachmentFileName public string? AttachmentFileName { get; set; } Property Value string AttachmentUrl public string? AttachmentUrl { get; set; } Property Value string IsMention public bool IsMention { get; set; } Property Value bool MessageId public Guid? MessageId { get; set; } Property Value Guid? Segments public List<ChatSegment> Segments { get; } Property Value List<ChatSegment> TextLength public int TextLength { get; } Property Value int Type public MessageType? Type { get; set; } Property Value MessageType? Methods FromColoredText(string, Attribute?) Parse a string containing printable color tags into colored segments. Format: {F:RRGGBB} (foreground), {B:RRGGBB} (background), {X} (reset). public static ChatLine FromColoredText(string text, Attribute? defaultAttr = null) Parameters text string defaultAttr Attribute? Returns ChatLine HasColorTags(string) Returns true if a line contains printable color tags. public static bool HasColorTags(string text) Parameters text string Returns bool StripColorTags(string) Remove all color tags from text, returning only the visible characters. public static string StripColorTags(string text) Parameters text string Returns string ToString() public override string ToString() Returns string Wrap(int, int) Wrap this line into multiple lines that fit within the given width. Continuation lines are indented with the specified number of spaces. public List<ChatLine> Wrap(int width, int continuationIndent = 0) Parameters width int continuationIndent int Returns List<ChatLine>"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ChatListSource.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ChatListSource.html",
|
|
"title": "Class ChatListSource | EchoHub Documentation",
|
|
"summary": "Class ChatListSource Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Custom list data source for chat messages with per-segment coloring. public class ChatListSource : IListDataSource, IDisposable Inheritance object ChatListSource Implements IListDataSource IDisposable Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChatListSource() public ChatListSource() Properties Count Gets the number of items in the data source. public int Count { get; } Property Value int MaxItemLength Gets the width in columns of the widest item in the data source. public int MaxItemLength { get; } Property Value int Remarks ListView uses this value to set its horizontal content size for scrolling. SuspendCollectionChangedEvent Gets or sets whether the CollectionChanged event should be suppressed. public bool SuspendCollectionChangedEvent { get; set; } Property Value bool Remarks Set to true to prevent CollectionChanged from being raised during bulk operations. Set back to false to resume event notifications. Methods Add(ChatLine) public void Add(ChatLine line) Parameters line ChatLine AddRange(IEnumerable<ChatLine>) public void AddRange(IEnumerable<ChatLine> lines) Parameters lines IEnumerable<ChatLine> Clear() public void Clear() Dispose() public void Dispose() GetLine(int) public ChatLine? GetLine(int index) Parameters index int Returns ChatLine InsertRange(int, IEnumerable<ChatLine>) public void InsertRange(int index, IEnumerable<ChatLine> lines) Parameters index int lines IEnumerable<ChatLine> IsMarked(int) Determines whether the specified item is marked. public bool IsMarked(int item) Parameters item int The zero-based index of the item. Returns bool true if the item is marked; otherwise false. Remarks ListView calls this method to determine whether to render the item with a mark indicator when ShowMarks is true. Render(ListView, bool, int, int, int, int, int) Renders the specified item to the ListView. public void Render(ListView listView, bool selected, int item, int col, int row, int width, int viewportX = 0) Parameters listView ListView The ListView to render to. selected bool true if the item is currently selected; otherwise false. item int The zero-based index of the item to render. col int The column in listView Viewport where rendering starts. row int The row in listView Viewport where rendering starts. width int The width available for rendering. viewportX int The horizontal scroll offset. Remarks ListView calls this method for each visible item during rendering. The color scheme will be set based on selection state before this method is called. Implementations must fill the entire width to avoid rendering artifacts. SetMark(int, bool) Sets the marked state of the specified item. public void SetMark(int item, bool value) Parameters item int The zero-based index of the item. value bool true to mark the item; false to unmark it. Remarks ListView calls this method when the user toggles marking (e.g., via the SPACE key) if ShowMarks is true. ToList() Returns the underlying data source as an System.Collections.IList. public IList ToList() Returns IList The data source as an System.Collections.IList. Remarks ListView uses this method to access individual items for events like ValueChanged and to enable keyboard search via KeystrokeNavigator. Events CollectionChanged Raised when items are added, removed, moved, or the entire collection is refreshed. public event NotifyCollectionChangedEventHandler? CollectionChanged Event Type NotifyCollectionChangedEventHandler Remarks ListView subscribes to this event to update its display and content size when the data changes. Implementations should raise this event whenever the underlying collection changes, unless SuspendCollectionChangedEvent is true."
|
|
},
|
|
"api/client/EchoHub.Client.UI.ChatSegment.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ChatSegment.html",
|
|
"title": "Class ChatSegment | EchoHub Documentation",
|
|
"summary": "Class ChatSegment Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll A colored text segment within a chat line. public record ChatSegment : IEquatable<ChatSegment> Inheritance object ChatSegment Implements IEquatable<ChatSegment> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ChatSegment(ChatSegment) protected ChatSegment(ChatSegment original) Parameters original ChatSegment ChatSegment(string, Attribute?) A colored text segment within a chat line. public ChatSegment(string Text, Attribute? Color) Parameters Text string Color Attribute? Properties Color public Attribute? Color { get; init; } Property Value Attribute? EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Text public string Text { get; init; } Property Value string Methods Deconstruct(out string, out Attribute?) public void Deconstruct(out string Text, out Attribute? Color) Parameters Text string Color Attribute? Equals(ChatSegment?) public virtual bool Equals(ChatSegment? other) Parameters other ChatSegment Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ChatSegment?, ChatSegment?) public static bool operator ==(ChatSegment? left, ChatSegment? right) Parameters left ChatSegment right ChatSegment Returns bool operator !=(ChatSegment?, ChatSegment?) public static bool operator !=(ChatSegment? left, ChatSegment? right) Parameters left ChatSegment right ChatSegment Returns bool"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ColorHelper.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ColorHelper.html",
|
|
"title": "Class ColorHelper | EchoHub Documentation",
|
|
"summary": "Class ColorHelper Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Helper to parse hex colors to Terminal.Gui Attributes. public static class ColorHelper Inheritance object ColorHelper Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods ParseHexColor(string?) public static Attribute? ParseHexColor(string? hex) Parameters hex string Returns Attribute?"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ConnectDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ConnectDialog.html",
|
|
"title": "Class ConnectDialog | EchoHub Documentation",
|
|
"summary": "Class ConnectDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll A Terminal.Gui dialog for entering server connection and authentication details. Includes a saved servers selector when saved servers are available. public sealed class ConnectDialog Inheritance object ConnectDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ConnectDialog() public ConnectDialog() Methods Show(IApplication, List<SavedServer>?) Shows the connect dialog with an optional list of saved servers. Returns the result, or null if cancelled. public static ConnectDialogResult? Show(IApplication app, List<SavedServer>? savedServers = null) Parameters app IApplication savedServers List<SavedServer> Returns ConnectDialogResult"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ConnectDialogResult.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ConnectDialogResult.html",
|
|
"title": "Class ConnectDialogResult | EchoHub Documentation",
|
|
"summary": "Class ConnectDialogResult Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Result returned from the connect dialog. public record ConnectDialogResult : IEquatable<ConnectDialogResult> Inheritance object ConnectDialogResult Implements IEquatable<ConnectDialogResult> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ConnectDialogResult(ConnectDialogResult) protected ConnectDialogResult(ConnectDialogResult original) Parameters original ConnectDialogResult ConnectDialogResult(string, string, string, bool, bool, string?) Result returned from the connect dialog. public ConnectDialogResult(string ServerUrl, string Username, string Password, bool IsRegister, bool RememberMe, string? SavedRefreshToken) Parameters ServerUrl string Username string Password string IsRegister bool RememberMe bool SavedRefreshToken string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type IsRegister public bool IsRegister { get; init; } Property Value bool Password public string Password { get; init; } Property Value string RememberMe public bool RememberMe { get; init; } Property Value bool SavedRefreshToken public string? SavedRefreshToken { get; init; } Property Value string ServerUrl public string ServerUrl { get; init; } Property Value string Username public string Username { get; init; } Property Value string Methods Deconstruct(out string, out string, out string, out bool, out bool, out string?) public void Deconstruct(out string ServerUrl, out string Username, out string Password, out bool IsRegister, out bool RememberMe, out string? SavedRefreshToken) Parameters ServerUrl string Username string Password string IsRegister bool RememberMe bool SavedRefreshToken string Equals(ConnectDialogResult?) public virtual bool Equals(ConnectDialogResult? other) Parameters other ConnectDialogResult Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ConnectDialogResult?, ConnectDialogResult?) public static bool operator ==(ConnectDialogResult? left, ConnectDialogResult? right) Parameters left ConnectDialogResult right ConnectDialogResult Returns bool operator !=(ConnectDialogResult?, ConnectDialogResult?) public static bool operator !=(ConnectDialogResult? left, ConnectDialogResult? right) Parameters left ConnectDialogResult right ConnectDialogResult Returns bool"
|
|
},
|
|
"api/client/EchoHub.Client.UI.CreateChannelDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.CreateChannelDialog.html",
|
|
"title": "Class CreateChannelDialog | EchoHub Documentation",
|
|
"summary": "Class CreateChannelDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll public sealed class CreateChannelDialog Inheritance object CreateChannelDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors CreateChannelDialog() public CreateChannelDialog() Methods Show(IApplication) public static CreateChannelResult? Show(IApplication app) Parameters app IApplication Returns CreateChannelResult"
|
|
},
|
|
"api/client/EchoHub.Client.UI.CreateChannelResult.html": {
|
|
"href": "api/client/EchoHub.Client.UI.CreateChannelResult.html",
|
|
"title": "Class CreateChannelResult | EchoHub Documentation",
|
|
"summary": "Class CreateChannelResult Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll public record CreateChannelResult : IEquatable<CreateChannelResult> Inheritance object CreateChannelResult Implements IEquatable<CreateChannelResult> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors CreateChannelResult(CreateChannelResult) protected CreateChannelResult(CreateChannelResult original) Parameters original CreateChannelResult CreateChannelResult(string, string?, bool) public CreateChannelResult(string Name, string? Topic, bool IsPublic) Parameters Name string Topic string IsPublic bool Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type IsPublic public bool IsPublic { get; init; } Property Value bool Name public string Name { get; init; } Property Value string Topic public string? Topic { get; init; } Property Value string Methods Deconstruct(out string, out string?, out bool) public void Deconstruct(out string Name, out string? Topic, out bool IsPublic) Parameters Name string Topic string IsPublic bool Equals(CreateChannelResult?) public virtual bool Equals(CreateChannelResult? other) Parameters other CreateChannelResult Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(CreateChannelResult?, CreateChannelResult?) public static bool operator ==(CreateChannelResult? left, CreateChannelResult? right) Parameters left CreateChannelResult right CreateChannelResult Returns bool operator !=(CreateChannelResult?, CreateChannelResult?) public static bool operator !=(CreateChannelResult? left, CreateChannelResult? right) Parameters left CreateChannelResult right CreateChannelResult Returns bool"
|
|
},
|
|
"api/client/EchoHub.Client.UI.EmojiHelper.html": {
|
|
"href": "api/client/EchoHub.Client.UI.EmojiHelper.html",
|
|
"title": "Class EmojiHelper | EchoHub Documentation",
|
|
"summary": "Class EmojiHelper Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Converts emoji grapheme clusters to text shortcodes for safe TUI rendering. Terminal width calculations for emoji are unreliable across different terminals, so we replace them with fixed-width ASCII shortcodes for display only. public static class EmojiHelper Inheritance object EmojiHelper Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods ReplaceEmoji(string) Replace emoji graphemes in the text with :shortcode: equivalents. Non-emoji text passes through unchanged. public static string ReplaceEmoji(string text) Parameters text string Returns string"
|
|
},
|
|
"api/client/EchoHub.Client.UI.MainWindow.html": {
|
|
"href": "api/client/EchoHub.Client.UI.MainWindow.html",
|
|
"title": "Class MainWindow | EchoHub Documentation",
|
|
"summary": "Class MainWindow Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Main Terminal.Gui window for the EchoHub chat client. public sealed class MainWindow : Runnable, IDisposable, IRunnable Inheritance object View Runnable MainWindow Implements IDisposable IRunnable Inherited Members Runnable.SetApp(IApplication) Runnable.SetIsRunning(bool) Runnable.RequestStop() Runnable.RaiseIsRunningChanging(bool, bool) Runnable.RaiseIsRunningChangedEvent(bool) Runnable.SetIsModal(bool) Runnable.RaiseIsModalChangedEvent(bool) Runnable.Result Runnable.IsRunning Runnable.IsModal Runnable.StopRequested Runnable.IsRunningChanging Runnable.IsRunningChanged Runnable.IsModalChanged View.NewMouseEvent(Mouse) View.RaiseMouseEvent(Mouse) View.GetAdornmentsThickness() View.GetSupportedCommands() View.InvokeCommands(Command[], IInputBinding) View.InvokeCommand(Command, IInputBinding) View.InvokeCommand(Command, ICommandContext) View.InvokeCommand(Command) View.SetContentSize(Size?) View.GetContentSize() View.GetWidthRequiredForSubViews() View.GetHeightRequiredForSubViews() View.ContentToScreen(in Point) View.ScreenToContent(in Point) View.ViewportToScreen(in Rectangle) View.ViewportToScreen(in Point) View.ViewportToScreen() View.ScreenToViewport(in Point) View.GetViewportOffsetFromFrame() View.ScrollVertical(int) View.ScrollHorizontal(int) View.Dispose() View.ToString() View.ToDebugString() View.BeginInit() View.EndInit() View.OnEnabledChanged() View.VerifyViewsWereDisposed() View.SetCursorNeedsUpdate() View.GetCurrentAttribute() View.GetAttributeForRole(VisualRole) View.SetAttribute(Attribute) View.SetAttributeForRole(VisualRole) View.GetClip() View.SetClip(Region) View.SetClipToScreen() View.ExcludeFromClip(Rectangle) View.ExcludeFromClip(Region) View.AddViewportToClip() View.Draw(DrawContext) View.DrawAdornments() View.ClearViewport(DrawContext) View.DrawText(DrawContext) View.DrawSubViews(DrawContext) View.RenderLineCanvas(DrawContext) View.Move(int, int) View.AddRune(Rune) View.AddRune(char) View.AddRune(int, int, Rune) View.AddStr(string) View.AddStr(int, int, string) View.DrawHotString(string, Attribute, Attribute) View.DrawHotString(string, bool) View.FillRect(Rectangle, Color?) View.FillRect(Rectangle, Rune) View.GetScheme() View.SetScheme(Scheme) View.GetSubViews(bool, bool, bool) View.Add(View) View.Add(params View[]) View.Remove(View) View.RemoveAll() View.RemoveAll<TView>() View.IsInHierarchy(View, View, bool) View.MoveSubViewTowardsEnd(View) View.MoveSubViewToEnd(View) View.MoveSubViewTowardsStart(View) View.MoveSubViewToStart(View) View.AddKeyBindingsForHotKey(Key, Key, object) View.AssignHotKeysToSubViews() View.NewKeyDownEvent(Key) View.Contains(in Point) View.FrameToScreen() View.ScreenToFrame(in Point) View.Layout(Size) View.Layout() View.SetRelativeLayout(Size) View.SetNeedsLayout() View.GetContainerSize() View.GetViewsUnderLocation(in Point, ViewportSettingsFlags) View.AdvanceFocus(NavigationDirection, TabBehavior?) View.FocusDeepest(NavigationDirection, TabBehavior?) View.OnCanFocusChanged() View.ClearFocus() View.SetFocus() View.SetNeedsDraw() View.SetNeedsDraw(Rectangle) View.OnTextChanged() View.MouseBindings View.MouseHoldRepeat View.MousePositionTracking View.MouseState View.MouseHighlightStates View.Margin View.ShadowStyle View.Border View.BorderStyle View.Padding View.Arrangement View.ContentSizeTracksViewport View.ViewportSettings View.Viewport View.Data View.Id View.App View.IsInitialized View.Enabled View.Visible View.Title View.EnableDebugIDisposableAsserts View.WasDisposed View.DisposedCount View.Instances View.Cursor View.Diagnostics View.LineCanvas View.SuperViewRendersLineCanvas View.SchemeName View.HasScheme View.SubViews View.SuperView View.HotKey View.HotKeySpecifier View.AssignHotKeys View.UsedHotKeys View.KeyBindings View.HotKeyBindings View.Frame View.X View.Y View.Height View.Width View.NeedsLayout View.ValidatePosDim View.CanFocus View.Focused View.IsCurrentTop View.MostFocused View.HasFocus View.TabStop View.NeedsDraw View.HorizontalScrollBar View.VerticalScrollBar View.PreserveTrailingSpaces View.Text View.TextAlignment View.TextDirection View.TextFormatter View.VerticalTextAlignment View.MouseEnter View.MouseLeave View.MouseHoldRepeatChanging View.MouseHoldRepeatChanged View.MouseEvent View.MouseStateChanged View.BorderStyleChanged View.CommandNotBound View.Accepting View.Accepted View.Activating View.HandlingHotKey View.ContentSizeChanging View.ContentSizeChanged View.ViewportChanged View.Disposing View.Initialized View.EnabledChanged View.VisibleChanging View.VisibleChanged View.TitleChanging View.TitleChanged View.GettingAttributeForRole View.ClearingViewport View.ClearedViewport View.DrawingText View.DrewText View.DrawingContent View.DrawingSubViews View.DrawComplete View.SchemeNameChanging View.SchemeNameChanged View.GettingScheme View.SchemeChanging View.SchemeChanged View.SuperViewChanging View.SuperViewChanged View.SubViewAdded View.SubViewRemoved View.Removed View.HotKeyChanged View.KeyDown View.KeyDownNotHandled View.FrameChanged View.HeightChanging View.HeightChanged View.WidthChanging View.WidthChanged View.SubViewLayout View.SubViewsLaidOut View.AdvancingFocus View.CanFocusChanged View.FocusedChanged View.HasFocusChanging View.HasFocusChanged View.TextChanged object.GetType() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors MainWindow(IApplication) public MainWindow(IApplication app) Parameters app IApplication Properties CurrentChannel Get the current channel name. public string CurrentChannel { get; } Property Value string Methods AddMessage(MessageDto) Add a message to the specified channel's message list and refresh if it is the current channel. Tracks unread count for non-active channels. public void AddMessage(MessageDto message) Parameters message MessageDto AddStatusMessage(string, string, string) Add a status change message to a channel with colored styling. public void AddStatusMessage(string channelName, string username, string status) Parameters channelName string username string status string AddSystemMessage(string, string) Add a system/informational message to a channel with colored styling. public void AddSystemMessage(string channelName, string text) Parameters channelName string text string ApplyColorSchemes() Applies the currently registered color schemes to all views. Call after theme changes to refresh colors. public void ApplyColorSchemes() ClearAll() Clear all messages and channels (used on disconnect). public void ClearAll() ClearChannelMessages(string) Clear all messages from a specific channel. public void ClearChannelMessages(string channelName) Parameters channelName string EnsureChannelInList(string, bool?) Ensure a channel exists in the left panel list (used for private channels joined via /join). public void EnsureChannelInList(string channelName, bool? isPublic = null) Parameters channelName string isPublic bool? FocusInput() Focus the input field for typing. public void FocusInput() GetChannelNames() Get all channel names that have message buffers (for broadcasting status changes). public IReadOnlyList<string> GetChannelNames() Returns IReadOnlyList<string> LoadHistory(string, List<MessageDto>) Load historical messages into a channel, replacing any existing messages. public void LoadHistory(string channelName, List<MessageDto> messages) Parameters channelName string messages List<MessageDto> RefreshMenuBar() Rebuilds and replaces the menu bar (e.g., after theme list changes). public void RefreshMenuBar() RemoveChannel(string) Remove a channel from the left panel list. public void RemoveChannel(string channelName) Parameters channelName string RemoveMessage(string, Guid) Remove all lines associated with a specific message ID. public void RemoveMessage(string channelName, Guid messageId) Parameters channelName string messageId Guid SetChannelTopic(string, string?) Update the topic for a specific channel. public void SetChannelTopic(string channelName, string? topic) Parameters channelName string topic string SetChannels(List<ChannelDto>) Set the list of available channels, storing topics, and refresh the channel list view. public void SetChannels(List<ChannelDto> channels) Parameters channels List<ChannelDto> SetCurrentUser(string) Set the current user name for display in the status bar. public void SetCurrentUser(string username) Parameters username string ShowError(string) Show an error message to the user. public void ShowError(string message) Parameters message string SwitchToChannel(string) Switch the chat view to the given channel, resetting its unread count and updating the topic bar. public void SwitchToChannel(string channelName) Parameters channelName string ToggleUsersPanel() Toggle the online users panel visibility (F2). public void ToggleUsersPanel() UpdateOnlineUsers(List<UserPresenceDto>) Update the online users list display. public void UpdateOnlineUsers(List<UserPresenceDto> users) Parameters users List<UserPresenceDto> UpdateStatusBar(string) Update the connection status displayed in the status bar. public void UpdateStatusBar(string status) Parameters status string Events OnAudioPlayRequested Fired when the user activates (Enter/click) an audio message. Parameters: attachmentUrl, fileName. public event Action<string, string>? OnAudioPlayRequested Event Type Action<string, string> OnChannelSelected Fired when the user selects a channel. Parameter is the channel name. public event Action<string>? OnChannelSelected Event Type Action<string> OnConnectRequested Fired when the user requests to connect via the menu. public event Action? OnConnectRequested Event Type Action OnCreateChannelRequested Fired when the user requests to create a new channel. public event Action? OnCreateChannelRequested Event Type Action OnDeleteChannelRequested Fired when the user requests to delete the current channel. public event Action? OnDeleteChannelRequested Event Type Action OnDisconnectRequested Fired when the user requests to disconnect via the menu. public event Action? OnDisconnectRequested Event Type Action OnFileDownloadRequested Fired when the user activates (Enter/click) a file message. Parameters: attachmentUrl, fileName. public event Action<string, string>? OnFileDownloadRequested Event Type Action<string, string> OnLogoutRequested Fired when the user requests to logout (disconnect + revoke session). public event Action? OnLogoutRequested Event Type Action OnMessageSubmitted Fired when the user presses Enter in the input field. Parameters: channel name, message content. public event Action<string, string>? OnMessageSubmitted Event Type Action<string, string> OnProfileRequested Fired when the user requests to open their profile panel. public event Action? OnProfileRequested Event Type Action OnSavedServersRequested Fired when the user requests to view saved servers. public event Action? OnSavedServersRequested Event Type Action OnStatusRequested Fired when the user requests to set their status. public event Action? OnStatusRequested Event Type Action OnThemeSelected Fired when the user selects a theme from the menu. Parameter is the theme name. public event Action<string>? OnThemeSelected Event Type Action<string>"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ProfileAction.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ProfileAction.html",
|
|
"title": "Enum ProfileAction | EchoHub Documentation",
|
|
"summary": "Enum ProfileAction Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Action selected by the user in their own profile dialog. public enum ProfileAction Fields Close = 0 EditProfile = 1 SetStatus = 2"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ProfileEditDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ProfileEditDialog.html",
|
|
"title": "Class ProfileEditDialog | EchoHub Documentation",
|
|
"summary": "Class ProfileEditDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll A Terminal.Gui dialog for editing the user's profile (display name, bio, nickname color). public sealed class ProfileEditDialog Inheritance object ProfileEditDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ProfileEditDialog() public ProfileEditDialog() Methods Show(IApplication, string?, string?, string?, bool, byte) Shows the profile edit dialog and returns the result, or null if cancelled. public static ProfileEditResult? Show(IApplication app, string? currentDisplayName, string? currentBio, string? currentColor, bool notificationSoundEnabled = false, byte notificationVolume = 30) Parameters app IApplication currentDisplayName string currentBio string currentColor string notificationSoundEnabled bool notificationVolume byte Returns ProfileEditResult"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ProfileEditResult.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ProfileEditResult.html",
|
|
"title": "Class ProfileEditResult | EchoHub Documentation",
|
|
"summary": "Class ProfileEditResult Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Result returned from the profile edit dialog. public record ProfileEditResult : IEquatable<ProfileEditResult> Inheritance object ProfileEditResult Implements IEquatable<ProfileEditResult> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ProfileEditResult(ProfileEditResult) protected ProfileEditResult(ProfileEditResult original) Parameters original ProfileEditResult ProfileEditResult(string?, string?, string?, string?, bool?, byte?) Result returned from the profile edit dialog. public ProfileEditResult(string? DisplayName, string? Bio, string? NicknameColor, string? AvatarPath, bool? NotificationSoundEnabled, byte? NotificationVolume) Parameters DisplayName string Bio string NicknameColor string AvatarPath string NotificationSoundEnabled bool? NotificationVolume byte? Properties AvatarPath public string? AvatarPath { get; init; } Property Value string Bio public string? Bio { get; init; } Property Value string DisplayName public string? DisplayName { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type NicknameColor public string? NicknameColor { get; init; } Property Value string NotificationSoundEnabled public bool? NotificationSoundEnabled { get; init; } Property Value bool? NotificationVolume public byte? NotificationVolume { get; init; } Property Value byte? Methods Deconstruct(out string?, out string?, out string?, out string?, out bool?, out byte?) public void Deconstruct(out string? DisplayName, out string? Bio, out string? NicknameColor, out string? AvatarPath, out bool? NotificationSoundEnabled, out byte? NotificationVolume) Parameters DisplayName string Bio string NicknameColor string AvatarPath string NotificationSoundEnabled bool? NotificationVolume byte? Equals(ProfileEditResult?) public virtual bool Equals(ProfileEditResult? other) Parameters other ProfileEditResult Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ProfileEditResult?, ProfileEditResult?) public static bool operator ==(ProfileEditResult? left, ProfileEditResult? right) Parameters left ProfileEditResult right ProfileEditResult Returns bool operator !=(ProfileEditResult?, ProfileEditResult?) public static bool operator !=(ProfileEditResult? left, ProfileEditResult? right) Parameters left ProfileEditResult right ProfileEditResult Returns bool"
|
|
},
|
|
"api/client/EchoHub.Client.UI.ProfileViewDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.ProfileViewDialog.html",
|
|
"title": "Class ProfileViewDialog | EchoHub Documentation",
|
|
"summary": "Class ProfileViewDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Dialog for viewing a user's server profile. Shows Edit Profile / Set Status buttons when viewing own profile. public sealed class ProfileViewDialog Inheritance object ProfileViewDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ProfileViewDialog() public ProfileViewDialog() Methods Show(IApplication, UserProfileDto?) Show a read-only profile view for another user. public static void Show(IApplication app, UserProfileDto? profile) Parameters app IApplication profile UserProfileDto ShowOwn(IApplication, UserProfileDto?, UserStatus, string?) Show the profile view for the current user with action buttons. Returns the action the user selected. public static ProfileAction ShowOwn(IApplication app, UserProfileDto? profile, UserStatus currentStatus, string? currentStatusMessage) Parameters app IApplication profile UserProfileDto currentStatus UserStatus currentStatusMessage string Returns ProfileAction"
|
|
},
|
|
"api/client/EchoHub.Client.UI.StatusDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.StatusDialog.html",
|
|
"title": "Class StatusDialog | EchoHub Documentation",
|
|
"summary": "Class StatusDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll A Terminal.Gui dialog for setting the user's status and status message. public sealed class StatusDialog Inheritance object StatusDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors StatusDialog() public StatusDialog() Methods Show(IApplication, UserStatus, string?) Shows the status dialog and returns the result, or null if cancelled. public static StatusDialogResult? Show(IApplication app, UserStatus currentStatus, string? currentMessage) Parameters app IApplication currentStatus UserStatus currentMessage string Returns StatusDialogResult"
|
|
},
|
|
"api/client/EchoHub.Client.UI.StatusDialogResult.html": {
|
|
"href": "api/client/EchoHub.Client.UI.StatusDialogResult.html",
|
|
"title": "Class StatusDialogResult | EchoHub Documentation",
|
|
"summary": "Class StatusDialogResult Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Result returned from the status dialog. public record StatusDialogResult : IEquatable<StatusDialogResult> Inheritance object StatusDialogResult Implements IEquatable<StatusDialogResult> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors StatusDialogResult(StatusDialogResult) protected StatusDialogResult(StatusDialogResult original) Parameters original StatusDialogResult StatusDialogResult(UserStatus, string?) Result returned from the status dialog. public StatusDialogResult(UserStatus Status, string? StatusMessage) Parameters Status UserStatus StatusMessage string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Status public UserStatus Status { get; init; } Property Value UserStatus StatusMessage public string? StatusMessage { get; init; } Property Value string Methods Deconstruct(out UserStatus, out string?) public void Deconstruct(out UserStatus Status, out string? StatusMessage) Parameters Status UserStatus StatusMessage string Equals(StatusDialogResult?) public virtual bool Equals(StatusDialogResult? other) Parameters other StatusDialogResult Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(StatusDialogResult?, StatusDialogResult?) public static bool operator ==(StatusDialogResult? left, StatusDialogResult? right) Parameters left StatusDialogResult right StatusDialogResult Returns bool operator !=(StatusDialogResult?, StatusDialogResult?) public static bool operator !=(StatusDialogResult? left, StatusDialogResult? right) Parameters left StatusDialogResult right StatusDialogResult Returns bool"
|
|
},
|
|
"api/client/EchoHub.Client.UI.UpdateConfirmDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.UpdateConfirmDialog.html",
|
|
"title": "Class UpdateConfirmDialog | EchoHub Documentation",
|
|
"summary": "Class UpdateConfirmDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll public sealed class UpdateConfirmDialog Inheritance object UpdateConfirmDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors UpdateConfirmDialog() public UpdateConfirmDialog() Methods Show(IApplication, string, string) public static bool Show(IApplication app, string currentVersion, string newVersion) Parameters app IApplication currentVersion string newVersion string Returns bool"
|
|
},
|
|
"api/client/EchoHub.Client.UI.UpdateProgressDialog.html": {
|
|
"href": "api/client/EchoHub.Client.UI.UpdateProgressDialog.html",
|
|
"title": "Class UpdateProgressDialog | EchoHub Documentation",
|
|
"summary": "Class UpdateProgressDialog Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll public sealed class UpdateProgressDialog Inheritance object UpdateProgressDialog Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors UpdateProgressDialog(IApplication, string) public UpdateProgressDialog(IApplication app, string newVersion) Parameters app IApplication newVersion string Methods Close() public void Close() Show() public void Show() UpdateProgress(float, string) public void UpdateProgress(float fraction, string statusText) Parameters fraction float statusText string"
|
|
},
|
|
"api/client/EchoHub.Client.UI.UserListSource.html": {
|
|
"href": "api/client/EchoHub.Client.UI.UserListSource.html",
|
|
"title": "Class UserListSource | EchoHub Documentation",
|
|
"summary": "Class UserListSource Namespace EchoHub.Client.UI Assembly EchoHub.Client.dll Custom list data source for the online users panel with per-user nickname colors. public class UserListSource : IListDataSource, IDisposable Inheritance object UserListSource Implements IListDataSource IDisposable Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors UserListSource() public UserListSource() Properties Count Gets the number of items in the data source. public int Count { get; } Property Value int MaxItemLength Gets the width in columns of the widest item in the data source. public int MaxItemLength { get; } Property Value int Remarks ListView uses this value to set its horizontal content size for scrolling. SuspendCollectionChangedEvent Gets or sets whether the CollectionChanged event should be suppressed. public bool SuspendCollectionChangedEvent { get; set; } Property Value bool Remarks Set to true to prevent CollectionChanged from being raised during bulk operations. Set back to false to resume event notifications. Methods Dispose() public void Dispose() IsMarked(int) Determines whether the specified item is marked. public bool IsMarked(int item) Parameters item int The zero-based index of the item. Returns bool true if the item is marked; otherwise false. Remarks ListView calls this method to determine whether to render the item with a mark indicator when ShowMarks is true. Render(ListView, bool, int, int, int, int, int) Renders the specified item to the ListView. public void Render(ListView listView, bool selected, int item, int col, int row, int width, int viewportX = 0) Parameters listView ListView The ListView to render to. selected bool true if the item is currently selected; otherwise false. item int The zero-based index of the item to render. col int The column in listView Viewport where rendering starts. row int The row in listView Viewport where rendering starts. width int The width available for rendering. viewportX int The horizontal scroll offset. Remarks ListView calls this method for each visible item during rendering. The color scheme will be set based on selection state before this method is called. Implementations must fill the entire width to avoid rendering artifacts. SetMark(int, bool) Sets the marked state of the specified item. public void SetMark(int item, bool value) Parameters item int The zero-based index of the item. value bool true to mark the item; false to unmark it. Remarks ListView calls this method when the user toggles marking (e.g., via the SPACE key) if ShowMarks is true. ToList() Returns the underlying data source as an System.Collections.IList. public IList ToList() Returns IList The data source as an System.Collections.IList. Remarks ListView uses this method to access individual items for events like ValueChanged and to enable keyboard search via KeystrokeNavigator. Update(List<(string Text, Attribute? NameColor)>) public void Update(List<(string Text, Attribute? NameColor)> users) Parameters users List<(string Text, Attribute? NameColor)> Events CollectionChanged Raised when items are added, removed, moved, or the entire collection is refreshed. public event NotifyCollectionChangedEventHandler? CollectionChanged Event Type NotifyCollectionChangedEventHandler Remarks ListView subscribes to this event to update its display and content size when the data changes. Implementations should raise this event whenever the underlying collection changes, unless SuspendCollectionChangedEvent is true."
|
|
},
|
|
"api/client/EchoHub.Client.UI.html": {
|
|
"href": "api/client/EchoHub.Client.UI.html",
|
|
"title": "Namespace EchoHub.Client.UI | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Client.UI Classes AudioPlayerDialog ChannelListSource Custom list data source for colored channel list rendering. Active channel gets a > indicator, unread channels are bright with a count badge. ChatColors Shared color attributes for chat rendering (timestamps, system messages). ChatLine A single line in the chat, composed of colored segments. ChatListSource Custom list data source for chat messages with per-segment coloring. ChatSegment A colored text segment within a chat line. ColorHelper Helper to parse hex colors to Terminal.Gui Attributes. ConnectDialog A Terminal.Gui dialog for entering server connection and authentication details. Includes a saved servers selector when saved servers are available. ConnectDialogResult Result returned from the connect dialog. CreateChannelDialog CreateChannelResult EmojiHelper Converts emoji grapheme clusters to text shortcodes for safe TUI rendering. Terminal width calculations for emoji are unreliable across different terminals, so we replace them with fixed-width ASCII shortcodes for display only. MainWindow Main Terminal.Gui window for the EchoHub chat client. ProfileEditDialog A Terminal.Gui dialog for editing the user's profile (display name, bio, nickname color). ProfileEditResult Result returned from the profile edit dialog. ProfileViewDialog Dialog for viewing a user's server profile. Shows Edit Profile / Set Status buttons when viewing own profile. StatusDialog A Terminal.Gui dialog for setting the user's status and status message. StatusDialogResult Result returned from the status dialog. UpdateConfirmDialog UpdateProgressDialog UserListSource Custom list data source for the online users panel with per-user nickname colors. Enums ProfileAction Action selected by the user in their own profile dialog."
|
|
},
|
|
"api/client/EchoHub.Client.html": {
|
|
"href": "api/client/EchoHub.Client.html",
|
|
"title": "Namespace EchoHub.Client | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Client Classes AppOrchestrator Central orchestrator for the EchoHub TUI client. Owns session state and wires UI events to service calls. AsyncRunner Eliminates repeated Task.Run/try/catch/app.Invoke(ShowError) boilerplate. Runs async work on a background thread and routes exceptions to the UI."
|
|
},
|
|
"api/core-articles/index.html": {
|
|
"href": "api/core-articles/index.html",
|
|
"title": "Core Articles | EchoHub Documentation",
|
|
"summary": "Core Articles Articles related to the EchoHub.Core shared library. Topics Data models and DTOs Contract interfaces (IChatService, IChannelService, IChatBroadcaster, IEchoHubClient) Validation constants and shared rules"
|
|
},
|
|
"api/core/EchoHub.Core.Constants.HubConstants.html": {
|
|
"href": "api/core/EchoHub.Core.Constants.HubConstants.html",
|
|
"title": "Class HubConstants | EchoHub Documentation",
|
|
"summary": "Class HubConstants Namespace EchoHub.Core.Constants Assembly EchoHub.Core.dll public static class HubConstants Inheritance object HubConstants Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Fields AsciiArtHeight public const int AsciiArtHeight = 40 Field Value int AsciiArtHeightHalfBlock public const int AsciiArtHeightHalfBlock = 80 Field Value int AsciiArtWidth public const int AsciiArtWidth = 80 Field Value int ChatHubPath public const string ChatHubPath = \"/hubs/chat\" Field Value string DefaultChannel public const string DefaultChannel = \"general\" Field Value string DefaultHistoryCount public const int DefaultHistoryCount = 100 Field Value int EmbedFetchTimeoutSeconds public const int EmbedFetchTimeoutSeconds = 5 Field Value int EmbedMaxDescriptionLength public const int EmbedMaxDescriptionLength = 500 Field Value int EmbedMaxHtmlBytes public const int EmbedMaxHtmlBytes = 65536 Field Value int EmbedMaxUrlsPerMessage public const int EmbedMaxUrlsPerMessage = 3 Field Value int MaxAudioFileSizeBytes public const int MaxAudioFileSizeBytes = 10485760 Field Value int MaxAvatarSizeBytes public const int MaxAvatarSizeBytes = 2097152 Field Value int MaxConsecutiveNewlines public const int MaxConsecutiveNewlines = 1 Field Value int MaxFileSizeBytes public const int MaxFileSizeBytes = 104857600 Field Value int MaxImageSizeBytes public const int MaxImageSizeBytes = 10485760 Field Value int MaxMessageLength public const int MaxMessageLength = 2000 Field Value int MaxMessageNewlines public const int MaxMessageNewlines = 30 Field Value int"
|
|
},
|
|
"api/core/EchoHub.Core.Constants.ValidationConstants.html": {
|
|
"href": "api/core/EchoHub.Core.Constants.ValidationConstants.html",
|
|
"title": "Class ValidationConstants | EchoHub Documentation",
|
|
"summary": "Class ValidationConstants Namespace EchoHub.Core.Constants Assembly EchoHub.Core.dll public static class ValidationConstants Inheritance object ValidationConstants Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Fields ChannelNamePattern public const string ChannelNamePattern = \"^[a-zA-Z0-9_-]{2,100}$\" Field Value string HexColorPattern public const string HexColorPattern = \"^#[0-9a-fA-F]{6}$\" Field Value string MaxBioLength public const int MaxBioLength = 500 Field Value int MaxChannelTopicLength public const int MaxChannelTopicLength = 500 Field Value int MaxDisplayNameLength public const int MaxDisplayNameLength = 100 Field Value int MaxHistoryCount public const int MaxHistoryCount = 100 Field Value int MaxPasswordLength public const int MaxPasswordLength = 128 Field Value int MaxStatusMessageLength public const int MaxStatusMessageLength = 100 Field Value int UsernamePattern public const string UsernamePattern = \"^[a-zA-Z0-9_-]{3,50}$\" Field Value string Methods ChannelNameRegex() [GeneratedRegex(\"^[a-zA-Z0-9_-]{2,100}$\")] public static Regex ChannelNameRegex() Returns Regex Remarks Pattern: ^[a-zA-Z0-9_-]{2,100}$ Explanation: ○ Match if at the beginning of the string. ○ Match a character in the set [\\-0-9A-Z_a-z] atomically at least 2 and at most 100 times. ○ Match if at the end of the string or if before an ending newline. HexColorRegex() [GeneratedRegex(\"^#[0-9a-fA-F]{6}$\")] public static Regex HexColorRegex() Returns Regex Remarks Pattern: ^#[0-9a-fA-F]{6}$ Explanation: ○ Match if at the beginning of the string. ○ Match '#'. ○ Match a hexadecimal digit exactly 6 times. ○ Match if at the end of the string or if before an ending newline. UsernameRegex() [GeneratedRegex(\"^[a-zA-Z0-9_-]{3,50}$\")] public static Regex UsernameRegex() Returns Regex Remarks Pattern: ^[a-zA-Z0-9_-]{3,50}$ Explanation: ○ Match if at the beginning of the string. ○ Match a character in the set [\\-0-9A-Z_a-z] atomically at least 3 and at most 50 times. ○ Match if at the end of the string or if before an ending newline."
|
|
},
|
|
"api/core/EchoHub.Core.Constants.html": {
|
|
"href": "api/core/EchoHub.Core.Constants.html",
|
|
"title": "Namespace EchoHub.Core.Constants | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Core.Constants Classes HubConstants ValidationConstants"
|
|
},
|
|
"api/core/EchoHub.Core.Contracts.ChannelListItem.html": {
|
|
"href": "api/core/EchoHub.Core.Contracts.ChannelListItem.html",
|
|
"title": "Class ChannelListItem | EchoHub Documentation",
|
|
"summary": "Class ChannelListItem Namespace EchoHub.Core.Contracts Assembly EchoHub.Core.dll public record ChannelListItem : IEquatable<ChannelListItem> Inheritance object ChannelListItem Implements IEquatable<ChannelListItem> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ChannelListItem(ChannelListItem) protected ChannelListItem(ChannelListItem original) Parameters original ChannelListItem ChannelListItem(string, string?, int) public ChannelListItem(string Name, string? Topic, int OnlineCount) Parameters Name string Topic string OnlineCount int Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Name public string Name { get; init; } Property Value string OnlineCount public int OnlineCount { get; init; } Property Value int Topic public string? Topic { get; init; } Property Value string Methods Deconstruct(out string, out string?, out int) public void Deconstruct(out string Name, out string? Topic, out int OnlineCount) Parameters Name string Topic string OnlineCount int Equals(ChannelListItem?) public virtual bool Equals(ChannelListItem? other) Parameters other ChannelListItem Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ChannelListItem?, ChannelListItem?) public static bool operator ==(ChannelListItem? left, ChannelListItem? right) Parameters left ChannelListItem right ChannelListItem Returns bool operator !=(ChannelListItem?, ChannelListItem?) public static bool operator !=(ChannelListItem? left, ChannelListItem? right) Parameters left ChannelListItem right ChannelListItem Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.Contracts.IChannelService.html": {
|
|
"href": "api/core/EchoHub.Core.Contracts.IChannelService.html",
|
|
"title": "Interface IChannelService | EchoHub Documentation",
|
|
"summary": "Interface IChannelService Namespace EchoHub.Core.Contracts Assembly EchoHub.Core.dll public interface IChannelService Methods CreateChannelAsync(Guid, string, string?, bool) Task<ChannelOperationResult> CreateChannelAsync(Guid creatorUserId, string name, string? topic, bool isPublic) Parameters creatorUserId Guid name string topic string isPublic bool Returns Task<ChannelOperationResult> DeleteChannelAsync(Guid, string) Task<ChannelOperationResult> DeleteChannelAsync(Guid callerUserId, string channelName) Parameters callerUserId Guid channelName string Returns Task<ChannelOperationResult> EnsureChannelMembershipAsync(Guid, string) Task<(bool Success, string? Error)> EnsureChannelMembershipAsync(Guid userId, string channelName) Parameters userId Guid channelName string Returns Task<(bool Success, string Error)> GetChannelByNameAsync(string) Task<ChannelDto?> GetChannelByNameAsync(string channelName) Parameters channelName string Returns Task<ChannelDto> GetChannelListAsync() Task<List<ChannelListItem>> GetChannelListAsync() Returns Task<List<ChannelListItem>> GetChannelTopicAsync(string) Task<(string? Topic, bool Exists)> GetChannelTopicAsync(string channelName) Parameters channelName string Returns Task<(string Topic, bool Exists)> GetChannelsAsync(Guid, int, int) Task<PaginatedResponse<ChannelDto>> GetChannelsAsync(Guid userId, int offset, int limit) Parameters userId Guid offset int limit int Returns Task<PaginatedResponse<ChannelDto>> UpdateTopicAsync(Guid, string, string?) Task<ChannelOperationResult> UpdateTopicAsync(Guid callerUserId, string channelName, string? topic) Parameters callerUserId Guid channelName string topic string Returns Task<ChannelOperationResult>"
|
|
},
|
|
"api/core/EchoHub.Core.Contracts.IChatBroadcaster.html": {
|
|
"href": "api/core/EchoHub.Core.Contracts.IChatBroadcaster.html",
|
|
"title": "Interface IChatBroadcaster | EchoHub Documentation",
|
|
"summary": "Interface IChatBroadcaster Namespace EchoHub.Core.Contracts Assembly EchoHub.Core.dll public interface IChatBroadcaster Methods ForceDisconnectUserAsync(List<string>, string) Task ForceDisconnectUserAsync(List<string> connectionIds, string reason) Parameters connectionIds List<string> reason string Returns Task SendChannelNukedAsync(string) Task SendChannelNukedAsync(string channelName) Parameters channelName string Returns Task SendChannelUpdatedAsync(ChannelDto, string?) Task SendChannelUpdatedAsync(ChannelDto channel, string? channelName = null) Parameters channel ChannelDto channelName string Returns Task SendErrorAsync(string, string) Task SendErrorAsync(string connectionId, string message) Parameters connectionId string message string Returns Task SendMessageDeletedAsync(string, Guid) Task SendMessageDeletedAsync(string channelName, Guid messageId) Parameters channelName string messageId Guid Returns Task SendMessageToChannelAsync(string, MessageDto) Task SendMessageToChannelAsync(string channelName, MessageDto message) Parameters channelName string message MessageDto Returns Task SendUserBannedAsync(string, string?) Task SendUserBannedAsync(string username, string? reason) Parameters username string reason string Returns Task SendUserJoinedAsync(string, string, string?) Task SendUserJoinedAsync(string channelName, string username, string? excludeConnectionId = null) Parameters channelName string username string excludeConnectionId string Returns Task SendUserKickedAsync(string, string, string?) Task SendUserKickedAsync(string channelName, string username, string? reason) Parameters channelName string username string reason string Returns Task SendUserLeftAsync(string, string) Task SendUserLeftAsync(string channelName, string username) Parameters channelName string username string Returns Task SendUserStatusChangedAsync(List<string>, UserPresenceDto) Task SendUserStatusChangedAsync(List<string> channelNames, UserPresenceDto presence) Parameters channelNames List<string> presence UserPresenceDto Returns Task"
|
|
},
|
|
"api/core/EchoHub.Core.Contracts.IChatService.html": {
|
|
"href": "api/core/EchoHub.Core.Contracts.IChatService.html",
|
|
"title": "Interface IChatService | EchoHub Documentation",
|
|
"summary": "Interface IChatService Namespace EchoHub.Core.Contracts Assembly EchoHub.Core.dll public interface IChatService Methods AuthenticateUserAsync(string, string) Task<(Guid UserId, string Username)?> AuthenticateUserAsync(string username, string password) Parameters username string password string Returns Task<(Guid UserId, string Username)?> BroadcastChannelUpdatedAsync(ChannelDto, string?) Task BroadcastChannelUpdatedAsync(ChannelDto channel, string? channelName = null) Parameters channel ChannelDto channelName string Returns Task BroadcastMessageAsync(string, MessageDto) Task BroadcastMessageAsync(string channelName, MessageDto message) Parameters channelName string message MessageDto Returns Task GetChannelHistoryAsync(string, int) Task<List<MessageDto>> GetChannelHistoryAsync(string channelName, int count) Parameters channelName string count int Returns Task<List<MessageDto>> GetChannelsForUserAsync(string) Task<List<string>> GetChannelsForUserAsync(string username) Parameters username string Returns Task<List<string>> GetOnlineUsersAsync(string) Task<List<UserPresenceDto>> GetOnlineUsersAsync(string channelName) Parameters channelName string Returns Task<List<UserPresenceDto>> GetUserProfileAsync(string) Task<UserProfileDto?> GetUserProfileAsync(string username) Parameters username string Returns Task<UserProfileDto> JoinChannelAsync(string, Guid, string, string) Task<(List<MessageDto> History, string? Error)> JoinChannelAsync(string connectionId, Guid userId, string username, string channelName) Parameters connectionId string userId Guid username string channelName string Returns Task<(List<MessageDto> History, string Error)> LeaveChannelAsync(string, string, string) Task LeaveChannelAsync(string connectionId, string username, string channelName) Parameters connectionId string username string channelName string Returns Task SendMessageAsync(Guid, string, string, string) Task<string?> SendMessageAsync(Guid userId, string username, string channelName, string content) Parameters userId Guid username string channelName string content string Returns Task<string> UpdateStatusAsync(Guid, string, UserStatus, string?) Task<string?> UpdateStatusAsync(Guid userId, string username, UserStatus status, string? statusMessage) Parameters userId Guid username string status UserStatus statusMessage string Returns Task<string> UserConnectedAsync(string, Guid, string) Task UserConnectedAsync(string connectionId, Guid userId, string username) Parameters connectionId string userId Guid username string Returns Task UserDisconnectedAsync(string) Task<string?> UserDisconnectedAsync(string connectionId) Parameters connectionId string Returns Task<string>"
|
|
},
|
|
"api/core/EchoHub.Core.Contracts.IEchoHubClient.html": {
|
|
"href": "api/core/EchoHub.Core.Contracts.IEchoHubClient.html",
|
|
"title": "Interface IEchoHubClient | EchoHub Documentation",
|
|
"summary": "Interface IEchoHubClient Namespace EchoHub.Core.Contracts Assembly EchoHub.Core.dll Methods the server can invoke on connected clients. public interface IEchoHubClient Methods ChannelNuked(string) Task ChannelNuked(string channelName) Parameters channelName string Returns Task ChannelUpdated(ChannelDto) Task ChannelUpdated(ChannelDto channel) Parameters channel ChannelDto Returns Task Error(string) Task Error(string message) Parameters message string Returns Task ForceDisconnect(string) Task ForceDisconnect(string reason) Parameters reason string Returns Task MessageDeleted(string, Guid) Task MessageDeleted(string channelName, Guid messageId) Parameters channelName string messageId Guid Returns Task ReceiveMessage(MessageDto) Task ReceiveMessage(MessageDto message) Parameters message MessageDto Returns Task UserBanned(string, string?) Task UserBanned(string username, string? reason) Parameters username string reason string Returns Task UserJoined(string, string) Task UserJoined(string channelName, string username) Parameters channelName string username string Returns Task UserKicked(string, string, string?) Task UserKicked(string channelName, string username, string? reason) Parameters channelName string username string reason string Returns Task UserLeft(string, string) Task UserLeft(string channelName, string username) Parameters channelName string username string Returns Task UserStatusChanged(UserPresenceDto) Task UserStatusChanged(UserPresenceDto presence) Parameters presence UserPresenceDto Returns Task"
|
|
},
|
|
"api/core/EchoHub.Core.Contracts.IMessageEncryptionService.html": {
|
|
"href": "api/core/EchoHub.Core.Contracts.IMessageEncryptionService.html",
|
|
"title": "Interface IMessageEncryptionService | EchoHub Documentation",
|
|
"summary": "Interface IMessageEncryptionService Namespace EchoHub.Core.Contracts Assembly EchoHub.Core.dll public interface IMessageEncryptionService Properties EncryptDatabaseEnabled Whether database content should be encrypted at rest (server setting). bool EncryptDatabaseEnabled { get; } Property Value bool Methods Decrypt(string) string Decrypt(string content) Parameters content string Returns string DecryptNullable(string?) string? DecryptNullable(string? value) Parameters value string Returns string Encrypt(string) string Encrypt(string plaintext) Parameters plaintext string Returns string EncryptNullable(string?) string? EncryptNullable(string? value) Parameters value string Returns string"
|
|
},
|
|
"api/core/EchoHub.Core.Contracts.html": {
|
|
"href": "api/core/EchoHub.Core.Contracts.html",
|
|
"title": "Namespace EchoHub.Core.Contracts | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Core.Contracts Classes ChannelListItem Interfaces IChannelService IChatBroadcaster IChatService IEchoHubClient Methods the server can invoke on connected clients. IMessageEncryptionService"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.ApiResponse-1.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.ApiResponse-1.html",
|
|
"title": "Class ApiResponse<T> | EchoHub Documentation",
|
|
"summary": "Class ApiResponse<T> Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record ApiResponse<T> : IEquatable<ApiResponse<T>> Type Parameters T Inheritance object ApiResponse<T> Implements IEquatable<ApiResponse<T>> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ApiResponse(ApiResponse<T>) protected ApiResponse(ApiResponse<T> original) Parameters original ApiResponse<T> ApiResponse(bool, string?, List<string>?, T?) public ApiResponse(bool Success, string? Message = null, List<string>? Errors = null, T? Data = default) Parameters Success bool Message string Errors List<string> Data T Properties Data public T? Data { get; init; } Property Value T EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Errors public List<string>? Errors { get; init; } Property Value List<string> Message public string? Message { get; init; } Property Value string Success public bool Success { get; init; } Property Value bool Methods Deconstruct(out bool, out string?, out List<string>?, out T?) public void Deconstruct(out bool Success, out string? Message, out List<string>? Errors, out T? Data) Parameters Success bool Message string Errors List<string> Data T Equals(ApiResponse<T>?) public virtual bool Equals(ApiResponse<T>? other) Parameters other ApiResponse<T> Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ApiResponse<T>?, ApiResponse<T>?) public static bool operator ==(ApiResponse<T>? left, ApiResponse<T>? right) Parameters left ApiResponse<T> right ApiResponse<T> Returns bool operator !=(ApiResponse<T>?, ApiResponse<T>?) public static bool operator !=(ApiResponse<T>? left, ApiResponse<T>? right) Parameters left ApiResponse<T> right ApiResponse<T> Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.ApiResponse.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.ApiResponse.html",
|
|
"title": "Class ApiResponse | EchoHub Documentation",
|
|
"summary": "Class ApiResponse Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record ApiResponse : IEquatable<ApiResponse> Inheritance object ApiResponse Implements IEquatable<ApiResponse> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ApiResponse(ApiResponse) protected ApiResponse(ApiResponse original) Parameters original ApiResponse ApiResponse(bool, string?, List<string>?) public ApiResponse(bool Success, string? Message = null, List<string>? Errors = null) Parameters Success bool Message string Errors List<string> Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Errors public List<string>? Errors { get; init; } Property Value List<string> Message public string? Message { get; init; } Property Value string Success public bool Success { get; init; } Property Value bool Methods Deconstruct(out bool, out string?, out List<string>?) public void Deconstruct(out bool Success, out string? Message, out List<string>? Errors) Parameters Success bool Message string Errors List<string> Equals(ApiResponse?) public virtual bool Equals(ApiResponse? other) Parameters other ApiResponse Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ApiResponse?, ApiResponse?) public static bool operator ==(ApiResponse? left, ApiResponse? right) Parameters left ApiResponse right ApiResponse Returns bool operator !=(ApiResponse?, ApiResponse?) public static bool operator !=(ApiResponse? left, ApiResponse? right) Parameters left ApiResponse right ApiResponse Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.AssignRoleRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.AssignRoleRequest.html",
|
|
"title": "Class AssignRoleRequest | EchoHub Documentation",
|
|
"summary": "Class AssignRoleRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record AssignRoleRequest : IEquatable<AssignRoleRequest> Inheritance object AssignRoleRequest Implements IEquatable<AssignRoleRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors AssignRoleRequest(AssignRoleRequest) protected AssignRoleRequest(AssignRoleRequest original) Parameters original AssignRoleRequest AssignRoleRequest(string, ServerRole) public AssignRoleRequest(string Username, ServerRole Role) Parameters Username string Role ServerRole Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Role public ServerRole Role { get; init; } Property Value ServerRole Username public string Username { get; init; } Property Value string Methods Deconstruct(out string, out ServerRole) public void Deconstruct(out string Username, out ServerRole Role) Parameters Username string Role ServerRole Equals(AssignRoleRequest?) public virtual bool Equals(AssignRoleRequest? other) Parameters other AssignRoleRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(AssignRoleRequest?, AssignRoleRequest?) public static bool operator ==(AssignRoleRequest? left, AssignRoleRequest? right) Parameters left AssignRoleRequest right AssignRoleRequest Returns bool operator !=(AssignRoleRequest?, AssignRoleRequest?) public static bool operator !=(AssignRoleRequest? left, AssignRoleRequest? right) Parameters left AssignRoleRequest right AssignRoleRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.AvatarUploadResponse.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.AvatarUploadResponse.html",
|
|
"title": "Class AvatarUploadResponse | EchoHub Documentation",
|
|
"summary": "Class AvatarUploadResponse Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record AvatarUploadResponse : IEquatable<AvatarUploadResponse> Inheritance object AvatarUploadResponse Implements IEquatable<AvatarUploadResponse> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors AvatarUploadResponse(AvatarUploadResponse) protected AvatarUploadResponse(AvatarUploadResponse original) Parameters original AvatarUploadResponse AvatarUploadResponse(string) public AvatarUploadResponse(string AvatarAscii) Parameters AvatarAscii string Properties AvatarAscii public string AvatarAscii { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Methods Deconstruct(out string) public void Deconstruct(out string AvatarAscii) Parameters AvatarAscii string Equals(AvatarUploadResponse?) public virtual bool Equals(AvatarUploadResponse? other) Parameters other AvatarUploadResponse Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(AvatarUploadResponse?, AvatarUploadResponse?) public static bool operator ==(AvatarUploadResponse? left, AvatarUploadResponse? right) Parameters left AvatarUploadResponse right AvatarUploadResponse Returns bool operator !=(AvatarUploadResponse?, AvatarUploadResponse?) public static bool operator !=(AvatarUploadResponse? left, AvatarUploadResponse? right) Parameters left AvatarUploadResponse right AvatarUploadResponse Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.BanRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.BanRequest.html",
|
|
"title": "Class BanRequest | EchoHub Documentation",
|
|
"summary": "Class BanRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record BanRequest : IEquatable<BanRequest> Inheritance object BanRequest Implements IEquatable<BanRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors BanRequest(BanRequest) protected BanRequest(BanRequest original) Parameters original BanRequest BanRequest(string?) public BanRequest(string? Reason = null) Parameters Reason string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Reason public string? Reason { get; init; } Property Value string Methods Deconstruct(out string?) public void Deconstruct(out string? Reason) Parameters Reason string Equals(BanRequest?) public virtual bool Equals(BanRequest? other) Parameters other BanRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(BanRequest?, BanRequest?) public static bool operator ==(BanRequest? left, BanRequest? right) Parameters left BanRequest right BanRequest Returns bool operator !=(BanRequest?, BanRequest?) public static bool operator !=(BanRequest? left, BanRequest? right) Parameters left BanRequest right BanRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.ChannelDto.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.ChannelDto.html",
|
|
"title": "Class ChannelDto | EchoHub Documentation",
|
|
"summary": "Class ChannelDto Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record ChannelDto : IEquatable<ChannelDto> Inheritance object ChannelDto Implements IEquatable<ChannelDto> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ChannelDto(ChannelDto) protected ChannelDto(ChannelDto original) Parameters original ChannelDto ChannelDto(Guid, string, string?, bool, int, DateTimeOffset) public ChannelDto(Guid Id, string Name, string? Topic, bool IsPublic, int MessageCount, DateTimeOffset CreatedAt) Parameters Id Guid Name string Topic string IsPublic bool MessageCount int CreatedAt DateTimeOffset Properties CreatedAt public DateTimeOffset CreatedAt { get; init; } Property Value DateTimeOffset EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Id public Guid Id { get; init; } Property Value Guid IsPublic public bool IsPublic { get; init; } Property Value bool MessageCount public int MessageCount { get; init; } Property Value int Name public string Name { get; init; } Property Value string Topic public string? Topic { get; init; } Property Value string Methods Deconstruct(out Guid, out string, out string?, out bool, out int, out DateTimeOffset) public void Deconstruct(out Guid Id, out string Name, out string? Topic, out bool IsPublic, out int MessageCount, out DateTimeOffset CreatedAt) Parameters Id Guid Name string Topic string IsPublic bool MessageCount int CreatedAt DateTimeOffset Equals(ChannelDto?) public virtual bool Equals(ChannelDto? other) Parameters other ChannelDto Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ChannelDto?, ChannelDto?) public static bool operator ==(ChannelDto? left, ChannelDto? right) Parameters left ChannelDto right ChannelDto Returns bool operator !=(ChannelDto?, ChannelDto?) public static bool operator !=(ChannelDto? left, ChannelDto? right) Parameters left ChannelDto right ChannelDto Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.ChannelError.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.ChannelError.html",
|
|
"title": "Enum ChannelError | EchoHub Documentation",
|
|
"summary": "Enum ChannelError Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public enum ChannelError Fields AlreadyExists = 1 Forbidden = 3 NotFound = 2 Protected = 4 ValidationFailed = 0"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.ChannelOperationResult.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.ChannelOperationResult.html",
|
|
"title": "Class ChannelOperationResult | EchoHub Documentation",
|
|
"summary": "Class ChannelOperationResult Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record ChannelOperationResult : IEquatable<ChannelOperationResult> Inheritance object ChannelOperationResult Implements IEquatable<ChannelOperationResult> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ChannelOperationResult(ChannelDto?, ChannelError?, string?) public ChannelOperationResult(ChannelDto? Channel, ChannelError? Error, string? ErrorMessage) Parameters Channel ChannelDto Error ChannelError? ErrorMessage string ChannelOperationResult(ChannelOperationResult) protected ChannelOperationResult(ChannelOperationResult original) Parameters original ChannelOperationResult Properties Channel public ChannelDto? Channel { get; init; } Property Value ChannelDto EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Error public ChannelError? Error { get; init; } Property Value ChannelError? ErrorMessage public string? ErrorMessage { get; init; } Property Value string IsSuccess public bool IsSuccess { get; } Property Value bool Methods Deconstruct(out ChannelDto?, out ChannelError?, out string?) public void Deconstruct(out ChannelDto? Channel, out ChannelError? Error, out string? ErrorMessage) Parameters Channel ChannelDto Error ChannelError? ErrorMessage string Equals(ChannelOperationResult?) public virtual bool Equals(ChannelOperationResult? other) Parameters other ChannelOperationResult Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool Fail(ChannelError, string) public static ChannelOperationResult Fail(ChannelError error, string message) Parameters error ChannelError message string Returns ChannelOperationResult GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool Success(ChannelDto) public static ChannelOperationResult Success(ChannelDto channel) Parameters channel ChannelDto Returns ChannelOperationResult ToString() public override string ToString() Returns string Operators operator ==(ChannelOperationResult?, ChannelOperationResult?) public static bool operator ==(ChannelOperationResult? left, ChannelOperationResult? right) Parameters left ChannelOperationResult right ChannelOperationResult Returns bool operator !=(ChannelOperationResult?, ChannelOperationResult?) public static bool operator !=(ChannelOperationResult? left, ChannelOperationResult? right) Parameters left ChannelOperationResult right ChannelOperationResult Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.CreateChannelRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.CreateChannelRequest.html",
|
|
"title": "Class CreateChannelRequest | EchoHub Documentation",
|
|
"summary": "Class CreateChannelRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record CreateChannelRequest : IEquatable<CreateChannelRequest> Inheritance object CreateChannelRequest Implements IEquatable<CreateChannelRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors CreateChannelRequest(CreateChannelRequest) protected CreateChannelRequest(CreateChannelRequest original) Parameters original CreateChannelRequest CreateChannelRequest(string, string?, bool) public CreateChannelRequest(string Name, string? Topic = null, bool IsPublic = true) Parameters Name string Topic string IsPublic bool Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type IsPublic public bool IsPublic { get; init; } Property Value bool Name public string Name { get; init; } Property Value string Topic public string? Topic { get; init; } Property Value string Methods Deconstruct(out string, out string?, out bool) public void Deconstruct(out string Name, out string? Topic, out bool IsPublic) Parameters Name string Topic string IsPublic bool Equals(CreateChannelRequest?) public virtual bool Equals(CreateChannelRequest? other) Parameters other CreateChannelRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(CreateChannelRequest?, CreateChannelRequest?) public static bool operator ==(CreateChannelRequest? left, CreateChannelRequest? right) Parameters left CreateChannelRequest right CreateChannelRequest Returns bool operator !=(CreateChannelRequest?, CreateChannelRequest?) public static bool operator !=(CreateChannelRequest? left, CreateChannelRequest? right) Parameters left CreateChannelRequest right CreateChannelRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.EmbedDto.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.EmbedDto.html",
|
|
"title": "Class EmbedDto | EchoHub Documentation",
|
|
"summary": "Class EmbedDto Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record EmbedDto : IEquatable<EmbedDto> Inheritance object EmbedDto Implements IEquatable<EmbedDto> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors EmbedDto(EmbedDto) protected EmbedDto(EmbedDto original) Parameters original EmbedDto EmbedDto(string?, string?, string?, string?, string) public EmbedDto(string? SiteName, string? Title, string? Description, string? ImageAscii, string Url) Parameters SiteName string Title string Description string ImageAscii string Url string Properties Description public string? Description { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type ImageAscii public string? ImageAscii { get; init; } Property Value string SiteName public string? SiteName { get; init; } Property Value string Title public string? Title { get; init; } Property Value string Url public string Url { get; init; } Property Value string Methods Deconstruct(out string?, out string?, out string?, out string?, out string) public void Deconstruct(out string? SiteName, out string? Title, out string? Description, out string? ImageAscii, out string Url) Parameters SiteName string Title string Description string ImageAscii string Url string Equals(EmbedDto?) public virtual bool Equals(EmbedDto? other) Parameters other EmbedDto Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(EmbedDto?, EmbedDto?) public static bool operator ==(EmbedDto? left, EmbedDto? right) Parameters left EmbedDto right EmbedDto Returns bool operator !=(EmbedDto?, EmbedDto?) public static bool operator !=(EmbedDto? left, EmbedDto? right) Parameters left EmbedDto right EmbedDto Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.EncryptionKeyResponse.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.EncryptionKeyResponse.html",
|
|
"title": "Class EncryptionKeyResponse | EchoHub Documentation",
|
|
"summary": "Class EncryptionKeyResponse Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record EncryptionKeyResponse : IEquatable<EncryptionKeyResponse> Inheritance object EncryptionKeyResponse Implements IEquatable<EncryptionKeyResponse> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors EncryptionKeyResponse(EncryptionKeyResponse) protected EncryptionKeyResponse(EncryptionKeyResponse original) Parameters original EncryptionKeyResponse EncryptionKeyResponse(string) public EncryptionKeyResponse(string Key) Parameters Key string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Key public string Key { get; init; } Property Value string Methods Deconstruct(out string) public void Deconstruct(out string Key) Parameters Key string Equals(EncryptionKeyResponse?) public virtual bool Equals(EncryptionKeyResponse? other) Parameters other EncryptionKeyResponse Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(EncryptionKeyResponse?, EncryptionKeyResponse?) public static bool operator ==(EncryptionKeyResponse? left, EncryptionKeyResponse? right) Parameters left EncryptionKeyResponse right EncryptionKeyResponse Returns bool operator !=(EncryptionKeyResponse?, EncryptionKeyResponse?) public static bool operator !=(EncryptionKeyResponse? left, EncryptionKeyResponse? right) Parameters left EncryptionKeyResponse right EncryptionKeyResponse Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.ErrorResponse.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.ErrorResponse.html",
|
|
"title": "Class ErrorResponse | EchoHub Documentation",
|
|
"summary": "Class ErrorResponse Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record ErrorResponse : IEquatable<ErrorResponse> Inheritance object ErrorResponse Implements IEquatable<ErrorResponse> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ErrorResponse(ErrorResponse) protected ErrorResponse(ErrorResponse original) Parameters original ErrorResponse ErrorResponse(string, string?) public ErrorResponse(string Error, string? Detail = null) Parameters Error string Detail string Properties Detail public string? Detail { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Error public string Error { get; init; } Property Value string Methods Deconstruct(out string, out string?) public void Deconstruct(out string Error, out string? Detail) Parameters Error string Detail string Equals(ErrorResponse?) public virtual bool Equals(ErrorResponse? other) Parameters other ErrorResponse Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ErrorResponse?, ErrorResponse?) public static bool operator ==(ErrorResponse? left, ErrorResponse? right) Parameters left ErrorResponse right ErrorResponse Returns bool operator !=(ErrorResponse?, ErrorResponse?) public static bool operator !=(ErrorResponse? left, ErrorResponse? right) Parameters left ErrorResponse right ErrorResponse Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.KickRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.KickRequest.html",
|
|
"title": "Class KickRequest | EchoHub Documentation",
|
|
"summary": "Class KickRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record KickRequest : IEquatable<KickRequest> Inheritance object KickRequest Implements IEquatable<KickRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors KickRequest(KickRequest) protected KickRequest(KickRequest original) Parameters original KickRequest KickRequest(string?) public KickRequest(string? Reason = null) Parameters Reason string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Reason public string? Reason { get; init; } Property Value string Methods Deconstruct(out string?) public void Deconstruct(out string? Reason) Parameters Reason string Equals(KickRequest?) public virtual bool Equals(KickRequest? other) Parameters other KickRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(KickRequest?, KickRequest?) public static bool operator ==(KickRequest? left, KickRequest? right) Parameters left KickRequest right KickRequest Returns bool operator !=(KickRequest?, KickRequest?) public static bool operator !=(KickRequest? left, KickRequest? right) Parameters left KickRequest right KickRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.LoginRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.LoginRequest.html",
|
|
"title": "Class LoginRequest | EchoHub Documentation",
|
|
"summary": "Class LoginRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record LoginRequest : IEquatable<LoginRequest> Inheritance object LoginRequest Implements IEquatable<LoginRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors LoginRequest(LoginRequest) protected LoginRequest(LoginRequest original) Parameters original LoginRequest LoginRequest(string, string) public LoginRequest(string Username, string Password) Parameters Username string Password string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Password public string Password { get; init; } Property Value string Username public string Username { get; init; } Property Value string Methods Deconstruct(out string, out string) public void Deconstruct(out string Username, out string Password) Parameters Username string Password string Equals(LoginRequest?) public virtual bool Equals(LoginRequest? other) Parameters other LoginRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(LoginRequest?, LoginRequest?) public static bool operator ==(LoginRequest? left, LoginRequest? right) Parameters left LoginRequest right LoginRequest Returns bool operator !=(LoginRequest?, LoginRequest?) public static bool operator !=(LoginRequest? left, LoginRequest? right) Parameters left LoginRequest right LoginRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.LoginResponse.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.LoginResponse.html",
|
|
"title": "Class LoginResponse | EchoHub Documentation",
|
|
"summary": "Class LoginResponse Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record LoginResponse : IEquatable<LoginResponse> Inheritance object LoginResponse Implements IEquatable<LoginResponse> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors LoginResponse(LoginResponse) protected LoginResponse(LoginResponse original) Parameters original LoginResponse LoginResponse(string, string, DateTimeOffset, string, string?, string?) public LoginResponse(string Token, string RefreshToken, DateTimeOffset ExpiresAt, string Username, string? DisplayName, string? NicknameColor) Parameters Token string RefreshToken string ExpiresAt DateTimeOffset Username string DisplayName string NicknameColor string Properties DisplayName public string? DisplayName { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type ExpiresAt public DateTimeOffset ExpiresAt { get; init; } Property Value DateTimeOffset NicknameColor public string? NicknameColor { get; init; } Property Value string RefreshToken public string RefreshToken { get; init; } Property Value string Token public string Token { get; init; } Property Value string Username public string Username { get; init; } Property Value string Methods Deconstruct(out string, out string, out DateTimeOffset, out string, out string?, out string?) public void Deconstruct(out string Token, out string RefreshToken, out DateTimeOffset ExpiresAt, out string Username, out string? DisplayName, out string? NicknameColor) Parameters Token string RefreshToken string ExpiresAt DateTimeOffset Username string DisplayName string NicknameColor string Equals(LoginResponse?) public virtual bool Equals(LoginResponse? other) Parameters other LoginResponse Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(LoginResponse?, LoginResponse?) public static bool operator ==(LoginResponse? left, LoginResponse? right) Parameters left LoginResponse right LoginResponse Returns bool operator !=(LoginResponse?, LoginResponse?) public static bool operator !=(LoginResponse? left, LoginResponse? right) Parameters left LoginResponse right LoginResponse Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.MessageDto.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.MessageDto.html",
|
|
"title": "Class MessageDto | EchoHub Documentation",
|
|
"summary": "Class MessageDto Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record MessageDto : IEquatable<MessageDto> Inheritance object MessageDto Implements IEquatable<MessageDto> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors MessageDto(MessageDto) protected MessageDto(MessageDto original) Parameters original MessageDto MessageDto(Guid, string, string, string?, string, MessageType, string?, string?, DateTimeOffset, long?, List<EmbedDto>?) public MessageDto(Guid Id, string Content, string SenderUsername, string? SenderNicknameColor, string ChannelName, MessageType Type, string? AttachmentUrl, string? AttachmentFileName, DateTimeOffset SentAt, long? AttachmentFileSize = null, List<EmbedDto>? Embeds = null) Parameters Id Guid Content string SenderUsername string SenderNicknameColor string ChannelName string Type MessageType AttachmentUrl string AttachmentFileName string SentAt DateTimeOffset AttachmentFileSize long? Embeds List<EmbedDto> Properties AttachmentFileName public string? AttachmentFileName { get; init; } Property Value string AttachmentFileSize public long? AttachmentFileSize { get; init; } Property Value long? AttachmentUrl public string? AttachmentUrl { get; init; } Property Value string ChannelName public string ChannelName { get; init; } Property Value string Content public string Content { get; init; } Property Value string Embeds public List<EmbedDto>? Embeds { get; init; } Property Value List<EmbedDto> EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Id public Guid Id { get; init; } Property Value Guid SenderNicknameColor public string? SenderNicknameColor { get; init; } Property Value string SenderUsername public string SenderUsername { get; init; } Property Value string SentAt public DateTimeOffset SentAt { get; init; } Property Value DateTimeOffset Type public MessageType Type { get; init; } Property Value MessageType Methods Deconstruct(out Guid, out string, out string, out string?, out string, out MessageType, out string?, out string?, out DateTimeOffset, out long?, out List<EmbedDto>?) public void Deconstruct(out Guid Id, out string Content, out string SenderUsername, out string? SenderNicknameColor, out string ChannelName, out MessageType Type, out string? AttachmentUrl, out string? AttachmentFileName, out DateTimeOffset SentAt, out long? AttachmentFileSize, out List<EmbedDto>? Embeds) Parameters Id Guid Content string SenderUsername string SenderNicknameColor string ChannelName string Type MessageType AttachmentUrl string AttachmentFileName string SentAt DateTimeOffset AttachmentFileSize long? Embeds List<EmbedDto> Equals(MessageDto?) public virtual bool Equals(MessageDto? other) Parameters other MessageDto Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(MessageDto?, MessageDto?) public static bool operator ==(MessageDto? left, MessageDto? right) Parameters left MessageDto right MessageDto Returns bool operator !=(MessageDto?, MessageDto?) public static bool operator !=(MessageDto? left, MessageDto? right) Parameters left MessageDto right MessageDto Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.MuteRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.MuteRequest.html",
|
|
"title": "Class MuteRequest | EchoHub Documentation",
|
|
"summary": "Class MuteRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record MuteRequest : IEquatable<MuteRequest> Inheritance object MuteRequest Implements IEquatable<MuteRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors MuteRequest(MuteRequest) protected MuteRequest(MuteRequest original) Parameters original MuteRequest MuteRequest(string?, int?) public MuteRequest(string? Reason = null, int? DurationMinutes = null) Parameters Reason string DurationMinutes int? Properties DurationMinutes public int? DurationMinutes { get; init; } Property Value int? EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Reason public string? Reason { get; init; } Property Value string Methods Deconstruct(out string?, out int?) public void Deconstruct(out string? Reason, out int? DurationMinutes) Parameters Reason string DurationMinutes int? Equals(MuteRequest?) public virtual bool Equals(MuteRequest? other) Parameters other MuteRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(MuteRequest?, MuteRequest?) public static bool operator ==(MuteRequest? left, MuteRequest? right) Parameters left MuteRequest right MuteRequest Returns bool operator !=(MuteRequest?, MuteRequest?) public static bool operator !=(MuteRequest? left, MuteRequest? right) Parameters left MuteRequest right MuteRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.PaginatedResponse-1.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.PaginatedResponse-1.html",
|
|
"title": "Class PaginatedResponse<T> | EchoHub Documentation",
|
|
"summary": "Class PaginatedResponse<T> Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record PaginatedResponse<T> : IEquatable<PaginatedResponse<T>> Type Parameters T Inheritance object PaginatedResponse<T> Implements IEquatable<PaginatedResponse<T>> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors PaginatedResponse(PaginatedResponse<T>) protected PaginatedResponse(PaginatedResponse<T> original) Parameters original PaginatedResponse<T> PaginatedResponse(List<T>, int, int, int) public PaginatedResponse(List<T> Items, int Total, int Offset, int Limit) Parameters Items List<T> Total int Offset int Limit int Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Items public List<T> Items { get; init; } Property Value List<T> Limit public int Limit { get; init; } Property Value int Offset public int Offset { get; init; } Property Value int Total public int Total { get; init; } Property Value int Methods Deconstruct(out List<T>, out int, out int, out int) public void Deconstruct(out List<T> Items, out int Total, out int Offset, out int Limit) Parameters Items List<T> Total int Offset int Limit int Equals(PaginatedResponse<T>?) public virtual bool Equals(PaginatedResponse<T>? other) Parameters other PaginatedResponse<T> Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(PaginatedResponse<T>?, PaginatedResponse<T>?) public static bool operator ==(PaginatedResponse<T>? left, PaginatedResponse<T>? right) Parameters left PaginatedResponse<T> right PaginatedResponse<T> Returns bool operator !=(PaginatedResponse<T>?, PaginatedResponse<T>?) public static bool operator !=(PaginatedResponse<T>? left, PaginatedResponse<T>? right) Parameters left PaginatedResponse<T> right PaginatedResponse<T> Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.RefreshRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.RefreshRequest.html",
|
|
"title": "Class RefreshRequest | EchoHub Documentation",
|
|
"summary": "Class RefreshRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record RefreshRequest : IEquatable<RefreshRequest> Inheritance object RefreshRequest Implements IEquatable<RefreshRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors RefreshRequest(RefreshRequest) protected RefreshRequest(RefreshRequest original) Parameters original RefreshRequest RefreshRequest(string) public RefreshRequest(string RefreshToken) Parameters RefreshToken string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type RefreshToken public string RefreshToken { get; init; } Property Value string Methods Deconstruct(out string) public void Deconstruct(out string RefreshToken) Parameters RefreshToken string Equals(RefreshRequest?) public virtual bool Equals(RefreshRequest? other) Parameters other RefreshRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(RefreshRequest?, RefreshRequest?) public static bool operator ==(RefreshRequest? left, RefreshRequest? right) Parameters left RefreshRequest right RefreshRequest Returns bool operator !=(RefreshRequest?, RefreshRequest?) public static bool operator !=(RefreshRequest? left, RefreshRequest? right) Parameters left RefreshRequest right RefreshRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.RegisterRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.RegisterRequest.html",
|
|
"title": "Class RegisterRequest | EchoHub Documentation",
|
|
"summary": "Class RegisterRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record RegisterRequest : IEquatable<RegisterRequest> Inheritance object RegisterRequest Implements IEquatable<RegisterRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors RegisterRequest(RegisterRequest) protected RegisterRequest(RegisterRequest original) Parameters original RegisterRequest RegisterRequest(string, string, string?) public RegisterRequest(string Username, string Password, string? DisplayName = null) Parameters Username string Password string DisplayName string Properties DisplayName public string? DisplayName { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Password public string Password { get; init; } Property Value string Username public string Username { get; init; } Property Value string Methods Deconstruct(out string, out string, out string?) public void Deconstruct(out string Username, out string Password, out string? DisplayName) Parameters Username string Password string DisplayName string Equals(RegisterRequest?) public virtual bool Equals(RegisterRequest? other) Parameters other RegisterRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(RegisterRequest?, RegisterRequest?) public static bool operator ==(RegisterRequest? left, RegisterRequest? right) Parameters left RegisterRequest right RegisterRequest Returns bool operator !=(RegisterRequest?, RegisterRequest?) public static bool operator !=(RegisterRequest? left, RegisterRequest? right) Parameters left RegisterRequest right RegisterRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.SendMessageRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.SendMessageRequest.html",
|
|
"title": "Class SendMessageRequest | EchoHub Documentation",
|
|
"summary": "Class SendMessageRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record SendMessageRequest : IEquatable<SendMessageRequest> Inheritance object SendMessageRequest Implements IEquatable<SendMessageRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors SendMessageRequest(SendMessageRequest) protected SendMessageRequest(SendMessageRequest original) Parameters original SendMessageRequest SendMessageRequest(string, string) public SendMessageRequest(string ChannelName, string Content) Parameters ChannelName string Content string Properties ChannelName public string ChannelName { get; init; } Property Value string Content public string Content { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Methods Deconstruct(out string, out string) public void Deconstruct(out string ChannelName, out string Content) Parameters ChannelName string Content string Equals(SendMessageRequest?) public virtual bool Equals(SendMessageRequest? other) Parameters other SendMessageRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(SendMessageRequest?, SendMessageRequest?) public static bool operator ==(SendMessageRequest? left, SendMessageRequest? right) Parameters left SendMessageRequest right SendMessageRequest Returns bool operator !=(SendMessageRequest?, SendMessageRequest?) public static bool operator !=(SendMessageRequest? left, SendMessageRequest? right) Parameters left SendMessageRequest right SendMessageRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.SendUrlRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.SendUrlRequest.html",
|
|
"title": "Class SendUrlRequest | EchoHub Documentation",
|
|
"summary": "Class SendUrlRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record SendUrlRequest : IEquatable<SendUrlRequest> Inheritance object SendUrlRequest Implements IEquatable<SendUrlRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors SendUrlRequest(SendUrlRequest) protected SendUrlRequest(SendUrlRequest original) Parameters original SendUrlRequest SendUrlRequest(string) public SendUrlRequest(string Url) Parameters Url string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Url public string Url { get; init; } Property Value string Methods Deconstruct(out string) public void Deconstruct(out string Url) Parameters Url string Equals(SendUrlRequest?) public virtual bool Equals(SendUrlRequest? other) Parameters other SendUrlRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(SendUrlRequest?, SendUrlRequest?) public static bool operator ==(SendUrlRequest? left, SendUrlRequest? right) Parameters left SendUrlRequest right SendUrlRequest Returns bool operator !=(SendUrlRequest?, SendUrlRequest?) public static bool operator !=(SendUrlRequest? left, SendUrlRequest? right) Parameters left SendUrlRequest right SendUrlRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.ServerStatusDto.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.ServerStatusDto.html",
|
|
"title": "Class ServerStatusDto | EchoHub Documentation",
|
|
"summary": "Class ServerStatusDto Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record ServerStatusDto : IEquatable<ServerStatusDto> Inheritance object ServerStatusDto Implements IEquatable<ServerStatusDto> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors ServerStatusDto(ServerStatusDto) protected ServerStatusDto(ServerStatusDto original) Parameters original ServerStatusDto ServerStatusDto(string, string?, int, int) public ServerStatusDto(string Name, string? Description, int OnlineUsers, int TotalChannels) Parameters Name string Description string OnlineUsers int TotalChannels int Properties Description public string? Description { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Name public string Name { get; init; } Property Value string OnlineUsers public int OnlineUsers { get; init; } Property Value int TotalChannels public int TotalChannels { get; init; } Property Value int Methods Deconstruct(out string, out string?, out int, out int) public void Deconstruct(out string Name, out string? Description, out int OnlineUsers, out int TotalChannels) Parameters Name string Description string OnlineUsers int TotalChannels int Equals(ServerStatusDto?) public virtual bool Equals(ServerStatusDto? other) Parameters other ServerStatusDto Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(ServerStatusDto?, ServerStatusDto?) public static bool operator ==(ServerStatusDto? left, ServerStatusDto? right) Parameters left ServerStatusDto right ServerStatusDto Returns bool operator !=(ServerStatusDto?, ServerStatusDto?) public static bool operator !=(ServerStatusDto? left, ServerStatusDto? right) Parameters left ServerStatusDto right ServerStatusDto Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.UpdateProfileRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.UpdateProfileRequest.html",
|
|
"title": "Class UpdateProfileRequest | EchoHub Documentation",
|
|
"summary": "Class UpdateProfileRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record UpdateProfileRequest : IEquatable<UpdateProfileRequest> Inheritance object UpdateProfileRequest Implements IEquatable<UpdateProfileRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors UpdateProfileRequest(UpdateProfileRequest) protected UpdateProfileRequest(UpdateProfileRequest original) Parameters original UpdateProfileRequest UpdateProfileRequest(string?, string?, string?) public UpdateProfileRequest(string? DisplayName = null, string? Bio = null, string? NicknameColor = null) Parameters DisplayName string Bio string NicknameColor string Properties Bio public string? Bio { get; init; } Property Value string DisplayName public string? DisplayName { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type NicknameColor public string? NicknameColor { get; init; } Property Value string Methods Deconstruct(out string?, out string?, out string?) public void Deconstruct(out string? DisplayName, out string? Bio, out string? NicknameColor) Parameters DisplayName string Bio string NicknameColor string Equals(UpdateProfileRequest?) public virtual bool Equals(UpdateProfileRequest? other) Parameters other UpdateProfileRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(UpdateProfileRequest?, UpdateProfileRequest?) public static bool operator ==(UpdateProfileRequest? left, UpdateProfileRequest? right) Parameters left UpdateProfileRequest right UpdateProfileRequest Returns bool operator !=(UpdateProfileRequest?, UpdateProfileRequest?) public static bool operator !=(UpdateProfileRequest? left, UpdateProfileRequest? right) Parameters left UpdateProfileRequest right UpdateProfileRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.UpdateStatusRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.UpdateStatusRequest.html",
|
|
"title": "Class UpdateStatusRequest | EchoHub Documentation",
|
|
"summary": "Class UpdateStatusRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record UpdateStatusRequest : IEquatable<UpdateStatusRequest> Inheritance object UpdateStatusRequest Implements IEquatable<UpdateStatusRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors UpdateStatusRequest(UpdateStatusRequest) protected UpdateStatusRequest(UpdateStatusRequest original) Parameters original UpdateStatusRequest UpdateStatusRequest(UserStatus, string?) public UpdateStatusRequest(UserStatus Status, string? StatusMessage = null) Parameters Status UserStatus StatusMessage string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Status public UserStatus Status { get; init; } Property Value UserStatus StatusMessage public string? StatusMessage { get; init; } Property Value string Methods Deconstruct(out UserStatus, out string?) public void Deconstruct(out UserStatus Status, out string? StatusMessage) Parameters Status UserStatus StatusMessage string Equals(UpdateStatusRequest?) public virtual bool Equals(UpdateStatusRequest? other) Parameters other UpdateStatusRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(UpdateStatusRequest?, UpdateStatusRequest?) public static bool operator ==(UpdateStatusRequest? left, UpdateStatusRequest? right) Parameters left UpdateStatusRequest right UpdateStatusRequest Returns bool operator !=(UpdateStatusRequest?, UpdateStatusRequest?) public static bool operator !=(UpdateStatusRequest? left, UpdateStatusRequest? right) Parameters left UpdateStatusRequest right UpdateStatusRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.UpdateTopicRequest.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.UpdateTopicRequest.html",
|
|
"title": "Class UpdateTopicRequest | EchoHub Documentation",
|
|
"summary": "Class UpdateTopicRequest Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record UpdateTopicRequest : IEquatable<UpdateTopicRequest> Inheritance object UpdateTopicRequest Implements IEquatable<UpdateTopicRequest> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors UpdateTopicRequest(UpdateTopicRequest) protected UpdateTopicRequest(UpdateTopicRequest original) Parameters original UpdateTopicRequest UpdateTopicRequest(string?) public UpdateTopicRequest(string? Topic) Parameters Topic string Properties EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Topic public string? Topic { get; init; } Property Value string Methods Deconstruct(out string?) public void Deconstruct(out string? Topic) Parameters Topic string Equals(UpdateTopicRequest?) public virtual bool Equals(UpdateTopicRequest? other) Parameters other UpdateTopicRequest Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(UpdateTopicRequest?, UpdateTopicRequest?) public static bool operator ==(UpdateTopicRequest? left, UpdateTopicRequest? right) Parameters left UpdateTopicRequest right UpdateTopicRequest Returns bool operator !=(UpdateTopicRequest?, UpdateTopicRequest?) public static bool operator !=(UpdateTopicRequest? left, UpdateTopicRequest? right) Parameters left UpdateTopicRequest right UpdateTopicRequest Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.UserDto.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.UserDto.html",
|
|
"title": "Class UserDto | EchoHub Documentation",
|
|
"summary": "Class UserDto Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record UserDto : IEquatable<UserDto> Inheritance object UserDto Implements IEquatable<UserDto> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors UserDto(UserDto) protected UserDto(UserDto original) Parameters original UserDto UserDto(Guid, string, string?, string?, UserStatus, DateTimeOffset) public UserDto(Guid Id, string Username, string? DisplayName, string? NicknameColor, UserStatus Status, DateTimeOffset LastSeenAt) Parameters Id Guid Username string DisplayName string NicknameColor string Status UserStatus LastSeenAt DateTimeOffset Properties DisplayName public string? DisplayName { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Id public Guid Id { get; init; } Property Value Guid LastSeenAt public DateTimeOffset LastSeenAt { get; init; } Property Value DateTimeOffset NicknameColor public string? NicknameColor { get; init; } Property Value string Status public UserStatus Status { get; init; } Property Value UserStatus Username public string Username { get; init; } Property Value string Methods Deconstruct(out Guid, out string, out string?, out string?, out UserStatus, out DateTimeOffset) public void Deconstruct(out Guid Id, out string Username, out string? DisplayName, out string? NicknameColor, out UserStatus Status, out DateTimeOffset LastSeenAt) Parameters Id Guid Username string DisplayName string NicknameColor string Status UserStatus LastSeenAt DateTimeOffset Equals(UserDto?) public virtual bool Equals(UserDto? other) Parameters other UserDto Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(UserDto?, UserDto?) public static bool operator ==(UserDto? left, UserDto? right) Parameters left UserDto right UserDto Returns bool operator !=(UserDto?, UserDto?) public static bool operator !=(UserDto? left, UserDto? right) Parameters left UserDto right UserDto Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.UserPresenceDto.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.UserPresenceDto.html",
|
|
"title": "Class UserPresenceDto | EchoHub Documentation",
|
|
"summary": "Class UserPresenceDto Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record UserPresenceDto : IEquatable<UserPresenceDto> Inheritance object UserPresenceDto Implements IEquatable<UserPresenceDto> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors UserPresenceDto(UserPresenceDto) protected UserPresenceDto(UserPresenceDto original) Parameters original UserPresenceDto UserPresenceDto(string, string?, string?, UserStatus, string?, ServerRole) public UserPresenceDto(string Username, string? DisplayName, string? NicknameColor, UserStatus Status, string? StatusMessage, ServerRole Role) Parameters Username string DisplayName string NicknameColor string Status UserStatus StatusMessage string Role ServerRole Properties DisplayName public string? DisplayName { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type NicknameColor public string? NicknameColor { get; init; } Property Value string Role public ServerRole Role { get; init; } Property Value ServerRole Status public UserStatus Status { get; init; } Property Value UserStatus StatusMessage public string? StatusMessage { get; init; } Property Value string Username public string Username { get; init; } Property Value string Methods Deconstruct(out string, out string?, out string?, out UserStatus, out string?, out ServerRole) public void Deconstruct(out string Username, out string? DisplayName, out string? NicknameColor, out UserStatus Status, out string? StatusMessage, out ServerRole Role) Parameters Username string DisplayName string NicknameColor string Status UserStatus StatusMessage string Role ServerRole Equals(UserPresenceDto?) public virtual bool Equals(UserPresenceDto? other) Parameters other UserPresenceDto Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(UserPresenceDto?, UserPresenceDto?) public static bool operator ==(UserPresenceDto? left, UserPresenceDto? right) Parameters left UserPresenceDto right UserPresenceDto Returns bool operator !=(UserPresenceDto?, UserPresenceDto?) public static bool operator !=(UserPresenceDto? left, UserPresenceDto? right) Parameters left UserPresenceDto right UserPresenceDto Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.UserProfileDto.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.UserProfileDto.html",
|
|
"title": "Class UserProfileDto | EchoHub Documentation",
|
|
"summary": "Class UserProfileDto Namespace EchoHub.Core.DTOs Assembly EchoHub.Core.dll public record UserProfileDto : IEquatable<UserProfileDto> Inheritance object UserProfileDto Implements IEquatable<UserProfileDto> Inherited Members object.GetType() object.MemberwiseClone() object.Equals(object, object) object.ReferenceEquals(object, object) Constructors UserProfileDto(UserProfileDto) protected UserProfileDto(UserProfileDto original) Parameters original UserProfileDto UserProfileDto(Guid, string, string?, string?, string?, string?, UserStatus, string?, ServerRole, DateTimeOffset, DateTimeOffset) public UserProfileDto(Guid Id, string Username, string? DisplayName, string? Bio, string? NicknameColor, string? AvatarAscii, UserStatus Status, string? StatusMessage, ServerRole Role, DateTimeOffset CreatedAt, DateTimeOffset LastSeenAt) Parameters Id Guid Username string DisplayName string Bio string NicknameColor string AvatarAscii string Status UserStatus StatusMessage string Role ServerRole CreatedAt DateTimeOffset LastSeenAt DateTimeOffset Properties AvatarAscii public string? AvatarAscii { get; init; } Property Value string Bio public string? Bio { get; init; } Property Value string CreatedAt public DateTimeOffset CreatedAt { get; init; } Property Value DateTimeOffset DisplayName public string? DisplayName { get; init; } Property Value string EqualityContract protected virtual Type EqualityContract { get; } Property Value Type Id public Guid Id { get; init; } Property Value Guid LastSeenAt public DateTimeOffset LastSeenAt { get; init; } Property Value DateTimeOffset NicknameColor public string? NicknameColor { get; init; } Property Value string Role public ServerRole Role { get; init; } Property Value ServerRole Status public UserStatus Status { get; init; } Property Value UserStatus StatusMessage public string? StatusMessage { get; init; } Property Value string Username public string Username { get; init; } Property Value string Methods Deconstruct(out Guid, out string, out string?, out string?, out string?, out string?, out UserStatus, out string?, out ServerRole, out DateTimeOffset, out DateTimeOffset) public void Deconstruct(out Guid Id, out string Username, out string? DisplayName, out string? Bio, out string? NicknameColor, out string? AvatarAscii, out UserStatus Status, out string? StatusMessage, out ServerRole Role, out DateTimeOffset CreatedAt, out DateTimeOffset LastSeenAt) Parameters Id Guid Username string DisplayName string Bio string NicknameColor string AvatarAscii string Status UserStatus StatusMessage string Role ServerRole CreatedAt DateTimeOffset LastSeenAt DateTimeOffset Equals(UserProfileDto?) public virtual bool Equals(UserProfileDto? other) Parameters other UserProfileDto Returns bool Equals(object?) public override bool Equals(object? obj) Parameters obj object Returns bool GetHashCode() public override int GetHashCode() Returns int PrintMembers(StringBuilder) protected virtual bool PrintMembers(StringBuilder builder) Parameters builder StringBuilder Returns bool ToString() public override string ToString() Returns string Operators operator ==(UserProfileDto?, UserProfileDto?) public static bool operator ==(UserProfileDto? left, UserProfileDto? right) Parameters left UserProfileDto right UserProfileDto Returns bool operator !=(UserProfileDto?, UserProfileDto?) public static bool operator !=(UserProfileDto? left, UserProfileDto? right) Parameters left UserProfileDto right UserProfileDto Returns bool"
|
|
},
|
|
"api/core/EchoHub.Core.DTOs.html": {
|
|
"href": "api/core/EchoHub.Core.DTOs.html",
|
|
"title": "Namespace EchoHub.Core.DTOs | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Core.DTOs Classes ApiResponse ApiResponse<T> AssignRoleRequest AvatarUploadResponse BanRequest ChannelDto ChannelOperationResult CreateChannelRequest EmbedDto EncryptionKeyResponse ErrorResponse KickRequest LoginRequest LoginResponse MessageDto MuteRequest PaginatedResponse<T> RefreshRequest RegisterRequest SendMessageRequest SendUrlRequest ServerStatusDto UpdateProfileRequest UpdateStatusRequest UpdateTopicRequest UserDto UserPresenceDto UserProfileDto Enums ChannelError"
|
|
},
|
|
"api/core/EchoHub.Core.Models.Channel.html": {
|
|
"href": "api/core/EchoHub.Core.Models.Channel.html",
|
|
"title": "Class Channel | EchoHub Documentation",
|
|
"summary": "Class Channel Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public class Channel Inheritance object Channel Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors Channel() public Channel() Properties CreatedAt public DateTimeOffset CreatedAt { get; set; } Property Value DateTimeOffset CreatedByUserId public Guid CreatedByUserId { get; set; } Property Value Guid Id public Guid Id { get; set; } Property Value Guid IsPublic public bool IsPublic { get; set; } Property Value bool Messages public List<Message> Messages { get; set; } Property Value List<Message> Name public required string Name { get; set; } Property Value string Topic public string? Topic { get; set; } Property Value string"
|
|
},
|
|
"api/core/EchoHub.Core.Models.ChannelMembership.html": {
|
|
"href": "api/core/EchoHub.Core.Models.ChannelMembership.html",
|
|
"title": "Class ChannelMembership | EchoHub Documentation",
|
|
"summary": "Class ChannelMembership Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public class ChannelMembership Inheritance object ChannelMembership Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChannelMembership() public ChannelMembership() Properties ChannelId public Guid ChannelId { get; set; } Property Value Guid JoinedAt public DateTimeOffset JoinedAt { get; set; } Property Value DateTimeOffset UserId public Guid UserId { get; set; } Property Value Guid"
|
|
},
|
|
"api/core/EchoHub.Core.Models.Message.html": {
|
|
"href": "api/core/EchoHub.Core.Models.Message.html",
|
|
"title": "Class Message | EchoHub Documentation",
|
|
"summary": "Class Message Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public class Message Inheritance object Message Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors Message() public Message() Properties AttachmentFileName public string? AttachmentFileName { get; set; } Property Value string AttachmentFileSize public long? AttachmentFileSize { get; set; } Property Value long? AttachmentUrl public string? AttachmentUrl { get; set; } Property Value string Channel public Channel? Channel { get; set; } Property Value Channel ChannelId public Guid ChannelId { get; set; } Property Value Guid Content public required string Content { get; set; } Property Value string EmbedJson public string? EmbedJson { get; set; } Property Value string Id public Guid Id { get; set; } Property Value Guid SenderUserId public Guid SenderUserId { get; set; } Property Value Guid SenderUsername public required string SenderUsername { get; set; } Property Value string SentAt public DateTimeOffset SentAt { get; set; } Property Value DateTimeOffset Type public MessageType Type { get; set; } Property Value MessageType"
|
|
},
|
|
"api/core/EchoHub.Core.Models.MessageType.html": {
|
|
"href": "api/core/EchoHub.Core.Models.MessageType.html",
|
|
"title": "Enum MessageType | EchoHub Documentation",
|
|
"summary": "Enum MessageType Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public enum MessageType Fields Audio = 3 File = 2 Image = 1 Text = 0"
|
|
},
|
|
"api/core/EchoHub.Core.Models.RefreshToken.html": {
|
|
"href": "api/core/EchoHub.Core.Models.RefreshToken.html",
|
|
"title": "Class RefreshToken | EchoHub Documentation",
|
|
"summary": "Class RefreshToken Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public class RefreshToken Inheritance object RefreshToken Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors RefreshToken() public RefreshToken() Properties CreatedAt public DateTimeOffset CreatedAt { get; set; } Property Value DateTimeOffset ExpiresAt public DateTimeOffset ExpiresAt { get; set; } Property Value DateTimeOffset Id public Guid Id { get; set; } Property Value Guid IsActive public bool IsActive { get; } Property Value bool IsExpired public bool IsExpired { get; } Property Value bool IsRevoked public bool IsRevoked { get; } Property Value bool RevokedAt public DateTimeOffset? RevokedAt { get; set; } Property Value DateTimeOffset? TokenHash public required string TokenHash { get; set; } Property Value string User public User? User { get; set; } Property Value User UserId public Guid UserId { get; set; } Property Value Guid"
|
|
},
|
|
"api/core/EchoHub.Core.Models.ServerRole.html": {
|
|
"href": "api/core/EchoHub.Core.Models.ServerRole.html",
|
|
"title": "Enum ServerRole | EchoHub Documentation",
|
|
"summary": "Enum ServerRole Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public enum ServerRole Fields Admin = 2 Member = 0 Mod = 1 Owner = 3"
|
|
},
|
|
"api/core/EchoHub.Core.Models.User.html": {
|
|
"href": "api/core/EchoHub.Core.Models.User.html",
|
|
"title": "Class User | EchoHub Documentation",
|
|
"summary": "Class User Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public class User Inheritance object User Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors User() public User() Properties AvatarAscii public string? AvatarAscii { get; set; } Property Value string Bio public string? Bio { get; set; } Property Value string CreatedAt public DateTimeOffset CreatedAt { get; set; } Property Value DateTimeOffset DisplayName public string? DisplayName { get; set; } Property Value string Id public Guid Id { get; set; } Property Value Guid IsBanned public bool IsBanned { get; set; } Property Value bool IsMuted public bool IsMuted { get; set; } Property Value bool LastSeenAt public DateTimeOffset LastSeenAt { get; set; } Property Value DateTimeOffset MutedUntil public DateTimeOffset? MutedUntil { get; set; } Property Value DateTimeOffset? NicknameColor public string? NicknameColor { get; set; } Property Value string PasswordHash public required string PasswordHash { get; set; } Property Value string Role public ServerRole Role { get; set; } Property Value ServerRole Status public UserStatus Status { get; set; } Property Value UserStatus StatusMessage public string? StatusMessage { get; set; } Property Value string Username public required string Username { get; set; } Property Value string"
|
|
},
|
|
"api/core/EchoHub.Core.Models.UserStatus.html": {
|
|
"href": "api/core/EchoHub.Core.Models.UserStatus.html",
|
|
"title": "Enum UserStatus | EchoHub Documentation",
|
|
"summary": "Enum UserStatus Namespace EchoHub.Core.Models Assembly EchoHub.Core.dll public enum UserStatus Fields Away = 1 DoNotDisturb = 2 Invisible = 3 Online = 0"
|
|
},
|
|
"api/core/EchoHub.Core.Models.html": {
|
|
"href": "api/core/EchoHub.Core.Models.html",
|
|
"title": "Namespace EchoHub.Core.Models | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Core.Models Classes Channel ChannelMembership Message RefreshToken User Enums MessageType ServerRole UserStatus"
|
|
},
|
|
"api/index.html": {
|
|
"href": "api/index.html",
|
|
"title": "API Reference | EchoHub Documentation",
|
|
"summary": "API Reference Browse the generated API documentation for each EchoHub project. Projects Client Terminal.Gui v2 TUI application -- UI components, services, themes, and configuration. Core Shared library -- DTOs, models, constants, and contracts (IChatService, IChannelService, IChatBroadcaster, IEchoHubClient). Server ASP.NET Core server -- controllers, hubs, ChatService, ChannelService, SignalRBroadcaster, authentication, file cleanup, and data access. Server.Irc IRC protocol gateway -- TCP listener, command handler, IrcBroadcaster, and message formatter."
|
|
},
|
|
"api/server-articles/index.html": {
|
|
"href": "api/server-articles/index.html",
|
|
"title": "Server Articles | EchoHub Documentation",
|
|
"summary": "Server Articles Articles related to the EchoHub server built with ASP.NET Core. Topics Authentication and JWT tokens SignalR hub and real-time messaging IRC gateway and protocol bridging ChatService and broadcaster pattern ChannelService and channel CRUD File upload, validation, and cleanup Rate limiting configuration Database schema, migrations, and DataMigrationService"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcBroadcaster.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcBroadcaster.html",
|
|
"title": "Class IrcBroadcaster | EchoHub Documentation",
|
|
"summary": "Class IrcBroadcaster Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll public class IrcBroadcaster : IChatBroadcaster Inheritance object IrcBroadcaster Implements IChatBroadcaster Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors IrcBroadcaster(IrcGatewayService, IMessageEncryptionService) public IrcBroadcaster(IrcGatewayService gateway, IMessageEncryptionService encryption) Parameters gateway IrcGatewayService encryption IMessageEncryptionService Methods ForceDisconnectUserAsync(List<string>, string) public Task ForceDisconnectUserAsync(List<string> connectionIds, string reason) Parameters connectionIds List<string> reason string Returns Task SendChannelNukedAsync(string) public Task SendChannelNukedAsync(string channelName) Parameters channelName string Returns Task SendChannelUpdatedAsync(ChannelDto, string?) public Task SendChannelUpdatedAsync(ChannelDto channel, string? channelName = null) Parameters channel ChannelDto channelName string Returns Task SendErrorAsync(string, string) public Task SendErrorAsync(string connectionId, string message) Parameters connectionId string message string Returns Task SendMessageDeletedAsync(string, Guid) public Task SendMessageDeletedAsync(string channelName, Guid messageId) Parameters channelName string messageId Guid Returns Task SendMessageToChannelAsync(string, MessageDto) public Task SendMessageToChannelAsync(string channelName, MessageDto message) Parameters channelName string message MessageDto Returns Task SendUserBannedAsync(string, string?) public Task SendUserBannedAsync(string username, string? reason) Parameters username string reason string Returns Task SendUserJoinedAsync(string, string, string?) public Task SendUserJoinedAsync(string channelName, string username, string? excludeConnectionId = null) Parameters channelName string username string excludeConnectionId string Returns Task SendUserKickedAsync(string, string, string?) public Task SendUserKickedAsync(string channelName, string username, string? reason) Parameters channelName string username string reason string Returns Task SendUserLeftAsync(string, string) public Task SendUserLeftAsync(string channelName, string username) Parameters channelName string username string Returns Task SendUserStatusChangedAsync(List<string>, UserPresenceDto) public Task SendUserStatusChangedAsync(List<string> channelNames, UserPresenceDto presence) Parameters channelNames List<string> presence UserPresenceDto Returns Task"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcClientConnection.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcClientConnection.html",
|
|
"title": "Class IrcClientConnection | EchoHub Documentation",
|
|
"summary": "Class IrcClientConnection Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll Manages a single IRC client TCP connection. public sealed class IrcClientConnection : IAsyncDisposable Inheritance object IrcClientConnection Implements IAsyncDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors IrcClientConnection(TcpClient, Stream) public IrcClientConnection(TcpClient tcpClient, Stream stream) Parameters tcpClient TcpClient stream Stream Properties AwayMessage public string? AwayMessage { get; set; } Property Value string CapNegotiating public bool CapNegotiating { get; set; } Property Value bool ConnectionId public string ConnectionId { get; } Property Value string Hostmask public string Hostmask { get; } Property Value string IsAuthenticated public bool IsAuthenticated { get; set; } Property Value bool IsRegistered public bool IsRegistered { get; set; } Property Value bool IsSasl public bool IsSasl { get; set; } Property Value bool Nickname public string? Nickname { get; set; } Property Value string Password public string? Password { get; set; } Property Value string RealName public string? RealName { get; set; } Property Value string UserId public Guid? UserId { get; set; } Property Value Guid? Username public string? Username { get; set; } Property Value string Methods DisposeAsync() public ValueTask DisposeAsync() Returns ValueTask GetJoinedChannels() public List<string> GetJoinedChannels() Returns List<string> IsInChannel(string) public bool IsInChannel(string channel) Parameters channel string Returns bool JoinChannel(string) public void JoinChannel(string channel) Parameters channel string LeaveChannel(string) public void LeaveChannel(string channel) Parameters channel string ReadLineAsync(CancellationToken) public Task<string?> ReadLineAsync(CancellationToken ct) Parameters ct CancellationToken Returns Task<string> SendAsync(string) public Task SendAsync(string line) Parameters line string Returns Task SendNumericAsync(string, string, string) public Task SendNumericAsync(string serverName, string numeric, string text) Parameters serverName string numeric string text string Returns Task SendNumericAsync(string, string, string, string) public Task SendNumericAsync(string serverName, string numeric, string target, string text) Parameters serverName string numeric string target string text string Returns Task"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcCommandHandler.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcCommandHandler.html",
|
|
"title": "Class IrcCommandHandler | EchoHub Documentation",
|
|
"summary": "Class IrcCommandHandler Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll public sealed class IrcCommandHandler Inheritance object IrcCommandHandler Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors IrcCommandHandler(IrcClientConnection, IrcOptions, IChatService, IChannelService, IMessageEncryptionService, ILogger) public IrcCommandHandler(IrcClientConnection conn, IrcOptions options, IChatService chatService, IChannelService channelService, IMessageEncryptionService encryption, ILogger logger) Parameters conn IrcClientConnection options IrcOptions chatService IChatService channelService IChannelService encryption IMessageEncryptionService logger ILogger Methods RunAsync(CancellationToken) public Task RunAsync(CancellationToken ct) Parameters ct CancellationToken Returns Task"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcGatewayService.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcGatewayService.html",
|
|
"title": "Class IrcGatewayService | EchoHub Documentation",
|
|
"summary": "Class IrcGatewayService Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll public sealed class IrcGatewayService : BackgroundService, IDisposable Inheritance object BackgroundService IrcGatewayService Implements IDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors IrcGatewayService(IOptions<IrcOptions>, IServiceProvider, ILogger<IrcGatewayService>) public IrcGatewayService(IOptions<IrcOptions> options, IServiceProvider services, ILogger<IrcGatewayService> logger) Parameters options IOptions<IrcOptions> services IServiceProvider logger ILogger<IrcGatewayService> Properties Connections public IReadOnlyDictionary<string, IrcClientConnection> Connections { get; } Property Value IReadOnlyDictionary<string, IrcClientConnection> Options public IrcOptions Options { get; } Property Value IrcOptions Methods ExecuteAsync(CancellationToken) protected override Task ExecuteAsync(CancellationToken stoppingToken) Parameters stoppingToken CancellationToken Returns Task GetAllConnections() public IEnumerable<IrcClientConnection> GetAllConnections() Returns IEnumerable<IrcClientConnection> GetConnectionsInChannel(string) public IEnumerable<IrcClientConnection> GetConnectionsInChannel(string channelName) Parameters channelName string Returns IEnumerable<IrcClientConnection> StopAsync(CancellationToken) public override Task StopAsync(CancellationToken cancellationToken) Parameters cancellationToken CancellationToken Returns Task"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcMessage.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcMessage.html",
|
|
"title": "Class IrcMessage | EchoHub Documentation",
|
|
"summary": "Class IrcMessage Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll Parsed representation of an IRC protocol line. Format: [:prefix] COMMAND [params...] [:trailing] public sealed class IrcMessage Inheritance object IrcMessage Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors IrcMessage() public IrcMessage() Properties Command public string Command { get; init; } Property Value string Parameters public List<string> Parameters { get; init; } Property Value List<string> Prefix public string? Prefix { get; init; } Property Value string Trailing public string? Trailing { get; } Property Value string Methods Parse(string) Parse a raw IRC line: [:prefix SPACE] command [SPACE params] CRLF public static IrcMessage Parse(string line) Parameters line string Returns IrcMessage"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcMessageFormatter.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcMessageFormatter.html",
|
|
"title": "Class IrcMessageFormatter | EchoHub Documentation",
|
|
"summary": "Class IrcMessageFormatter Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll public static class IrcMessageFormatter Inheritance object IrcMessageFormatter Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods ColorTagsToAnsi(string) Convert printable color tags ({F:RRGGBB}, {B:RRGGBB}, {X}) to ANSI escape codes for IRC clients. Also passes through content that already uses ANSI codes unchanged. public static string ColorTagsToAnsi(string text) Parameters text string Returns string FormatMessage(MessageDto) Format a MessageDto as one or more IRC PRIVMSG lines. public static List<string> FormatMessage(MessageDto message) Parameters message MessageDto Returns List<string> SplitMessage(string, int) Split a message into chunks of approximately maxBytes (UTF-8), at word boundaries. public static List<string> SplitMessage(string content, int maxBytes) Parameters content string maxBytes int Returns List<string>"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcNumericReply.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcNumericReply.html",
|
|
"title": "Class IrcNumericReply | EchoHub Documentation",
|
|
"summary": "Class IrcNumericReply Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll public static class IrcNumericReply Inheritance object IrcNumericReply Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Fields ERR_ALREADYREGISTERED public const string ERR_ALREADYREGISTERED = \"462\" Field Value string ERR_CANNOTSENDTOCHAN public const string ERR_CANNOTSENDTOCHAN = \"404\" Field Value string ERR_CHANOPRIVSNEEDED public const string ERR_CHANOPRIVSNEEDED = \"482\" Field Value string ERR_ERRONEUSNICKNAME public const string ERR_ERRONEUSNICKNAME = \"432\" Field Value string ERR_NEEDMOREPARAMS public const string ERR_NEEDMOREPARAMS = \"461\" Field Value string ERR_NICKNAMEINUSE public const string ERR_NICKNAMEINUSE = \"433\" Field Value string ERR_NOMOTD public const string ERR_NOMOTD = \"422\" Field Value string ERR_NONICKNAMEGIVEN public const string ERR_NONICKNAMEGIVEN = \"431\" Field Value string ERR_NOSUCHCHANNEL public const string ERR_NOSUCHCHANNEL = \"403\" Field Value string ERR_NOSUCHNICK public const string ERR_NOSUCHNICK = \"401\" Field Value string ERR_NOTONCHANNEL public const string ERR_NOTONCHANNEL = \"442\" Field Value string ERR_NOTREGISTERED public const string ERR_NOTREGISTERED = \"451\" Field Value string ERR_PASSWDMISMATCH public const string ERR_PASSWDMISMATCH = \"464\" Field Value string ERR_SASLFAIL public const string ERR_SASLFAIL = \"904\" Field Value string ERR_UNKNOWNCOMMAND public const string ERR_UNKNOWNCOMMAND = \"421\" Field Value string RPL_AWAY public const string RPL_AWAY = \"301\" Field Value string RPL_CHANNELMODEIS public const string RPL_CHANNELMODEIS = \"324\" Field Value string RPL_CREATED public const string RPL_CREATED = \"003\" Field Value string RPL_ENDOFMOTD public const string RPL_ENDOFMOTD = \"376\" Field Value string RPL_ENDOFNAMES public const string RPL_ENDOFNAMES = \"366\" Field Value string RPL_ENDOFWHO public const string RPL_ENDOFWHO = \"315\" Field Value string RPL_ENDOFWHOIS public const string RPL_ENDOFWHOIS = \"318\" Field Value string RPL_ISUPPORT public const string RPL_ISUPPORT = \"005\" Field Value string RPL_LIST public const string RPL_LIST = \"322\" Field Value string RPL_LISTEND public const string RPL_LISTEND = \"323\" Field Value string RPL_LOGGEDIN public const string RPL_LOGGEDIN = \"900\" Field Value string RPL_MOTD public const string RPL_MOTD = \"372\" Field Value string RPL_MOTDSTART public const string RPL_MOTDSTART = \"375\" Field Value string RPL_MYINFO public const string RPL_MYINFO = \"004\" Field Value string RPL_NAMREPLY public const string RPL_NAMREPLY = \"353\" Field Value string RPL_NOTOPIC public const string RPL_NOTOPIC = \"331\" Field Value string RPL_NOWAWAY public const string RPL_NOWAWAY = \"306\" Field Value string RPL_SASLSUCCESS public const string RPL_SASLSUCCESS = \"903\" Field Value string RPL_TOPIC public const string RPL_TOPIC = \"332\" Field Value string RPL_UMODEIS public const string RPL_UMODEIS = \"221\" Field Value string RPL_UNAWAY public const string RPL_UNAWAY = \"305\" Field Value string RPL_WELCOME public const string RPL_WELCOME = \"001\" Field Value string RPL_WHOISCHANNELS public const string RPL_WHOISCHANNELS = \"319\" Field Value string RPL_WHOISIDLE public const string RPL_WHOISIDLE = \"317\" Field Value string RPL_WHOISSERVER public const string RPL_WHOISSERVER = \"312\" Field Value string RPL_WHOISUSER public const string RPL_WHOISUSER = \"311\" Field Value string RPL_WHOREPLY public const string RPL_WHOREPLY = \"352\" Field Value string RPL_YOURHOST public const string RPL_YOURHOST = \"002\" Field Value string"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcOptions.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcOptions.html",
|
|
"title": "Class IrcOptions | EchoHub Documentation",
|
|
"summary": "Class IrcOptions Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll public sealed class IrcOptions Inheritance object IrcOptions Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors IrcOptions() public IrcOptions() Fields SectionName public const string SectionName = \"Irc\" Field Value string Properties Enabled public bool Enabled { get; set; } Property Value bool Motd public string? Motd { get; set; } Property Value string Port public int Port { get; set; } Property Value int ServerName public string ServerName { get; set; } Property Value string TlsCertPassword public string? TlsCertPassword { get; set; } Property Value string TlsCertPath public string? TlsCertPath { get; set; } Property Value string TlsEnabled public bool TlsEnabled { get; set; } Property Value bool TlsPort public int TlsPort { get; set; } Property Value int"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.IrcServiceExtensions.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.IrcServiceExtensions.html",
|
|
"title": "Class IrcServiceExtensions | EchoHub Documentation",
|
|
"summary": "Class IrcServiceExtensions Namespace EchoHub.Server.Irc Assembly EchoHub.Server.Irc.dll public static class IrcServiceExtensions Inheritance object IrcServiceExtensions Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods AddIrcGateway(WebApplicationBuilder) public static WebApplicationBuilder AddIrcGateway(this WebApplicationBuilder builder) Parameters builder WebApplicationBuilder Returns WebApplicationBuilder"
|
|
},
|
|
"api/server-irc/EchoHub.Server.Irc.html": {
|
|
"href": "api/server-irc/EchoHub.Server.Irc.html",
|
|
"title": "Namespace EchoHub.Server.Irc | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Irc Classes IrcBroadcaster IrcClientConnection Manages a single IRC client TCP connection. IrcCommandHandler IrcGatewayService IrcMessage Parsed representation of an IRC protocol line. Format: [:prefix] COMMAND [params...] [:trailing] IrcMessageFormatter IrcNumericReply IrcOptions IrcServiceExtensions"
|
|
},
|
|
"api/server/EchoHub.Server.Auth.JwtTokenService.html": {
|
|
"href": "api/server/EchoHub.Server.Auth.JwtTokenService.html",
|
|
"title": "Class JwtTokenService | EchoHub Documentation",
|
|
"summary": "Class JwtTokenService Namespace EchoHub.Server.Auth Assembly EchoHub.Server.dll public class JwtTokenService Inheritance object JwtTokenService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors JwtTokenService(IConfiguration) public JwtTokenService(IConfiguration configuration) Parameters configuration IConfiguration Fields RefreshTokenLifetime public static readonly TimeSpan RefreshTokenLifetime Field Value TimeSpan Methods GenerateAccessToken(User) public (string Token, DateTimeOffset ExpiresAt) GenerateAccessToken(User user) Parameters user User Returns (string Token, DateTimeOffset ExpiresAt) GenerateRefreshToken() public static string GenerateRefreshToken() Returns string HashToken(string) public static string HashToken(string token) Parameters token string Returns string"
|
|
},
|
|
"api/server/EchoHub.Server.Auth.html": {
|
|
"href": "api/server/EchoHub.Server.Auth.html",
|
|
"title": "Namespace EchoHub.Server.Auth | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Auth Classes JwtTokenService"
|
|
},
|
|
"api/server/EchoHub.Server.Controllers.AuthController.html": {
|
|
"href": "api/server/EchoHub.Server.Controllers.AuthController.html",
|
|
"title": "Class AuthController | EchoHub Documentation",
|
|
"summary": "Class AuthController Namespace EchoHub.Server.Controllers Assembly EchoHub.Server.dll [ApiController] [Route(\"api/auth\")] [EnableRateLimiting(\"auth\")] public class AuthController : ControllerBase Inheritance object ControllerBase AuthController Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AuthController(EchoHubDbContext, JwtTokenService) public AuthController(EchoHubDbContext db, JwtTokenService jwt) Parameters db EchoHubDbContext jwt JwtTokenService Methods Login(LoginRequest) [HttpPost(\"login\")] public Task<IActionResult> Login(LoginRequest request) Parameters request LoginRequest Returns Task<IActionResult> Logout(RefreshRequest) [HttpPost(\"logout\")] public Task<IActionResult> Logout(RefreshRequest request) Parameters request RefreshRequest Returns Task<IActionResult> Refresh(RefreshRequest) [HttpPost(\"refresh\")] public Task<IActionResult> Refresh(RefreshRequest request) Parameters request RefreshRequest Returns Task<IActionResult> Register(RegisterRequest) [HttpPost(\"register\")] public Task<IActionResult> Register(RegisterRequest request) Parameters request RegisterRequest Returns Task<IActionResult>"
|
|
},
|
|
"api/server/EchoHub.Server.Controllers.ChannelsController.html": {
|
|
"href": "api/server/EchoHub.Server.Controllers.ChannelsController.html",
|
|
"title": "Class ChannelsController | EchoHub Documentation",
|
|
"summary": "Class ChannelsController Namespace EchoHub.Server.Controllers Assembly EchoHub.Server.dll [ApiController] [Route(\"api/channels\")] [Authorize] [EnableRateLimiting(\"general\")] public class ChannelsController : ControllerBase Inheritance object ControllerBase ChannelsController Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChannelsController(IChannelService, EchoHubDbContext, FileStorageService, ImageToAsciiService, IHttpClientFactory, IChatService, IMessageEncryptionService) public ChannelsController(IChannelService channelService, EchoHubDbContext db, FileStorageService fileStorage, ImageToAsciiService asciiService, IHttpClientFactory httpClientFactory, IChatService chatService, IMessageEncryptionService encryption) Parameters channelService IChannelService db EchoHubDbContext fileStorage FileStorageService asciiService ImageToAsciiService httpClientFactory IHttpClientFactory chatService IChatService encryption IMessageEncryptionService Methods CreateChannel(CreateChannelRequest) [HttpPost] public Task<IActionResult> CreateChannel(CreateChannelRequest request) Parameters request CreateChannelRequest Returns Task<IActionResult> DeleteChannel(string) [HttpDelete(\"{channel}\")] public Task<IActionResult> DeleteChannel(string channel) Parameters channel string Returns Task<IActionResult> GetChannels(int, int) [HttpGet] public Task<IActionResult> GetChannels(int offset = 0, int limit = 50) Parameters offset int limit int Returns Task<IActionResult> SendUrl(string, SendUrlRequest, string?) [HttpPost(\"{channel}/send-url\")] [EnableRateLimiting(\"upload\")] public Task<IActionResult> SendUrl(string channel, SendUrlRequest request, string? size = null) Parameters channel string request SendUrlRequest size string Returns Task<IActionResult> UpdateTopic(string, UpdateTopicRequest) [HttpPut(\"{channel}/topic\")] public Task<IActionResult> UpdateTopic(string channel, UpdateTopicRequest request) Parameters channel string request UpdateTopicRequest Returns Task<IActionResult> Upload(string, string?) [HttpPost(\"{channel}/upload\")] [EnableRateLimiting(\"upload\")] [RequestSizeLimit(104857600)] [RequestFormLimits(MultipartBodyLengthLimit = 104857600)] public Task<IActionResult> Upload(string channel, string? size = null) Parameters channel string size string Returns Task<IActionResult>"
|
|
},
|
|
"api/server/EchoHub.Server.Controllers.FilesController.html": {
|
|
"href": "api/server/EchoHub.Server.Controllers.FilesController.html",
|
|
"title": "Class FilesController | EchoHub Documentation",
|
|
"summary": "Class FilesController Namespace EchoHub.Server.Controllers Assembly EchoHub.Server.dll [ApiController] [Route(\"api/files\")] [Authorize] [EnableRateLimiting(\"general\")] public class FilesController : ControllerBase Inheritance object ControllerBase FilesController Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors FilesController(FileStorageService) public FilesController(FileStorageService fileStorage) Parameters fileStorage FileStorageService Methods GetFile(string) [HttpGet(\"{fileId}\")] public IActionResult GetFile(string fileId) Parameters fileId string Returns IActionResult"
|
|
},
|
|
"api/server/EchoHub.Server.Controllers.ModerationController.html": {
|
|
"href": "api/server/EchoHub.Server.Controllers.ModerationController.html",
|
|
"title": "Class ModerationController | EchoHub Documentation",
|
|
"summary": "Class ModerationController Namespace EchoHub.Server.Controllers Assembly EchoHub.Server.dll [ApiController] [Route(\"api/moderation\")] [Authorize] [EnableRateLimiting(\"general\")] public class ModerationController : ControllerBase Inheritance object ControllerBase ModerationController Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ModerationController(EchoHubDbContext, IChatService, PresenceTracker, IEnumerable<IChatBroadcaster>) public ModerationController(EchoHubDbContext db, IChatService chatService, PresenceTracker presenceTracker, IEnumerable<IChatBroadcaster> broadcasters) Parameters db EchoHubDbContext chatService IChatService presenceTracker PresenceTracker broadcasters IEnumerable<IChatBroadcaster> Methods AssignRole(AssignRoleRequest) [HttpPost(\"role\")] public Task<IActionResult> AssignRole(AssignRoleRequest request) Parameters request AssignRoleRequest Returns Task<IActionResult> BanUser(string, BanRequest?) [HttpPost(\"ban/{username}\")] public Task<IActionResult> BanUser(string username, BanRequest? request = null) Parameters username string request BanRequest Returns Task<IActionResult> DeleteMessage(Guid) [HttpDelete(\"messages/{messageId:guid}\")] public Task<IActionResult> DeleteMessage(Guid messageId) Parameters messageId Guid Returns Task<IActionResult> KickUser(string, KickRequest?) [HttpPost(\"kick/{username}\")] public Task<IActionResult> KickUser(string username, KickRequest? request = null) Parameters username string request KickRequest Returns Task<IActionResult> MuteUser(string, MuteRequest?) [HttpPost(\"mute/{username}\")] public Task<IActionResult> MuteUser(string username, MuteRequest? request = null) Parameters username string request MuteRequest Returns Task<IActionResult> NukeChannel(string) [HttpDelete(\"channels/{channel}/nuke\")] public Task<IActionResult> NukeChannel(string channel) Parameters channel string Returns Task<IActionResult> UnbanUser(string) [HttpPost(\"unban/{username}\")] public Task<IActionResult> UnbanUser(string username) Parameters username string Returns Task<IActionResult> UnmuteUser(string) [HttpPost(\"unmute/{username}\")] public Task<IActionResult> UnmuteUser(string username) Parameters username string Returns Task<IActionResult>"
|
|
},
|
|
"api/server/EchoHub.Server.Controllers.ServerController.html": {
|
|
"href": "api/server/EchoHub.Server.Controllers.ServerController.html",
|
|
"title": "Class ServerController | EchoHub Documentation",
|
|
"summary": "Class ServerController Namespace EchoHub.Server.Controllers Assembly EchoHub.Server.dll [ApiController] [Route(\"api/server\")] public class ServerController : ControllerBase Inheritance object ControllerBase ServerController Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ServerController(EchoHubDbContext, IConfiguration) public ServerController(EchoHubDbContext db, IConfiguration config) Parameters db EchoHubDbContext config IConfiguration Methods GetEncryptionKey() [HttpGet(\"encryption-key\")] [Authorize] [EnableRateLimiting(\"auth\")] public IActionResult GetEncryptionKey() Returns IActionResult GetInfo() [HttpGet(\"info\")] public Task<IActionResult> GetInfo() Returns Task<IActionResult>"
|
|
},
|
|
"api/server/EchoHub.Server.Controllers.UsersController.html": {
|
|
"href": "api/server/EchoHub.Server.Controllers.UsersController.html",
|
|
"title": "Class UsersController | EchoHub Documentation",
|
|
"summary": "Class UsersController Namespace EchoHub.Server.Controllers Assembly EchoHub.Server.dll [ApiController] [Route(\"api/users\")] [Authorize] [EnableRateLimiting(\"general\")] public class UsersController : ControllerBase Inheritance object ControllerBase UsersController Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors UsersController(EchoHubDbContext, ImageToAsciiService) public UsersController(EchoHubDbContext db, ImageToAsciiService asciiService) Parameters db EchoHubDbContext asciiService ImageToAsciiService Methods GetProfile(string) [HttpGet(\"{username}/profile\")] public Task<IActionResult> GetProfile(string username) Parameters username string Returns Task<IActionResult> UpdateProfile(UpdateProfileRequest) [HttpPut(\"profile\")] public Task<IActionResult> UpdateProfile(UpdateProfileRequest request) Parameters request UpdateProfileRequest Returns Task<IActionResult> UploadAvatar() [HttpPost(\"avatar\")] [EnableRateLimiting(\"upload\")] public Task<IActionResult> UploadAvatar() Returns Task<IActionResult>"
|
|
},
|
|
"api/server/EchoHub.Server.Controllers.html": {
|
|
"href": "api/server/EchoHub.Server.Controllers.html",
|
|
"title": "Namespace EchoHub.Server.Controllers | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Controllers Classes AuthController ChannelsController FilesController ModerationController ServerController UsersController"
|
|
},
|
|
"api/server/EchoHub.Server.Data.EchoHubDbContext.html": {
|
|
"href": "api/server/EchoHub.Server.Data.EchoHubDbContext.html",
|
|
"title": "Class EchoHubDbContext | EchoHub Documentation",
|
|
"summary": "Class EchoHubDbContext Namespace EchoHub.Server.Data Assembly EchoHub.Server.dll public class EchoHubDbContext : DbContext, IDisposable, IAsyncDisposable Inheritance object DbContext EchoHubDbContext Implements IDisposable IAsyncDisposable Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors EchoHubDbContext(DbContextOptions<EchoHubDbContext>) public EchoHubDbContext(DbContextOptions<EchoHubDbContext> options) Parameters options DbContextOptions<EchoHubDbContext> Properties ChannelMemberships public DbSet<ChannelMembership> ChannelMemberships { get; } Property Value DbSet<ChannelMembership> Channels public DbSet<Channel> Channels { get; } Property Value DbSet<Channel> Messages public DbSet<Message> Messages { get; } Property Value DbSet<Message> RefreshTokens public DbSet<RefreshToken> RefreshTokens { get; } Property Value DbSet<RefreshToken> Users public DbSet<User> Users { get; } Property Value DbSet<User> Methods OnConfiguring(DbContextOptionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) Parameters optionsBuilder DbContextOptionsBuilder OnModelCreating(ModelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.AddAttachmentFileSize.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.AddAttachmentFileSize.html",
|
|
"title": "Class AddAttachmentFileSize | EchoHub Documentation",
|
|
"summary": "Class AddAttachmentFileSize Namespace EchoHub.Server.Data.Migrations Assembly EchoHub.Server.dll [DbContext(typeof(EchoHubDbContext))] [Migration(\"20260221193444_AddAttachmentFileSize\")] public class AddAttachmentFileSize : Migration Inheritance object Migration AddAttachmentFileSize Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AddAttachmentFileSize() public AddAttachmentFileSize() Methods BuildTargetModel(ModelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder Down(MigrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder Up(MigrationBuilder) protected override void Up(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.AddChannelIsPublic.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.AddChannelIsPublic.html",
|
|
"title": "Class AddChannelIsPublic | EchoHub Documentation",
|
|
"summary": "Class AddChannelIsPublic Namespace EchoHub.Server.Data.Migrations Assembly EchoHub.Server.dll [DbContext(typeof(EchoHubDbContext))] [Migration(\"20260219172834_AddChannelIsPublic\")] public class AddChannelIsPublic : Migration Inheritance object Migration AddChannelIsPublic Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AddChannelIsPublic() public AddChannelIsPublic() Methods BuildTargetModel(ModelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder Down(MigrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder Up(MigrationBuilder) protected override void Up(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.AddChannelMembership.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.AddChannelMembership.html",
|
|
"title": "Class AddChannelMembership | EchoHub Documentation",
|
|
"summary": "Class AddChannelMembership Namespace EchoHub.Server.Data.Migrations Assembly EchoHub.Server.dll [DbContext(typeof(EchoHubDbContext))] [Migration(\"20260219181720_AddChannelMembership\")] public class AddChannelMembership : Migration Inheritance object Migration AddChannelMembership Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AddChannelMembership() public AddChannelMembership() Methods BuildTargetModel(ModelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder Down(MigrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder Up(MigrationBuilder) protected override void Up(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.AddEncryptionSupport.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.AddEncryptionSupport.html",
|
|
"title": "Class AddEncryptionSupport | EchoHub Documentation",
|
|
"summary": "Class AddEncryptionSupport Namespace EchoHub.Server.Data.Migrations Assembly EchoHub.Server.dll [DbContext(typeof(EchoHubDbContext))] [Migration(\"20260220133627_AddEncryptionSupport\")] public class AddEncryptionSupport : Migration Inheritance object Migration AddEncryptionSupport Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AddEncryptionSupport() public AddEncryptionSupport() Methods BuildTargetModel(ModelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder Down(MigrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder Up(MigrationBuilder) protected override void Up(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.AddMessageEmbed.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.AddMessageEmbed.html",
|
|
"title": "Class AddMessageEmbed | EchoHub Documentation",
|
|
"summary": "Class AddMessageEmbed Namespace EchoHub.Server.Data.Migrations Assembly EchoHub.Server.dll [DbContext(typeof(EchoHubDbContext))] [Migration(\"20260219201704_AddMessageEmbed\")] public class AddMessageEmbed : Migration Inheritance object Migration AddMessageEmbed Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AddMessageEmbed() public AddMessageEmbed() Methods BuildTargetModel(ModelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder Down(MigrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder Up(MigrationBuilder) protected override void Up(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.AddModerationRoles.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.AddModerationRoles.html",
|
|
"title": "Class AddModerationRoles | EchoHub Documentation",
|
|
"summary": "Class AddModerationRoles Namespace EchoHub.Server.Data.Migrations Assembly EchoHub.Server.dll [DbContext(typeof(EchoHubDbContext))] [Migration(\"20260219162414_AddModerationRoles\")] public class AddModerationRoles : Migration Inheritance object Migration AddModerationRoles Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors AddModerationRoles() public AddModerationRoles() Methods BuildTargetModel(ModelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder Down(MigrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder Up(MigrationBuilder) protected override void Up(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.InitialCreate.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.InitialCreate.html",
|
|
"title": "Class InitialCreate | EchoHub Documentation",
|
|
"summary": "Class InitialCreate Namespace EchoHub.Server.Data.Migrations Assembly EchoHub.Server.dll [DbContext(typeof(EchoHubDbContext))] [Migration(\"20260219023113_InitialCreate\")] public class InitialCreate : Migration Inheritance object Migration InitialCreate Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors InitialCreate() public InitialCreate() Methods BuildTargetModel(ModelBuilder) protected override void BuildTargetModel(ModelBuilder modelBuilder) Parameters modelBuilder ModelBuilder Down(MigrationBuilder) protected override void Down(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder Up(MigrationBuilder) protected override void Up(MigrationBuilder migrationBuilder) Parameters migrationBuilder MigrationBuilder"
|
|
},
|
|
"api/server/EchoHub.Server.Data.Migrations.html": {
|
|
"href": "api/server/EchoHub.Server.Data.Migrations.html",
|
|
"title": "Namespace EchoHub.Server.Data.Migrations | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Data.Migrations Classes AddAttachmentFileSize AddChannelIsPublic AddChannelMembership AddEncryptionSupport AddMessageEmbed AddModerationRoles InitialCreate"
|
|
},
|
|
"api/server/EchoHub.Server.Data.html": {
|
|
"href": "api/server/EchoHub.Server.Data.html",
|
|
"title": "Namespace EchoHub.Server.Data | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Data Classes EchoHubDbContext"
|
|
},
|
|
"api/server/EchoHub.Server.Hubs.ChatHub.html": {
|
|
"href": "api/server/EchoHub.Server.Hubs.ChatHub.html",
|
|
"title": "Class ChatHub | EchoHub Documentation",
|
|
"summary": "Class ChatHub Namespace EchoHub.Server.Hubs Assembly EchoHub.Server.dll [Authorize] public class ChatHub : Hub<IEchoHubClient>, IDisposable Inheritance object Hub Hub<IEchoHubClient> ChatHub Implements IDisposable Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChatHub(IChatService, ILogger<ChatHub>) public ChatHub(IChatService chatService, ILogger<ChatHub> logger) Parameters chatService IChatService logger ILogger<ChatHub> Methods GetChannelHistory(string, int) public Task<List<MessageDto>> GetChannelHistory(string channelName, int count = 100) Parameters channelName string count int Returns Task<List<MessageDto>> GetOnlineUsers(string) public Task<List<UserPresenceDto>> GetOnlineUsers(string channelName) Parameters channelName string Returns Task<List<UserPresenceDto>> JoinChannel(string) public Task<List<MessageDto>> JoinChannel(string channelName) Parameters channelName string Returns Task<List<MessageDto>> LeaveChannel(string) public Task LeaveChannel(string channelName) Parameters channelName string Returns Task OnConnectedAsync() public override Task OnConnectedAsync() Returns Task OnDisconnectedAsync(Exception?) public override Task OnDisconnectedAsync(Exception? exception) Parameters exception Exception Returns Task SendMessage(string, string) public Task SendMessage(string channelName, string content) Parameters channelName string content string Returns Task UpdateStatus(UserStatus, string?) public Task UpdateStatus(UserStatus status, string? statusMessage) Parameters status UserStatus statusMessage string Returns Task"
|
|
},
|
|
"api/server/EchoHub.Server.Hubs.html": {
|
|
"href": "api/server/EchoHub.Server.Hubs.html",
|
|
"title": "Namespace EchoHub.Server.Hubs | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Hubs Classes ChatHub"
|
|
},
|
|
"api/server/EchoHub.Server.Services.ChannelService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.ChannelService.html",
|
|
"title": "Class ChannelService | EchoHub Documentation",
|
|
"summary": "Class ChannelService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class ChannelService : IChannelService Inheritance object ChannelService Implements IChannelService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChannelService(IServiceScopeFactory, PresenceTracker, ILogger<ChannelService>) public ChannelService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, ILogger<ChannelService> logger) Parameters scopeFactory IServiceScopeFactory presenceTracker PresenceTracker logger ILogger<ChannelService> Methods CreateChannelAsync(Guid, string, string?, bool) public Task<ChannelOperationResult> CreateChannelAsync(Guid creatorUserId, string name, string? topic, bool isPublic) Parameters creatorUserId Guid name string topic string isPublic bool Returns Task<ChannelOperationResult> DeleteChannelAsync(Guid, string) public Task<ChannelOperationResult> DeleteChannelAsync(Guid callerUserId, string channelName) Parameters callerUserId Guid channelName string Returns Task<ChannelOperationResult> EnsureChannelMembershipAsync(Guid, string) public Task<(bool Success, string? Error)> EnsureChannelMembershipAsync(Guid userId, string channelName) Parameters userId Guid channelName string Returns Task<(bool Success, string Error)> GetChannelByNameAsync(string) public Task<ChannelDto?> GetChannelByNameAsync(string channelName) Parameters channelName string Returns Task<ChannelDto> GetChannelListAsync() public Task<List<ChannelListItem>> GetChannelListAsync() Returns Task<List<ChannelListItem>> GetChannelTopicAsync(string) public Task<(string? Topic, bool Exists)> GetChannelTopicAsync(string channelName) Parameters channelName string Returns Task<(string Topic, bool Exists)> GetChannelsAsync(Guid, int, int) public Task<PaginatedResponse<ChannelDto>> GetChannelsAsync(Guid userId, int offset, int limit) Parameters userId Guid offset int limit int Returns Task<PaginatedResponse<ChannelDto>> UpdateTopicAsync(Guid, string, string?) public Task<ChannelOperationResult> UpdateTopicAsync(Guid callerUserId, string channelName, string? topic) Parameters callerUserId Guid channelName string topic string Returns Task<ChannelOperationResult>"
|
|
},
|
|
"api/server/EchoHub.Server.Services.ChatService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.ChatService.html",
|
|
"title": "Class ChatService | EchoHub Documentation",
|
|
"summary": "Class ChatService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class ChatService : IChatService Inheritance object ChatService Implements IChatService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ChatService(IServiceScopeFactory, PresenceTracker, IEnumerable<IChatBroadcaster>, LinkEmbedService, IMessageEncryptionService, IChannelService, ILogger<ChatService>) public ChatService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, IEnumerable<IChatBroadcaster> broadcasters, LinkEmbedService embedService, IMessageEncryptionService encryption, IChannelService channelService, ILogger<ChatService> logger) Parameters scopeFactory IServiceScopeFactory presenceTracker PresenceTracker broadcasters IEnumerable<IChatBroadcaster> embedService LinkEmbedService encryption IMessageEncryptionService channelService IChannelService logger ILogger<ChatService> Methods AuthenticateUserAsync(string, string) public Task<(Guid UserId, string Username)?> AuthenticateUserAsync(string username, string password) Parameters username string password string Returns Task<(Guid UserId, string Username)?> BroadcastChannelUpdatedAsync(ChannelDto, string?) public Task BroadcastChannelUpdatedAsync(ChannelDto channel, string? channelName = null) Parameters channel ChannelDto channelName string Returns Task BroadcastMessageAsync(string, MessageDto) public Task BroadcastMessageAsync(string channelName, MessageDto message) Parameters channelName string message MessageDto Returns Task GetChannelHistoryAsync(string, int) public Task<List<MessageDto>> GetChannelHistoryAsync(string channelName, int count) Parameters channelName string count int Returns Task<List<MessageDto>> GetChannelsForUserAsync(string) public Task<List<string>> GetChannelsForUserAsync(string username) Parameters username string Returns Task<List<string>> GetOnlineUsersAsync(string) public Task<List<UserPresenceDto>> GetOnlineUsersAsync(string channelName) Parameters channelName string Returns Task<List<UserPresenceDto>> GetUserProfileAsync(string) public Task<UserProfileDto?> GetUserProfileAsync(string username) Parameters username string Returns Task<UserProfileDto> JoinChannelAsync(string, Guid, string, string) public Task<(List<MessageDto> History, string? Error)> JoinChannelAsync(string connectionId, Guid userId, string username, string channelName) Parameters connectionId string userId Guid username string channelName string Returns Task<(List<MessageDto> History, string Error)> LeaveChannelAsync(string, string, string) public Task LeaveChannelAsync(string connectionId, string username, string channelName) Parameters connectionId string username string channelName string Returns Task SendMessageAsync(Guid, string, string, string) public Task<string?> SendMessageAsync(Guid userId, string username, string channelName, string content) Parameters userId Guid username string channelName string content string Returns Task<string> UpdateStatusAsync(Guid, string, UserStatus, string?) public Task<string?> UpdateStatusAsync(Guid userId, string username, UserStatus status, string? statusMessage) Parameters userId Guid username string status UserStatus statusMessage string Returns Task<string> UserConnectedAsync(string, Guid, string) public Task UserConnectedAsync(string connectionId, Guid userId, string username) Parameters connectionId string userId Guid username string Returns Task UserDisconnectedAsync(string) public Task<string?> UserDisconnectedAsync(string connectionId) Parameters connectionId string Returns Task<string>"
|
|
},
|
|
"api/server/EchoHub.Server.Services.FileCleanupService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.FileCleanupService.html",
|
|
"title": "Class FileCleanupService | EchoHub Documentation",
|
|
"summary": "Class FileCleanupService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public sealed class FileCleanupService : BackgroundService, IDisposable Inheritance object BackgroundService FileCleanupService Implements IDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors FileCleanupService(IConfiguration, ILogger<FileCleanupService>) public FileCleanupService(IConfiguration configuration, ILogger<FileCleanupService> logger) Parameters configuration IConfiguration logger ILogger<FileCleanupService> Methods ExecuteAsync(CancellationToken) protected override Task ExecuteAsync(CancellationToken stoppingToken) Parameters stoppingToken CancellationToken Returns Task"
|
|
},
|
|
"api/server/EchoHub.Server.Services.FileStorageService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.FileStorageService.html",
|
|
"title": "Class FileStorageService | EchoHub Documentation",
|
|
"summary": "Class FileStorageService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class FileStorageService Inheritance object FileStorageService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors FileStorageService(IConfiguration) public FileStorageService(IConfiguration configuration) Parameters configuration IConfiguration Methods DeleteFile(string) public void DeleteFile(string fileId) Parameters fileId string GetFilePath(string) public string? GetFilePath(string fileId) Parameters fileId string Returns string SaveFileAsync(Stream, string) public Task<(string fileId, string filePath)> SaveFileAsync(Stream stream, string fileName) Parameters stream Stream fileName string Returns Task<(string fileId, string filePath)>"
|
|
},
|
|
"api/server/EchoHub.Server.Services.FileValidationHelper.html": {
|
|
"href": "api/server/EchoHub.Server.Services.FileValidationHelper.html",
|
|
"title": "Class FileValidationHelper | EchoHub Documentation",
|
|
"summary": "Class FileValidationHelper Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public static class FileValidationHelper Inheritance object FileValidationHelper Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods IsAudioFile(string) Checks whether the file name has a recognized audio extension. public static bool IsAudioFile(string fileName) Parameters fileName string Returns bool IsValidImage(Stream) Validates that a stream contains a recognized image format by checking magic bytes. The stream position is reset to the beginning after validation. public static bool IsValidImage(Stream stream) Parameters stream Stream Returns bool"
|
|
},
|
|
"api/server/EchoHub.Server.Services.ImageToAsciiService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.ImageToAsciiService.html",
|
|
"title": "Class ImageToAsciiService | EchoHub Documentation",
|
|
"summary": "Class ImageToAsciiService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class ImageToAsciiService Inheritance object ImageToAsciiService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ImageToAsciiService() public ImageToAsciiService() Methods ConvertToAscii(Stream, int, int) 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. public string ConvertToAscii(Stream imageStream, int width = 80, int height = 80) Parameters imageStream Stream width int height int Returns string GetDimensions(string?) Returns (width, height) dimensions for the given size code. s = small (40x40), m = medium/default (80x80), l = large (120x120). public static (int Width, int Height) GetDimensions(string? size) Parameters size string Returns (int Width, int Height)"
|
|
},
|
|
"api/server/EchoHub.Server.Services.LinkEmbedService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.LinkEmbedService.html",
|
|
"title": "Class LinkEmbedService | EchoHub Documentation",
|
|
"summary": "Class LinkEmbedService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class LinkEmbedService Inheritance object LinkEmbedService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors LinkEmbedService(IHttpClientFactory, ILogger<LinkEmbedService>) public LinkEmbedService(IHttpClientFactory httpClientFactory, ILogger<LinkEmbedService> logger) Parameters httpClientFactory IHttpClientFactory logger ILogger<LinkEmbedService> Methods TryGetEmbedsAsync(string) 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. public Task<List<EmbedDto>?> TryGetEmbedsAsync(string content) Parameters content string Returns Task<List<EmbedDto>>"
|
|
},
|
|
"api/server/EchoHub.Server.Services.MessageEncryptionService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.MessageEncryptionService.html",
|
|
"title": "Class MessageEncryptionService | EchoHub Documentation",
|
|
"summary": "Class MessageEncryptionService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class MessageEncryptionService : IMessageEncryptionService Inheritance object MessageEncryptionService Implements IMessageEncryptionService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors MessageEncryptionService(IConfiguration, ILogger<MessageEncryptionService>) public MessageEncryptionService(IConfiguration configuration, ILogger<MessageEncryptionService> logger) Parameters configuration IConfiguration logger ILogger<MessageEncryptionService> Properties EncryptDatabaseEnabled Whether database content should be encrypted at rest (server setting). public bool EncryptDatabaseEnabled { get; } Property Value bool Methods Decrypt(string) public string Decrypt(string content) Parameters content string Returns string DecryptNullable(string?) public string? DecryptNullable(string? value) Parameters value string Returns string Encrypt(string) public string Encrypt(string plaintext) Parameters plaintext string Returns string EncryptNullable(string?) public string? EncryptNullable(string? value) Parameters value string Returns string"
|
|
},
|
|
"api/server/EchoHub.Server.Services.PresenceTracker.html": {
|
|
"href": "api/server/EchoHub.Server.Services.PresenceTracker.html",
|
|
"title": "Class PresenceTracker | EchoHub Documentation",
|
|
"summary": "Class PresenceTracker Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class PresenceTracker Inheritance object PresenceTracker Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors PresenceTracker() public PresenceTracker() Methods ForceRemoveUser(string) Forcibly remove a user from all tracking. Returns their connection IDs and channels so the caller can broadcast departures and force-disconnect connections. public (List<string> ConnectionIds, List<string> Channels) ForceRemoveUser(string username) Parameters username string Returns (List<string> ConnectionIds, List<string> Channels) GetChannelsForUser(string) public List<string> GetChannelsForUser(string username) Parameters username string Returns List<string> GetConnectionsInChannels(List<string>) Get all unique connection IDs for users who share any of the given channels. public List<string> GetConnectionsInChannels(List<string> channels) Parameters channels List<string> Returns List<string> GetOnlineUserCount() public int GetOnlineUserCount() Returns int GetOnlineUsersInChannel(string) public List<string> GetOnlineUsersInChannel(string channelName) Parameters channelName string Returns List<string> GetUsernameForConnection(string) public string? GetUsernameForConnection(string connectionId) Parameters connectionId string Returns string IsOnline(string) public bool IsOnline(string username) Parameters username string Returns bool JoinChannel(string, string) Returns true if this is a new join, false if the user was already in the channel. public bool JoinChannel(string username, string channelName) Parameters username string channelName string Returns bool LeaveChannel(string, string) public void LeaveChannel(string username, string channelName) Parameters username string channelName string UserConnected(string, Guid, string) public void UserConnected(string connectionId, Guid userId, string username) Parameters connectionId string userId Guid username string UserDisconnected(string) public string? UserDisconnected(string connectionId) Parameters connectionId string Returns string"
|
|
},
|
|
"api/server/EchoHub.Server.Services.ServerDirectoryService.html": {
|
|
"href": "api/server/EchoHub.Server.Services.ServerDirectoryService.html",
|
|
"title": "Class ServerDirectoryService | EchoHub Documentation",
|
|
"summary": "Class ServerDirectoryService Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public sealed class ServerDirectoryService : BackgroundService, IDisposable Inheritance object BackgroundService ServerDirectoryService Implements IDisposable Inherited Members object.GetType() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors ServerDirectoryService(IConfiguration, PresenceTracker, ILogger<ServerDirectoryService>) public ServerDirectoryService(IConfiguration configuration, PresenceTracker presenceTracker, ILogger<ServerDirectoryService> logger) Parameters configuration IConfiguration presenceTracker PresenceTracker logger ILogger<ServerDirectoryService> Methods ExecuteAsync(CancellationToken) protected override Task ExecuteAsync(CancellationToken stoppingToken) Parameters stoppingToken CancellationToken Returns Task StopAsync(CancellationToken) public override Task StopAsync(CancellationToken cancellationToken) Parameters cancellationToken CancellationToken Returns Task"
|
|
},
|
|
"api/server/EchoHub.Server.Services.SignalRBroadcaster.html": {
|
|
"href": "api/server/EchoHub.Server.Services.SignalRBroadcaster.html",
|
|
"title": "Class SignalRBroadcaster | EchoHub Documentation",
|
|
"summary": "Class SignalRBroadcaster Namespace EchoHub.Server.Services Assembly EchoHub.Server.dll public class SignalRBroadcaster : IChatBroadcaster Inheritance object SignalRBroadcaster Implements IChatBroadcaster Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Constructors SignalRBroadcaster(IServiceProvider, PresenceTracker) public SignalRBroadcaster(IServiceProvider serviceProvider, PresenceTracker presenceTracker) Parameters serviceProvider IServiceProvider presenceTracker PresenceTracker Methods ForceDisconnectUserAsync(List<string>, string) public Task ForceDisconnectUserAsync(List<string> connectionIds, string reason) Parameters connectionIds List<string> reason string Returns Task SendChannelNukedAsync(string) public Task SendChannelNukedAsync(string channelName) Parameters channelName string Returns Task SendChannelUpdatedAsync(ChannelDto, string?) public Task SendChannelUpdatedAsync(ChannelDto channel, string? channelName = null) Parameters channel ChannelDto channelName string Returns Task SendErrorAsync(string, string) public Task SendErrorAsync(string connectionId, string message) Parameters connectionId string message string Returns Task SendMessageDeletedAsync(string, Guid) public Task SendMessageDeletedAsync(string channelName, Guid messageId) Parameters channelName string messageId Guid Returns Task SendMessageToChannelAsync(string, MessageDto) public Task SendMessageToChannelAsync(string channelName, MessageDto message) Parameters channelName string message MessageDto Returns Task SendUserBannedAsync(string, string?) public Task SendUserBannedAsync(string username, string? reason) Parameters username string reason string Returns Task SendUserJoinedAsync(string, string, string?) public Task SendUserJoinedAsync(string channelName, string username, string? excludeConnectionId = null) Parameters channelName string username string excludeConnectionId string Returns Task SendUserKickedAsync(string, string, string?) public Task SendUserKickedAsync(string channelName, string username, string? reason) Parameters channelName string username string reason string Returns Task SendUserLeftAsync(string, string) public Task SendUserLeftAsync(string channelName, string username) Parameters channelName string username string Returns Task SendUserStatusChangedAsync(List<string>, UserPresenceDto) public Task SendUserStatusChangedAsync(List<string> channelNames, UserPresenceDto presence) Parameters channelNames List<string> presence UserPresenceDto Returns Task"
|
|
},
|
|
"api/server/EchoHub.Server.Services.html": {
|
|
"href": "api/server/EchoHub.Server.Services.html",
|
|
"title": "Namespace EchoHub.Server.Services | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Services Classes ChannelService ChatService FileCleanupService FileStorageService FileValidationHelper ImageToAsciiService LinkEmbedService MessageEncryptionService PresenceTracker ServerDirectoryService SignalRBroadcaster"
|
|
},
|
|
"api/server/EchoHub.Server.Setup.DataMigrationService.html": {
|
|
"href": "api/server/EchoHub.Server.Setup.DataMigrationService.html",
|
|
"title": "Class DataMigrationService | EchoHub Documentation",
|
|
"summary": "Class DataMigrationService Namespace EchoHub.Server.Setup Assembly EchoHub.Server.dll public static class DataMigrationService Inheritance object DataMigrationService Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods AnsiToColorTags(string) 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} public static string AnsiToColorTags(string text) Parameters text string Returns string RunAsync(IServiceProvider) public static Task RunAsync(IServiceProvider services) Parameters services IServiceProvider Returns Task"
|
|
},
|
|
"api/server/EchoHub.Server.Setup.DatabaseSetup.html": {
|
|
"href": "api/server/EchoHub.Server.Setup.DatabaseSetup.html",
|
|
"title": "Class DatabaseSetup | EchoHub Documentation",
|
|
"summary": "Class DatabaseSetup Namespace EchoHub.Server.Setup Assembly EchoHub.Server.dll public static class DatabaseSetup Inheritance object DatabaseSetup Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods InitializeAsync(IServiceProvider) public static Task InitializeAsync(IServiceProvider services) Parameters services IServiceProvider Returns Task"
|
|
},
|
|
"api/server/EchoHub.Server.Setup.FirstRunSetup.html": {
|
|
"href": "api/server/EchoHub.Server.Setup.FirstRunSetup.html",
|
|
"title": "Class FirstRunSetup | EchoHub Documentation",
|
|
"summary": "Class FirstRunSetup Namespace EchoHub.Server.Setup Assembly EchoHub.Server.dll public static class FirstRunSetup Inheritance object FirstRunSetup Inherited Members object.GetType() object.MemberwiseClone() object.ToString() object.Equals(object) object.Equals(object, object) object.ReferenceEquals(object, object) object.GetHashCode() Methods EnsureAppSettings() public static void EnsureAppSettings()"
|
|
},
|
|
"api/server/EchoHub.Server.Setup.html": {
|
|
"href": "api/server/EchoHub.Server.Setup.html",
|
|
"title": "Namespace EchoHub.Server.Setup | EchoHub Documentation",
|
|
"summary": "Namespace EchoHub.Server.Setup Classes DataMigrationService DatabaseSetup FirstRunSetup"
|
|
},
|
|
"articles/architecture.html": {
|
|
"href": "articles/architecture.html",
|
|
"title": "Architecture | EchoHub Documentation",
|
|
"summary": "Architecture Overview EchoHub follows a decentralized model where each server is fully independent. There is no central authority or account federation. Users create one account per server. The server exposes two protocol interfaces to the same chat backend: IRC Client ──► TCP :6667 ──► IrcGateway ──┐ ├──► ChatService ──► DB + PresenceTracker TUI Client ──► WebSocket ──► ChatHub ─────┘ Both protocols call into a shared IChatService for business logic. Events fan out to all registered IChatBroadcaster implementations (SignalR and IRC). Components EchoHub.Core Shared library containing: Models: User, Channel, Message, RefreshToken DTOs: Record types for API requests/responses Contracts: IChatService (protocol-agnostic chat operations), IChannelService (channel CRUD and membership), IChatBroadcaster (event fan-out interface), IEchoHubClient (SignalR client interface) Constants: ValidationConstants (shared regex patterns), HubConstants EchoHub.Server ASP.NET Core web application: Controllers: REST API endpoints for auth, channels, users, files, server info Hubs: SignalR ChatHub -- thin adapter delegating to IChatService Auth: JWT token service (15-min access tokens, 30-day refresh tokens) Data: EF Core with SQLite Services: ChatService (core business logic), ChannelService (channel CRUD and membership), SignalRBroadcaster, presence tracking, file storage, image-to-ASCII conversion, FileCleanupService (periodic removal of expired uploads), DataMigrationService (startup schema/data evolution) EchoHub.Server.Irc IRC protocol gateway (separate project for clean separation of concerns): IrcGatewayService: BackgroundService with TCP listener on configured port(s), optional TLS IrcCommandHandler: Per-client IRC command dispatch -- handles CAP/SASL, NICK/USER/PASS, JOIN/PART/PRIVMSG/QUIT, NAMES/TOPIC/WHO/WHOIS/AWAY/LIST/MODE/MOTD IrcBroadcaster: IChatBroadcaster implementation that formats chat events as IRC protocol lines, with echo suppression (IRC convention) IrcMessageFormatter: Converts MessageDto to IRC PRIVMSG lines -- splits long text at word boundaries (~400 byte chunks), sends images as ASCII art line-by-line IRC users authenticate with existing EchoHub accounts via PASS/NICK/USER or SASL PLAIN (BCrypt verification against the database). EchoHub.Client Terminal.Gui v2 TUI application: UI: Main window, dialogs, chat renderer with ANSI color support Services: API client with automatic token refresh, SignalR connection wrapper, audio playback (NetCoreAudio), automatic update checker (AlwaysUpToDate) Themes: 13 built-in color themes (including transparent theme with true terminal transparency) Config: Client configuration management with session persistence (\"Remember Me\" refresh tokens) Communication REST API for authentication, profile management, channel CRUD, file uploads SignalR WebSocket for real-time messaging and presence updates (TUI client) IRC TCP for real-time messaging via standard IRC protocol (IRC clients) JWT tokens passed via query string for SignalR authentication IRC authentication via PASS/SASL PLAIN against BCrypt password hashes Broadcaster Pattern The IChatBroadcaster interface allows multiple protocols to receive chat events: SignalRBroadcaster: Wraps IHubContext<ChatHub>, filters out IRC connections IrcBroadcaster: Iterates live IRC connections in a channel, formats events as IRC protocol lines Both are registered in DI and called by ChatService when events occur. This means a message sent from an IRC client appears in the TUI client, and vice versa."
|
|
},
|
|
"articles/encryption.html": {
|
|
"href": "articles/encryption.html",
|
|
"title": "Message Encryption | EchoHub Documentation",
|
|
"summary": "Message Encryption EchoHub uses application-layer AES-256-GCM encryption to protect message content in transit between clients and the server. This is an additional layer on top of TLS, protecting against ISPs, proxies, and any middleman that can inspect HTTPS traffic (e.g. corporate proxies with trusted root CA certificates). How It Works sequenceDiagram participant Sender as TUI Client (Sender) participant Server participant Receiver as TUI Client (Receiver) participant IRC as IRC Client Sender->>Sender: encrypt(plaintext) Sender->>Server: $ENC$v1$... (SignalR) Server->>Server: decrypt → validate/sanitize Server->>Server: fetch embeds on plaintext Server->>Server: (optional) encrypt for DB storage Server->>Server: encrypt(plaintext) with fresh nonce Server->>Receiver: $ENC$v1$... (SignalR broadcast) Receiver->>Receiver: decrypt → display Server->>Server: decrypt for IRC Server->>IRC: plaintext (IRC PRIVMSG) Client encrypts the message before sending it over SignalR Server decrypts to validate content, sanitize newlines, and fetch link embeds Server re-encrypts with a fresh nonce and broadcasts to all connected SignalR clients Clients decrypt the broadcast and display the plaintext IRC clients receive plaintext automatically (the IRC broadcaster decrypts before forwarding) Each encryption uses a random 12-byte nonce, so the same message produces different ciphertext every time. Encryption Key A 256-bit AES key is auto-generated on first server startup and saved to appsettings.json: { \"Encryption\": { \"Key\": \"base64-encoded-32-byte-key\", \"EncryptDatabase\": false } } The key is generated by FirstRunSetup using RandomNumberGenerator.GetBytes(32). If the key is missing or empty when the server starts, a new one is created automatically. Clients fetch the key after login via an authenticated endpoint (GET /api/server/encryption-key). No manual configuration is needed on the client side. Encrypted Content Format Encrypted content uses a self-describing format: $ENC$v1${nonce_base64}${ciphertext+tag_base64} $ENC$v1$ — version prefix (allows future algorithm changes) Nonce — 12 bytes, Base64-encoded, randomly generated per message Ciphertext + Tag — AES-256-GCM output with 16-byte authentication tag appended The authentication tag ensures both confidentiality and integrity — any tampering with the ciphertext is detected during decryption. Database Encryption (Optional) By default, messages are stored as plaintext in the database. Transport encryption still protects everything on the wire, but the SQLite file itself contains readable messages. To encrypt messages at rest, enable the setting: { \"Encryption\": { \"Key\": \"...\", \"EncryptDatabase\": true } } Behavior by Setting Setting DB Storage Transport Key Rotation Risk false (default) Plaintext Encrypted None - stored data is unaffected true Encrypted Encrypted Changing the key makes old messages unreadable Mixed Content The server handles mixed encrypted/plaintext content in the database gracefully. When reading messages: Content starting with $ENC$v1$ is decrypted Everything else is treated as plaintext This means you can safely toggle EncryptDatabase at any time. Old messages remain readable regardless of the current setting. Enabling Encryption at Rest When you set EncryptDatabase: true, only new messages are encrypted going forward. Existing plaintext messages in the database are not retroactively encrypted. This is intentional — it keeps key rotation safe and avoids irreversible bulk changes. Key Rotation Changing the encryption key is safe: Plaintext messages — always readable regardless of key Messages encrypted with the old key — will show [encrypted message — decryption failed] New messages — encrypted with the new key going forward If you need to recover old encrypted messages, restore the original key from a backup of appsettings.json. Since plaintext messages are never retroactively encrypted, you'll never lose access to your entire history from a key change. Security Considerations What This Protects Against Passive network sniffing — messages are encrypted even if captured off the wire ISP/proxy inspection — content is encrypted at the application layer, independent of TLS Database theft (when EncryptDatabase: true) — SQLite file contains only ciphertext Limitations TLS-inspecting proxies — if a corporate proxy terminates TLS with a trusted root CA, it can intercept the key exchange (GET /api/server/encryption-key) and read all traffic. A future upgrade to ECDH key exchange would address this. Server has full access — the server decrypts all messages for processing. This is not end-to-end encryption between users; it's transport encryption between client and server. IRC clients receive plaintext — IRC is an open protocol and third-party clients cannot participate in the encryption scheme. Troubleshooting Messages show [encrypted message — decryption failed, try re-logging to fetch the latest key] The client's encryption key doesn't match the server's. This happens when: The server's encryption key was rotated while the client was connected The client cached a stale key Fix: Disconnect and reconnect (re-login). The client fetches the current key on each login. Messages show [encrypted message — decryption failed] in channel history The server cannot decrypt messages stored in the database. This happens when: EncryptDatabase was enabled, and the key was changed afterwards Fix: Restore the original key from a backup. There is no way to recover messages encrypted with a lost key."
|
|
},
|
|
"articles/getting-started.html": {
|
|
"href": "articles/getting-started.html",
|
|
"title": "Getting Started | EchoHub Documentation",
|
|
"summary": "Getting Started Prerequisites .NET 10 SDK Or grab a self-contained binary from Releases -- no runtime needed. Run the Server dotnet run --project src/EchoHub.Server On first run, the server automatically: Creates appsettings.json from the example config Generates a secure JWT secret Creates the SQLite database with a #general channel Run the Client dotnet run --project src/EchoHub.Client Connect to a server, register an account, and start chatting. Connect via IRC Enable the IRC gateway in the server's appsettings.json: { \"Irc\": { \"Enabled\": true, \"Port\": 6667 } } Then connect with any standard IRC client: irssi -c localhost -p 6667 -w <password> -n <username> IRC users must have an existing EchoHub account. Authentication works via PASS/NICK/USER or SASL PLAIN. Messages flow bidirectionally between IRC and TUI clients. For TLS, set TlsEnabled: true, TlsPort: 6697, and provide a PKCS#12 certificate path. See the Architecture page for details on how the IRC gateway integrates with the chat service. Configuration Server configuration is in appsettings.json (auto-generated on first run). See the example config for all available options. To list your server on the public directory, set Server:PublicServer to true and Server:PublicHost to your server's public address. Build from Source dotnet build src/EchoHub.slnx"
|
|
},
|
|
"articles/notification-sounds.html": {
|
|
"href": "articles/notification-sounds.html",
|
|
"title": "Notification Sounds | EchoHub Documentation",
|
|
"summary": "Notification Sounds EchoHub can play a notification sound when someone @mentions you. This is disabled by default and must be enabled in your profile settings. Enabling Notifications Open your profile (/profile) and check the \"Notification sound on @mention\" checkbox, then save. You can also adjust the Volume (0-100, default 30). All settings are persisted in ~/.echohub/config.json. Customizing the Sound The client ships with a default Notification.mp3 in the Assets folder. To use your own notification sound, replace the file at: <app-directory>/Assets/Notification.mp3 The file must be a valid .mp3 or .wav audio file. The replacement takes effect on the next app launch. Alternatively, set a custom path in ~/.echohub/config.json: { \"notifications\": { \"enabled\": true, \"volume\": 30, \"soundFile\": \"/path/to/your/sound.mp3\" } } When soundFile is set, EchoHub uses that file instead of the bundled default. Disabling Notifications Uncheck the option in your profile, or edit the config directly: { \"notifications\": { \"enabled\": false } }"
|
|
},
|
|
"changelog/index.html": {
|
|
"href": "changelog/index.html",
|
|
"title": "Changelog | EchoHub Documentation",
|
|
"summary": "Changelog Release history for EchoHub. Releases v0.2.5 - Session Persistence, Auto-Updates, Audio & Transparent Theme v0.2.4 - E2E Message Encryption v0.2.3 - Moderation, Embeds & UI Overhaul v0.2.2 - Startup & Shutdown Fixes v0.2.1 - Shutdown & CI Fixes v0.2.0 - IRC Gateway v0.1.1 - Directory Connection Self-Healing v0.1.0 - Initial Release"
|
|
},
|
|
"changelog/v0.1.0.html": {
|
|
"href": "changelog/v0.1.0.html",
|
|
"title": "v0.1.0 - Initial Release | EchoHub Documentation",
|
|
"summary": "v0.1.0 - Initial Release Features Real-time messaging via SignalR JWT authentication with access and refresh tokens Channel management (create, set topic, delete) File and image uploads with magic-byte validation Image-to-ASCII conversion for terminal display Presence tracking (online, away, DND, invisible) 6 built-in TUI themes Rate limiting on auth, upload, and general endpoints Self-contained binary releases for Windows, Linux, and macOS"
|
|
},
|
|
"changelog/v0.1.1.html": {
|
|
"href": "changelog/v0.1.1.html",
|
|
"title": "v0.1.1 - Directory Connection Self-Healing | EchoHub Documentation",
|
|
"summary": "v0.1.1 - Directory Connection Self-Healing Fixes Server now reconnects to the EchoHubSpace directory indefinitely when the API goes down, using exponential backoff (2s → 30s cap) If automatic reconnect is exhausted, the connection is rebuilt from scratch automatically Initial connection attempts also use exponential backoff instead of a fixed 30s delay"
|
|
},
|
|
"changelog/v0.2.0.html": {
|
|
"href": "changelog/v0.2.0.html",
|
|
"title": "v0.2.0 - IRC Gateway | EchoHub Documentation",
|
|
"summary": "v0.2.0 - IRC Gateway Features IRC protocol gateway -- native IRC clients (irssi, WeeChat, HexChat, etc.) can connect to EchoHub servers Cross-protocol messaging -- messages flow bidirectionally between IRC and TUI clients in real time SASL PLAIN authentication -- IRC clients can authenticate via SASL or traditional PASS/NICK/USER Full IRC command support -- JOIN, PART, PRIVMSG, QUIT, NAMES, TOPIC, WHO, WHOIS, AWAY, LIST, MODE, MOTD TLS support -- optional encrypted IRC connections on port 6697 Image-to-IRC formatting -- images appear as ASCII art line-by-line with download URLs Message splitting -- long messages automatically split at word boundaries (~400 byte chunks) Configurable MOTD -- server message of the day for IRC clients Architecture Changes Extracted shared business logic from ChatHub into protocol-agnostic IChatService Introduced IChatBroadcaster pattern for multi-protocol event fan-out ChatHub refactored to thin adapter delegating to IChatService ChannelsController updated to use IChatService for broadcasts New EchoHub.Server.Irc project for clean separation of concerns IChatService and IChatBroadcaster interfaces live in EchoHub.Core/Contracts"
|
|
},
|
|
"changelog/v0.2.1.html": {
|
|
"href": "changelog/v0.2.1.html",
|
|
"title": "v0.2.1 - Shutdown & CI Fixes | EchoHub Documentation",
|
|
"summary": "v0.2.1 - Shutdown & CI Fixes Fixes Fixed server hanging on Ctrl+C when the directory server is unreachable — StopAsync now cancels background services before disposing connections Fixed IRC gateway shutdown blocking indefinitely on unresponsive clients — send operations are now bounded to 2 seconds Fixed CI release workflow not having full git history for building release notes (fetch-depth: 0) Fixed workflow_dispatch trigger breaking change detection when github.event.before is empty Improvements GitHub releases now include a commit list and version diff link instead of generic auto-generated notes GitHub releases link to the full changelog on the docs site"
|
|
},
|
|
"changelog/v0.2.2.html": {
|
|
"href": "changelog/v0.2.2.html",
|
|
"title": "v0.2.2 - Startup & Shutdown Fixes | EchoHub Documentation",
|
|
"summary": "v0.2.2 - Startup & Shutdown Fixes Fixes Fixed server hanging on startup when IRC gateway is enabled — circular DI dependency between IrcGatewayService → IChatService → IChatBroadcaster → IrcBroadcaster caused the DI container to deadlock Fixed SignalRBroadcaster eagerly resolving IHubContext<ChatHub> during DI construction, which could deadlock on some platforms — now lazy-resolves via IServiceProvider on first use Simplified IRC service registration to use standard AddSingleton<IChatBroadcaster, IrcBroadcaster> instead of manual factory, breaking the circular resolution chain Fixed server hanging on Ctrl+C — replaced await using with explicit dispose bounded to 3 seconds, so a stuck HubConnection can no longer block shutdown Reduced host shutdown timeout from 30s (default) to 5s Caught OperationCanceledException in the directory service reconnect loop so cancellation exits immediately instead of propagating through dispose Refactoring Replaced primary constructors with standard constructor injection across all server classes for consistency"
|
|
},
|
|
"changelog/v0.2.3.html": {
|
|
"href": "changelog/v0.2.3.html",
|
|
"title": "v0.2.3 - Moderation, Embeds & UI Overhaul | EchoHub Documentation",
|
|
"summary": "v0.2.3 - Moderation, Embeds & UI Overhaul Features Moderation System Added server roles: Owner, Admin, Mod, Member — first registered user is automatically Owner New /kick, /ban, /unban, /mute, /unmute, /role, /nuke commands for moderators and admins ModerationController with full REST API for role assignment, kicks, bans, mutes, message deletion, and channel nuking Mutes support optional duration (auto-expire) and blocked users cannot log in Role claim included in JWT tokens; role badges shown in the online users panel Kicked and banned users are forcibly disconnected in real time — server cleans up presence, broadcasts departures, and signals client disconnect Works for both SignalR and IRC connections; client shows an error dialog with the reason Private Channels Channels can be created as public or private via a checkbox in the Create Channel dialog Public channels are visible to all users; private channels only appear for members who joined them Persistent channel membership tracked in the database (ChannelMembership table) GET /api/channels returns the combined list: public channels + user's joined private channels Channel creators are automatically added as members OpenGraph Link Embeds Messages containing URLs now show a rich preview below the message text Multiple URLs per message supported (up to 3) — each gets its own embed Server-side fetching: detects URLs in a message, fetches each page, and parses OpenGraph meta tags (og:title, og:description, og:site_name) Embeds are persisted in the database as a JSON array and included in channel history TUI client renders embeds with a ▏ left border bar — site name and border in blue, title in white, description in gray; text word-wraps at actual viewport width IRC gateway receives a text-only embed preview (site name, title, description) Falls back to <title> tag when no OG tags are present; gracefully skips if no useful metadata is found 5-second fetch timeout ensures message delivery is never significantly delayed SSRF protection rejects private/loopback IP addresses before fetching Notification Sounds Incoming messages play a notification sound when the terminal is not focused Embedded MP3 asset with cross-platform playback support Online Users Panel Collapsible right-side panel showing online users in the current channel (toggle with F2) Users displayed with status indicators, role badges, and their custom nickname colors Panel updates on join, leave, and status change events @mention Highlighting @username text rendered in orange accent color in all messages Messages mentioning the current user get a full-line amber background highlight Works across multi-line messages and continuation lines ASCII Art Improvements Half-block character rendering (▀/█) with separate foreground + background colors for 2x vertical resolution Switched from ANSI escape codes to printable color tags ({F:RRGGBB}, {B:RRGGBB}, {X}) — no control bytes in stored content Optional size parameter for /send command: -s (40x40), -m (80x80, default), -l (120x120) IRC gateway converts color tags back to ANSI for IRC client compatibility Client UI Version number shown in the status bar Custom colored rendering for channel list (active indicator, unread count badges) Avatar upload field added to the profile edit dialog (file path or URL) Profile avatar now renders with full color tag support in the profile view dialog Update check notification on connect — shows a system message if a newer GitHub release exists Chat messages no longer show selection/focus highlight Exit shortcut changed from Ctrl+C to Alt+Q — frees Ctrl+C for copy Default history increased from 50 to 100 messages on channel join Fixes Fixed #general channel not visible after adding the IsPublic column — migration default changed to true and startup service ensures it Fixed channels disappearing when creating a new channel — replaced full re-fetch with incremental updates Wired OnChannelUpdated SignalR event so new public channels appear for all connected users in real time Fixed color tag parser using wrong regex group numbers (6,7,8 instead of 1,2,3) — new ASCII art was rendering without colors Full Unicode/emoji support — renderers use Terminal.Gui v2 grapheme cluster API (GraphemeHelper, AddStr) for proper wide character handling Emoji-to-text shortcode conversion for consistent cross-platform rendering Fixed /send and /avatar commands not handling file paths with spaces correctly, even when quoted Server-side newline spam protection — consecutive blank/whitespace-only lines collapsed to 1 and total lines capped at 30 Fixed OG tag regex truncating descriptions containing apostrophes (e.g. \"HueByte's portfolio\" was cut to \"HueByte\") — switched to backreference-based quote pairing Infrastructure New LinkEmbedService on the server — URL detection, HTML fetching (first 64KB), OG tag parsing via compiled regex EmbedDto record added to shared Core DTOs; MessageDto.Embeds list for multiple embeds per message EmbedJson nullable column on the Message table stores serialized embed data as JSON array (max 8KB); DataMigrationService auto-migrates old single-object format Dedicated \"OgFetch\" named HttpClient with bot User-Agent header and 5-second timeout PresenceTracker.ForceRemoveUser() for atomic user cleanup on kick/ban IChatBroadcaster.ForceDisconnectUserAsync() and IEchoHubClient.ForceDisconnect for force-disconnect signaling NotificationSoundService for cross-platform audio playback of embedded notification sounds Startup DataMigrationService automatically converts old ANSI-format messages to the new color tag format on server boot, logging the count of migrated records EmojiHelper utility for emoji-to-shortcode conversion Heartbeat handling in ServerDirectoryService for connection health checks Four new EF Core migrations: AddModerationRoles, AddChannelIsPublic, AddChannelMembership, AddMessageEmbed ChannelMembership table with cascade delete on both channel and user removal"
|
|
},
|
|
"changelog/v0.2.4.html": {
|
|
"href": "changelog/v0.2.4.html",
|
|
"title": "v0.2.4 - E2E Message Encryption | EchoHub Documentation",
|
|
"summary": "v0.2.4 - E2E Message Encryption Features E2E Message Encryption Application-layer AES-256-GCM encryption for all message content between client and server Protects against ISPs, proxies, and any middleman reading chat messages — even if TLS is compromised 256-bit encryption key auto-generated on first server startup and saved to appsettings.json Client fetches the encryption key automatically after login via GET /api/server/encryption-key Client encrypts messages before sending via SignalR; server decrypts for validation and processing Server broadcasts encrypted content to SignalR clients; client decrypts transparently — no user action required Optional database encryption at rest via Encryption:EncryptDatabase setting (disabled by default) When enabled: new messages encrypted before DB storage (existing plaintext messages are not retroactively encrypted) When disabled: messages stored as plaintext, no risk of data loss from key rotation Reads handle mixed content (encrypted + plaintext) regardless of setting — safe to toggle at any time Key rotation is safe: old plaintext stays readable, new messages use the new key IRC gateway automatically decrypts messages before forwarding to IRC clients (plaintext over IRC) Encrypted content format: $ENC$v1${nonce}${ciphertext+tag} (Base64, 12-byte nonce, 16-byte auth tag) Server strips $ENC$ prefix from user-typed messages to prevent format spoofing Graceful fallback: if decryption fails, shows [encrypted message — decryption failed, try re-logging to fetch the latest key] Infrastructure IMessageEncryptionService interface in Core; MessageEncryptionService server implementation and ClientEncryptionService client implementation EncryptionKeyResponse DTO and GET /api/server/encryption-key endpoint (authenticated, rate-limited) FirstRunSetup.EnsureEncryptionKey() auto-generates AES-256 key on first server run Encryption:EncryptDatabase server setting (default false) controls whether messages are encrypted at rest DB column max lengths increased for encrypted content: Message.Content 2000 → 16000, Message.EmbedJson 8000 → 32000 EF Core migration: AddEncryptionSupport Encryption test suite: server-side, client-side, and cross-compatibility tests Documentation article: docs/articles/encryption.md"
|
|
},
|
|
"changelog/v0.2.5.html": {
|
|
"href": "changelog/v0.2.5.html",
|
|
"title": "v0.2.5 - Session Persistence, Auto-Updates, Audio & Transparent Theme | EchoHub Documentation",
|
|
"summary": "v0.2.5 - Session Persistence, Auto-Updates, Audio & Transparent Theme Features Audio Message Support New Audio message type — uploaded audio files (.mp3, .wav, .ogg, .flac, .aac, .m4a, .wma) are automatically detected and categorized TUI client renders audio messages with ♪ [Audio: filename] (Enter to play) indicator Press Enter on an audio message to open the Audio Player dialog with animated wave visualization, play/pause/stop controls, and volume slider Per-type upload limits: 10 MB images, 10 MB audio, 100 MB generic files (with Kestrel request size configured to match) AudioPlaybackService enhanced with pause/resume, volume control, and playback-finished events Fixed: wrapped audio/file messages now remain clickable on all lines (attachment metadata propagated through word-wrap) IRC gateway formats audio messages as ♪ [Audio: filename] url Server detects audio files by extension via FileValidationHelper.IsAudioFile() File Downloads Press Enter on a file message in the TUI client to download and open it with the system default application ApiClient.DownloadFileAsync() streams file downloads from the server File and audio messages in the chat list now show colored indicators with interaction hints File Cleanup Service FileCleanupService (BackgroundService) periodically removes old uploaded files Configurable via Storage:CleanupIntervalHours (default 1h) and Storage:RetentionDays (default 30d) Data Migration Service DataMigrationService runs at startup to handle schema/data evolution Ensures #general channel and pre-existing channels are marked public Migrates legacy ANSI escape codes in image messages to printable color tags ({F:RRGGBB}, {B:RRGGBB}, {X}) Migrates legacy single-object EmbedJson to array format Promotes usernames listed in Server:Admins config to Admin role True Transparent Background Transparent theme now uses the terminal's native background instead of solid black Powered by Color.None (alpha=0) which emits ANSI CSI 49m (default background) instead of explicit RGB Terminal transparency, acrylic, wallpaper effects now show through the TUI Dialogs retain solid DarkGray background for readability Uses local Terminal.Gui fork (submodule) with transparent color support pending upstream merge (gui-cs/Terminal.Gui#4234) Enhanced Status Bar Status bar now shows EchoHub branding at the start Connection state is color-coded: green (Connected), red (Disconnected), yellow (transitional states like Connecting, Reconnecting, Authenticating) Current channel shows its type: #channel - public or #channel - private Remember Me (Session Persistence) \"Remember me\" checkbox in the connect dialog — saves a 30-day refresh token so users can reconnect without entering their password Saved servers with active sessions show [session] indicator in the connect dialog and saved servers list Token-based login: selecting a saved server with a session lets you click Login with an empty password Graceful expiry handling: if the saved session is expired or revoked, shows an error and prompts for password Refresh token rotation: rotated tokens are automatically persisted to config so the session stays valid across refreshes New \"Logout\" menu item (Server menu): revokes the refresh token server-side and clears the saved session Removed dead SavedServer.Token field (stored 15-min access token that was never read back) Automatic Update Checking UpdateChecker rewritten to use the AlwaysUpToDate library for self-updating Polls the EchoHub version manifest hourly (active only in RELEASE builds) UpdateConfirmDialog shows current vs. available version with Update/Cancel buttons UpdateProgressDialog displays real-time download progress bar Errors are logged via Serilog instead of being silently swallowed Windows Installer New Inno Setup script (installer/Installer.iss) to build a Windows installer Auto-reads product version from the built EXE User-level install by default (no admin required), with admin override option Creates desktop and quick-launch shortcuts (optional) Supports English and German languages Application Icons New hue_icon branding assets (ICO, PNG, SVG) in assets/ Application icon set on both Client and Server projects #general Channel Protection #general channel is now auto-recreated if somehow missing (both in GetChannels endpoint and JoinChannel flow) Users cannot /leave the #general channel (client-side guard) Connecting while already connected now prompts to disconnect first instead of silently leaking the previous connection Fixes IRC Gateway Fixed: IRC JOIN history replay showed encrypted gibberish — IrcCommandHandler.HandleJoinAsync now decrypts channel history before formatting for IRC clients (history was encrypted for SignalR transport but sent raw to IRC) Fixed: JoinedChannels race condition — IrcClientConnection.JoinedChannels replaced with thread-safe methods (JoinChannel, LeaveChannel, IsInChannel, GetJoinedChannels) using lock synchronization; prevents crashes when broadcaster threads read while the command handler writes Fixed: RequireRegistered fire-and-forget — converted from sync bool to async Task<bool> (RequireRegisteredAsync) so the error reply is properly awaited before the handler returns ChannelService Extraction Extracted channel management logic from ChannelsController and ChatService into a dedicated IChannelService / ChannelService ChannelsController is now a thin adapter — delegates CRUD operations to IChannelService and maps ChannelError to HTTP status codes ChatService.JoinChannelAsync delegates channel validation + membership to IChannelService.EnsureChannelMembershipAsync() New ChannelOperationResult result type with ChannelError enum for typed error handling across service boundaries IRC gateway uses IChannelService for topic queries and channel listing (instead of IChatService) EchoHub Branding Status bar \"EchoHub\" text now uses golden color (218, 165, 32) Infrastructure Audio MIME types in FilesController (mp3, wav, ogg, flac, aac, m4a, wma) CI workflows updated to handle Terminal.Gui submodule nuget.config workaround (rm -f step) Root nuget.config added for package source management Terminal.Gui formatting excluded from CI format checks Recursive submodule fetching enabled in CI workflows Server:Admins config array in appsettings.example.json for designating admin usernames Storage:CleanupIntervalHours and Storage:RetentionDays added to appsettings.example.json FakeChannelService test helper added for IRC unit tests Test suites: ChatLine, CommandHandler, DataMigrationService, FileValidationHelper, ImageToAsciiService, IrcMessageFormatter, JwtTokenService, LinkEmbedService IRC abstraction layer test suite: IrcMessage parsing, IrcMessageFormatter, IrcClientConnection, IrcCommandHandler, IrcBroadcaster Test helpers: TestDuplexStream, TestIrcConnectionFactory, FakeChatService, FakeChannelService, FakeEncryptionService for IRC unit testing without network I/O 346 total tests"
|
|
},
|
|
"index.html": {
|
|
"href": "index.html",
|
|
"title": "EchoHub Documentation | EchoHub Documentation",
|
|
"summary": "EchoHub Documentation Welcome to the EchoHub documentation. EchoHub is a decentralized, IRC-style chat platform. Self-hosted, terminal-first, with a built-in IRC gateway so native IRC clients can connect alongside the TUI client. Website: echohub.voidcube.cloud | Public Servers: Server Directory Quick Links Getting Started - Set up and run EchoHub Architecture - System design and IRC gateway API Reference - Generated C# API documentation Changelog - Release history"
|
|
}
|
|
} |