public IActionResult IncrementMessageNotificationCount([FromBody] MessageReadUnreadDTO ajaxPackage) { try { Guid guid = Guid.Parse(ajaxPackage.Id); var messageThreadRetrieved = _context.MessageThread.Single(m => m.id == guid); if (ajaxPackage.IsSender && messageThreadRetrieved.SenderUnreadMessageCount >= 0) { messageThreadRetrieved.SenderUnreadMessageCount += 1; _messageThreadRepository.Save(); Clients.Group(messageThreadRetrieved.SenderEmail).UpdateOverallNotificationCount(); } else if (messageThreadRetrieved.RecieverUnreadMessageCount >= 0) { messageThreadRetrieved.RecieverUnreadMessageCount += 1; _messageThreadRepository.Save(); Clients.Group(messageThreadRetrieved.RecieverEmail).UpdateOverallNotificationCount(); } return(new OkResult()); } catch { return(new BadRequestResult()); } }
public IActionResult MarkMessageAsRead([FromBody] MessageReadUnreadDTO messageReadUnreadDTO) { Guid guid = Guid.Parse(messageReadUnreadDTO.Id); try { Message message = _messageRepository.GetMessageByID(guid); if (message == null) { return(null); } _messageRepository.MessageRead(guid, messageReadUnreadDTO.IsSender); _messageRepository.Save(); return(new OkObjectResult(true)); } catch (KeyNotFoundException) { return(null); } catch { return(null); } }
public IActionResult GetMessageThreadNotificationCount([FromBody] MessageReadUnreadDTO ajaxPackage) { var guid = Guid.Parse(ajaxPackage.Id); int count = 0; var messageThread = _context.MessageThread.Single(u => u.id == guid); foreach (Message message in messageThread.messages) { if ((message.SenderUnread && ajaxPackage.IsSender) || (message.RecieverUnread && ajaxPackage.IsSender == false)) { count += 1; } } return(new OkObjectResult(count)); }