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>, LinkEmbedService, IMessageEncryptionService, ILogger<ChatService>)
public ChatService(IServiceScopeFactory scopeFactory, PresenceTracker presenceTracker, IEnumerable<IChatBroadcaster> broadcasters, LinkEmbedService embedService, IMessageEncryptionService encryption, ILogger<ChatService> logger)
Parameters
scopeFactory IServiceScopeFactory
presenceTracker PresenceTracker
broadcasters IEnumerable<IChatBroadcaster>
embedService LinkEmbedService
encryption IMessageEncryptionService
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>