87 lines
1.7 KiB
C#
87 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ChatRoomServer.Main.Entities
|
|
{
|
|
using System.IO;
|
|
|
|
class MessageUser
|
|
{
|
|
public MessageUser(string username, string nickname)
|
|
{
|
|
UserName = username;
|
|
NickName = nickname;
|
|
}
|
|
|
|
public string UserName { get; set; }
|
|
|
|
public string NickName { get; set; }
|
|
}
|
|
|
|
class MessageItem
|
|
{
|
|
public MessageItem()
|
|
{
|
|
Time = DateTime.Now;
|
|
}
|
|
|
|
public MessageItem(
|
|
|
|
SystemMessageType? sysMsgType = null,
|
|
UserMessageType? userMsgType = null,
|
|
string action = null,
|
|
bool success = true,
|
|
MessageUser fromUser = null,
|
|
string content = null
|
|
) : this()
|
|
{
|
|
SystemMessage = sysMsgType != null;
|
|
SysMsgType = sysMsgType ?? SystemMessageType.Unknown;
|
|
UserMsgType = userMsgType ?? UserMessageType.Unknown;
|
|
Action = action;
|
|
Success = success;
|
|
From = fromUser;
|
|
Content = content;
|
|
|
|
if (sysMsgType.HasValue && From == null)
|
|
{
|
|
From = new MessageUser("*system", "系统");
|
|
}
|
|
}
|
|
|
|
public long Id { get; set; }
|
|
|
|
public string Action { get; set; }
|
|
|
|
public bool Success { get; set; }
|
|
|
|
public DateTime Time { get; set; }
|
|
|
|
public bool SystemMessage { get; set; }
|
|
|
|
public SystemMessageType SysMsgType { get; set; }
|
|
|
|
public UserMessageType UserMsgType { get; set; }
|
|
|
|
public string Content { get; set; }
|
|
|
|
public string Color { get; set; }
|
|
|
|
public string[] Images { get; set; }
|
|
|
|
|
|
public MessageUser From { get; set; }
|
|
|
|
public MessageUser[] ToUsers { get; set; }
|
|
|
|
public byte[] ToBuffer() => _buffer ?? (_buffer = EntityUtility.ToBuffer(this));
|
|
|
|
public static MessageItem Decode(byte[] buffer) => EntityUtility.FromBuffer(buffer);
|
|
|
|
byte[] _buffer;
|
|
}
|
|
}
|