Table of Contents

Class ChatService

Namespace
EchoHub.Server.Services
Assembly
EchoHub.Server.dll
public class ChatService : IChatService
Inheritance
ChatService
Implements
Inherited Members

Constructors

ChatService(IServiceScopeFactory, PresenceTracker, IEnumerable<IChatBroadcaster>, ILogger<ChatService>)

public ChatService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, IEnumerable<IChatBroadcaster> broadcasters, ILogger<ChatService> logger)

Parameters

scopeFactory IServiceScopeFactory
presenceTracker PresenceTracker
broadcasters IEnumerable<IChatBroadcaster>
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>>

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)>

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>