Reintroduces separate contexts for users, channels, connections (now split into sessions and connections) and user-channel associations. It builds which is as much assurance as I can give about the stability of this commit, but its also the bare minimum of what i like to commit sooooo A lot of things still need to be broadcast through events throughout the application in order to keep states consistent but we'll cross that bridge when we get to it. I really need to stop using that phrase thingy, I'm overusing it.
32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
namespace SharpChat.Users;
|
|
|
|
public class User(
|
|
string userId,
|
|
string userName,
|
|
ColourInheritable colour,
|
|
int rank,
|
|
UserPermissions perms,
|
|
string nickName = "",
|
|
UserStatus status = UserStatus.Online,
|
|
string statusText = ""
|
|
) {
|
|
public string UserId { get; } = userId;
|
|
public string UserName { get; internal set; } = userName;
|
|
public ColourInheritable Colour { get; internal set; } = colour;
|
|
public int Rank { get; internal set; } = rank;
|
|
public UserPermissions Permissions { get; internal set; } = perms;
|
|
public string NickName { get; internal set; } = nickName;
|
|
public UserStatus Status { get; internal set; } = status;
|
|
public string StatusText { get; internal set; } = statusText;
|
|
|
|
public bool NameEquals(string name) {
|
|
return string.Equals(name, UserName, StringComparison.OrdinalIgnoreCase)
|
|
|| string.Equals(name, NickName, StringComparison.OrdinalIgnoreCase);
|
|
}
|
|
|
|
public string GetDMChannelNameWith(User other) {
|
|
return string.Compare(UserId, other.UserId, StringComparison.Ordinal) > 0
|
|
? $"@{other.UserId}-{UserId}"
|
|
: $"@{UserId}-{other.UserId}";
|
|
}
|
|
}
|