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; }
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); }
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)); }
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()); }
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)); }
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()); }
public async Task DeleteReplyAsync(MMessageReply reply) { await HttpClient.DeleteAsync("api/messages/replies/" + reply.Id); Message.Replies.Remove(reply); }