# Interface IUserService | EchoHub Documentation

# Interface IUserService

Namespace
  EchoHub.Core.Contracts

Assembly
  EchoHub.Core.dll

    public interface IUserService

## Methods

### AuthenticateUserAsync(string, string)

    Task<UserOperationResult> AuthenticateUserAsync(string username, string password)

#### Parameters

`username` string
`password` string

#### Returns

Task<UserOperationResult>

### GetUserByIdAsync(Guid)

    Task<UserProfileDto?> GetUserByIdAsync(Guid userId)

#### Parameters

`userId` Guid

#### Returns

Task<UserProfileDto>

### GetUserProfileAsync(string)

    Task<UserProfileDto?> GetUserProfileAsync(string username)

#### Parameters

`username` string

#### Returns

Task<UserProfileDto>

### RegisterUserAsync(string, string, string?, string?)

    Task<UserOperationResult> RegisterUserAsync(string username, string password, string? displayName = null, string? inviteCode = null)

#### Parameters

`username` string
`password` string
`displayName` string
`inviteCode` string

#### Returns

Task<UserOperationResult>

### SetAvatarAsync(Guid, string)

    Task<UserOperationResult> SetAvatarAsync(Guid userId, string asciiArt)

#### Parameters

`userId` Guid
`asciiArt` string

#### Returns

Task<UserOperationResult>

### UpdateProfileAsync(Guid, string?, string?, string?)

    Task<UserOperationResult> UpdateProfileAsync(Guid userId, string? displayName, string? bio, string? nicknameColor)

#### Parameters

`userId` Guid
`displayName` string
`bio` string
`nicknameColor` string

#### Returns

Task<UserOperationResult>