コード例 #1
0
ファイル: BotCommandProvider.cs プロジェクト: EnaEd/GoGBot
        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")
            };
        }
    }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
            }
        }