25 lines
814 B
C#

namespace ChatRoom.Centralized.Shared.ObjectModels;
public class MessageInfo
{
public required Guid MessageId { get; set; }
public required Guid UserId { get; set; }
public required DateTimeOffset SentAt { get; set; }
public required string Contents { get; set; }
public void WriteData(BinaryWriter writer)
{
writer.Write(MessageId.ToByteArray());
writer.Write(UserId.ToByteArray());
writer.Write(SentAt.ToUnixTimeMilliseconds());
writer.Write(Contents);
}
public static MessageInfo ReadData(BinaryReader reader) => new()
{
MessageId = new(reader.ReadBytes(16)),
UserId = new(reader.ReadBytes(16)),
SentAt = DateTimeOffset.FromUnixTimeMilliseconds(reader.ReadInt64()),
Contents = reader.ReadString()
};
}