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());
            }
        }
Exemple #2
0
        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));
        }