Table of Contents

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>