public IActionResult Send([FromBody] MessageViewModel mVMessage) { IActionResult result = new ObjectResult(false); GenericResult removeResult = null; var authenticationHeader = Request?.Headers["Authorization"]; var token = authenticationHeader?.FirstOrDefault().Split(' ')[1]; var subject = _jwtFormater.GetSubject(token); var user = _userRepository.GetSingleByUsername(subject); var message = new Message() { Text = mVMessage.Text, SenderId = user.Id, ChatId = mVMessage.ChatId, Date = DateTime.Now.ToString() }; try { _messageRepository.Add(message); _messageRepository.Commit(); removeResult = new GenericResult() { Succeeded = true, Message = message.SenderId.ToString() }; } catch (Exception ex) { removeResult = new GenericResult() { Succeeded = false, Message = ex.Message }; _loggingRepository.Add(new Error() { Severity = "Error", Message = ex.Message, StackTrace = ex.StackTrace, DateCreated = DateTime.Now }); _loggingRepository.Commit(); } result = new ObjectResult(removeResult); this.Clients.Group(message.ChatId.ToString()).InvokeAsync("AddChatMessage", message); return(result); }
/// <summary> /// 意見メッセージの保存 /// </summary> /// <param name="sendTo">送信対象者</param> /// <param name="detail">メッセージ本文</param> public bool Save(string sendTo, string detail) { try { var result = false; // トランザクション開始 repository.BeginTransaction(); // DB更新 result = repository.Save(Message.Create(sendTo, detail)); // 更新結果を受けてCommit/Rollback if (result) { repository.Commit(); } else { repository.Rollback(); } return(result); } catch (Exception ex) { repository.Rollback(); throw ex; } }
public override MessageModel Update(string id, MessageModel model) { MessageModel message = GetOneEnabled(id); if (message != null) { message.Copy(model); } _repo.Commit(); return(message); }
public void ReadMessage(List <long> messageIds, long profileId, long profileIdTo) { foreach (var id in messageIds) { _messageRepository.ReadMessage(id, profileId); } _messageRepository.Commit(); var chats = _chatRepository.GetChats(profileIdTo); var myChats = _chatRepository.GetChats(profileId); foreach (var chat in myChats) { Clients.Client(chat.ConnectionId).SendReadMessage(messageIds); } foreach (var chat in chats) { Clients.Client(chat.ConnectionId).SendReadMessage(messageIds); } }
public IActionResult OnPost(Guid threadId) { Thread = threadRepository.GetById(threadId); if (!ModelState.IsValid) { return(Page()); } if (Message.Id != Guid.Parse("00000000-0000-0000-0000-000000000000")) { messageRepository.Update(Message); } else { messageRepository.Add(Message, Thread); } messageRepository.Commit(); TempData["Notice"] = "Message saved"; return(RedirectToPage("./Detail", new { threadId = threadId })); }