public async Task ExecuteAsync(Message message, TelegramBotClient client, MessageContentModel messageContent) { var chatId = message.Chat.Id; _ = messageContent.ContentType switch { Shared.Enums.Enum.ContentType.Text => await client.SendTextMessageAsync(chatId, $"this is for {messageContent.Theme}\n {((ForismaticModel)messageContent.ContentData).QuoteText}\n\t\t\t{((ForismaticModel)messageContent.ContentData).QuoteAuthor}\n be happy dude)"), _ => await client.SendTextMessageAsync(chatId, $"this type hasn't implemented yet") }; } }
public async Task <MessageContentModel> GetMessageContent(int msgId) { var ret = new MessageContentModel { IsSucceeded = true }; var(user, privilege) = await GetUserPrivilegeAsync(); if (user == null) { ret.IsSucceeded = false; ret.ErrorMessage = "没有登录"; return(ret); } using (var db = new ApplicationDbContext(_dbContextOptions)) { var msg = db.Message.Include(i => i.MessageContent).FirstOrDefault(i => i.Id == msgId); if (msg == null) { ret.IsSucceeded = false; ret.ErrorMessage = "消息不存在"; return(ret); } if (msg.FromUserId != user.Id && msg.ToUserId != user.Id) { ret.IsSucceeded = false; ret.ErrorMessage = "没有权限"; return(ret); } var originalStatus = msg.Status; if (msg.ToUserId == user.Id) { msg.Status = 2; await db.SaveChangesAsync(); } var userId = msg.FromUserId == user.Id ? msg.ToUserId : msg.FromUserId; ret.Id = msg.Id; ret.Content = msg.MessageContent.Content; ret.Status = originalStatus; ret.RawSendTime = msg.SendTime; ret.Direction = msg.ToUserId == user.Id ? 2 : 1; ret.Type = msg.Type; ret.Title = msg.Title; ret.UserId = userId; ret.UserName = db.Users.Select(i => new { i.Id, i.UserName }).FirstOrDefault(i => i.Id == userId)?.UserName; } return(ret); }
public ActionResult GetChatContent(string guid, int page) { int numberOfMessageInOnePage = 20; Guid friendId = Guid.Parse(guid); Guid userID = (Guid)Session["UserID"]; using (var db = new WebChatEntities()) { //Change status var listMessage = db.messages.Where(s => s.cus_send_id == friendId && s.cus_receive_id == userID && (s.message_status == 0 || s.message_status == 1)).ToList(); foreach (var mes in listMessage) { mes.message_status = 2; } db.SaveChanges(); //Get content FriendAndChatContentModel friendInfo = new FriendAndChatContentModel(); var userInfo = db.customers.Where(s => s.app_user_id == userID).FirstOrDefault(); friendInfo.AvatarCurrent = userInfo.avatar; var temp = db.customers.Where(s => s.app_user_id == friendId).FirstOrDefault(); friendInfo.FriendId = temp.app_user_id; friendInfo.AvatarFriend = temp.avatar; friendInfo.Fullname = temp.fullname; friendInfo.Status_online = temp.status_online; friendInfo.Last_online = temp.last_online.ToString("o"); var messages = db.messages.Where(s => (s.cus_send_id == userID && s.cus_receive_id == friendId) || (s.cus_send_id == friendId && s.cus_receive_id == userID)).OrderByDescending(s => s.send_time) .Skip(numberOfMessageInOnePage * (page - 1)).Take(numberOfMessageInOnePage).OrderBy(s => s.send_time).ToList(); friendInfo.Messages = new List <MessageContentModel>(); foreach (var message in messages) { MessageContentModel messageContent = new MessageContentModel(); messageContent.Content = message.message1; messageContent.Send_time = message.send_time.ToString("o"); messageContent.Message_status = message.message_status; messageContent.IsSend = message.cus_send_id == userID ? true : false; friendInfo.Messages.Add(messageContent); } return(Json(friendInfo)); } }