Light12306/ChatRoomServer.Main/Entities/MessageItem.cs

87 lines
1.7 KiB
C#
Raw Normal View History

2015-07-01 16:18:25 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ChatRoomServer.Main.Entities
{
using System.IO;
2015-07-08 17:24:45 +08:00
class MessageUser
{
public MessageUser(string username, string nickname)
{
UserName = username;
NickName = nickname;
}
public string UserName { get; set; }
public string NickName { get; set; }
}
2015-07-01 16:18:25 +08:00
class MessageItem
{
2015-07-08 17:24:45 +08:00
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; }
2015-07-01 16:18:25 +08:00
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; }
2015-07-08 17:24:45 +08:00
public MessageUser From { get; set; }
2015-07-01 16:18:25 +08:00
2015-07-08 17:24:45 +08:00
public MessageUser[] ToUsers { get; set; }
2015-07-01 16:18:25 +08:00
2015-07-08 17:24:45 +08:00
public byte[] ToBuffer() => _buffer ?? (_buffer = EntityUtility.ToBuffer(this));
2015-07-01 16:18:25 +08:00
public static MessageItem Decode(byte[] buffer) => EntityUtility.FromBuffer(buffer);
2015-07-08 17:24:45 +08:00
byte[] _buffer;
2015-07-01 16:18:25 +08:00
}
}