38 lines
963 B
C#
38 lines
963 B
C#
namespace Gameboard.ShogiUI.Sockets.Models
|
|
{
|
|
/// <summary>
|
|
/// A representation of a Session without the board and game-rules.
|
|
/// </summary>
|
|
public class SessionMetadata
|
|
{
|
|
public string Name { get; }
|
|
public User Player1 { get; }
|
|
public User? Player2 { get; private set; }
|
|
public bool IsPrivate { get; }
|
|
|
|
public SessionMetadata(string name, bool isPrivate, User player1, User? player2 = null)
|
|
{
|
|
Name = name;
|
|
IsPrivate = isPrivate;
|
|
Player1 = player1;
|
|
Player2 = player2;
|
|
}
|
|
public SessionMetadata(Session sessionModel)
|
|
{
|
|
Name = sessionModel.Name;
|
|
IsPrivate = sessionModel.IsPrivate;
|
|
Player1 = sessionModel.Player1;
|
|
Player2 = sessionModel.Player2;
|
|
}
|
|
|
|
public void SetPlayer2(User user)
|
|
{
|
|
Player2 = user;
|
|
}
|
|
|
|
public bool IsSeated(User user) => user.Id == Player1.Id || user.Id == Player2?.Id;
|
|
|
|
public ServiceModels.Types.Game ToServiceModel() => new(Name, Player1.DisplayName, Player2?.DisplayName);
|
|
}
|
|
}
|