Пример #1
0
        public async Task AddReplyAsync()
        {
            string content = await editor.GetHTML();

            if (content == "<p><br></p>")
            {
                msg = "You cannot send empty message";
                return;
            }
            msg = null;

            isLoading = true;
            var reply = new MMessageReply()
            {
                MessageId = Message.Id
            };

            reply.Content = content;
            var response = await HttpClient.PostAsJsonAsync("api/messages/replies", reply);

            Message.Replies.Add(await response.Content.ReadFromJsonAsync <MMessageReply>());
            await editor.LoadHTMLContent(string.Empty);

            isLoading = false;
        }
Пример #2
0
        public async Task UpdateMessageReplyAsync(MMessageReply reply)
        {
            const string sql = "UPDATE dbo.MessageReplies SET Content = @Content, LastUpdate = SYSDATETIME() " +
                               "WHERE Id = @Id;";

            await connection.ExecuteAsync(sql, reply);
        }
Пример #3
0
        public async Task <MMessageReply> AddMessageReplyAsync(MMessageReply reply)
        {
            const string sql = "INSERT INTO dbo.MessageReplies (MessageId, UserId, Content) " +
                               "OUTPUT INSERTED.Id, INSERTED.MessageId, INSERTED.UserId, INSERTED.Content, INSERTED.LastUpdate, " +
                               "INSERTED.CreateDate " +
                               "VALUES (@MessageId, @UserId, @Content);";

            return(await connection.QuerySingleAsync <MMessageReply>(sql, reply));
        }
Пример #4
0
        public async Task <IActionResult> PutMessageReplyAsync([FromBody] MMessageReply reply)
        {
            if (!await messagesRepository.IsMessageReplyUserAsync(reply.Id, int.Parse(User.Identity.Name)))
            {
                return(BadRequest());
            }

            await messagesRepository.UpdateMessageReplyAsync(reply);

            return(Ok());
        }
Пример #5
0
        public async Task <IActionResult> PostMessageReplyAsync([FromBody] MMessageReply reply)
        {
            int userId = int.Parse(User.Identity.Name);

            if (!await messagesRepository.IsMessageUserAsync(reply.MessageId, userId))
            {
                return(BadRequest());
            }

            reply.UserId = userId;
            reply        = await messagesRepository.AddMessageReplyAsync(reply);

            await discordService.SendMessageReplyAsync(reply, Request.Headers["Origin"]);

            return(Ok(reply));
        }
Пример #6
0
        public async Task SendMessageReplyAsync(MMessageReply reply, string baseUrl)
        {
            var msg = await messagesRepository.GetMessageAsync(reply.MessageId);

            var sender = msg.FromUserId == reply.UserId ? msg.FromUser : msg.ToUser;

            var discordWebhookUrl = await usersRepository.GetUserDiscordWebhookUrl(msg.FromUserId == reply.UserId?msg.ToUserId : msg.FromUserId);

            if (string.IsNullOrEmpty(discordWebhookUrl))
            {
                return;
            }

            var eb = new EmbedBuilder();

            eb.WithColor(Color.Blue);
            eb.WithUrl(baseUrl + "/messages/" + msg.Id);
            eb.WithTitle($"New Reply Message #{msg.Id}");
            eb.WithDescription($"{sender.Name} sent a new reply to message: **{msg.Title}**");
            eb.WithFooter(sender.Name);
            eb.WithCurrentTimestamp();

            SendEmbed(discordWebhookUrl, eb.Build());
        }
Пример #7
0
        public async Task DeleteReplyAsync(MMessageReply reply)
        {
            await HttpClient.DeleteAsync("api/messages/replies/" + reply.Id);

            Message.Replies.Remove(reply);
        }