/// <summary> /// 聊天室实体 /// </summary> public class ChatDTO { /// <summary> /// 聊天室ID /// </summary> public Guid ChatID { get; set; } /// <summary> /// 访客 /// </summary> public Visitor Visitor { get; set; } /// <summary> /// 客服 /// </summary> public List<Agent> Agents { get; set; } public DateTime CreateTime { get; set; } } /// <summary> /// visitor /// </summary> public class Visitor { public int ID { get; set; } public string Name { get; set; } } /// <summary> /// agent /// </summary> public class Agent { public int ID { get; set; } public string Name { get; set; } } /// <summary> /// 消息实体 /// </summary> public class Messages { //主键 public Guid MID { get; set; } //聊天室ID public Guid ChatID { get; set; } //发送者的ID public int ID { get; set; } //发送者角色,客服or访客 public int Role { get; set; } //消息内容 public string Content { get; set; } //发送时间 public DateTime SendTime { get; set; } } public interface IChatService { /// <summary> /// 创建聊天室 /// </summary> /// <returns></returns> Guid CreateChat(Visitor visitor); /// <summary> /// 关闭聊天室 /// </summary> /// <param name="chatid"></param> /// <returns></returns> bool CloseChat(Guid chatid); /// <summary> /// 添加客服 /// </summary> /// <param name="agent"></param> /// <returns></returns> bool AddAgent(Agent agent); /// <summary> /// 客服离开 /// </summary> /// <param name="id">客服ID</param> /// <returns></returns> bool RemoveAgent(int id); /// <summary> /// 发送消息 /// </summary> /// <param name="chatid">聊天室ID</param> /// <param name="id">发送者的ID</param> /// <param name="role">发送者角色,客服or访客</param> /// <param name="content">消息内容</param> void SendMsg(Guid chatid, int id, int role, string content); } public class ChatService : IChatService { //当前存在的聊天室 List<ChatDTO> chatDTOs = new List<ChatDTO>(); //已发送的消息 List<Messages> messages = new List<Messages>(); public bool AddAgent(Agent agent) { throw new NotImplementedException(); } public bool CloseChat(Guid chatid) { throw new NotImplementedException(); } public Guid CreateChat(Visitor visitor) { var curChat = chatDTOs.Where(c => c.Visitor == visitor).FirstOrDefault(); if (curChat != null) { return curChat.ChatID; } else { ChatDTO chat = new ChatDTO() { ChatID = Guid.NewGuid(), Visitor = visitor, CreateTime = DateTime.Now }; chatDTOs.Add(chat); return chat.ChatID; } } public bool RemoveAgent(int id) { throw new NotImplementedException(); } public void SendMsg(Guid chatid, int id, int role, string content) { throw new NotImplementedException(); } }