public MessageResult GetMessage(int messageId)
        {
            var department = _departmentsService.GetDepartmentById(DepartmentId, false);

            var  savedMessage  = _messageService.GetMessageById(messageId);
            bool outboxMessage = false;

            if (savedMessage != null)
            {
                if (!_authorizationService.CanUserViewMessage(UserId, savedMessage))
                {
                    Unauthorized();
                }

                if (savedMessage.SendingUserId == UserId)
                {
                    outboxMessage = true;
                }

                _messageService.ReadMessageRecipient(messageId, UserId);

                var message = new MessageResult();
                message.Mid = savedMessage.MessageId;
                message.Sub = savedMessage.Subject;
                message.Sys = savedMessage.SystemGenerated;

                if (!String.IsNullOrEmpty(savedMessage.Body))
                {
                    message.Bdy = HtmlToTextHelper.ConvertHtml(savedMessage.Body);
                }

                message.Son  = savedMessage.SentOn.TimeConverter(department);
                message.SUtc = savedMessage.SentOn;
                message.Typ  = savedMessage.Type;
                message.Exp  = savedMessage.ExpireOn;

                if (!String.IsNullOrWhiteSpace(savedMessage.SendingUserId))
                {
                    message.Uid = savedMessage.SendingUserId;
                }

                if (!outboxMessage)
                {
                    var respose = savedMessage.MessageRecipients.FirstOrDefault(x => x.UserId == UserId);

                    if (respose != null)
                    {
                        if (!String.IsNullOrWhiteSpace(respose.Response))
                        {
                            message.Rsp = true;
                            message.Rty = respose.Response;
                        }

                        message.Not = respose.Note;
                        message.Ron = respose.ReadOn;
                    }
                    else
                    {
                        message.Ron = savedMessage.ReadOn;
                    }

                    message.Rcpts = new List <MessageRecipientResult>();

                    foreach (var recipient in savedMessage.MessageRecipients)
                    {
                        var recipResult = new MessageRecipientResult();
                        recipResult.Mid = savedMessage.MessageId;
                        recipResult.Uid = recipient.UserId;
                        recipResult.Rty = recipient.Response;
                        recipResult.Not = recipient.Note;
                        recipResult.Ron = recipient.ReadOn;

                        message.Rcpts.Add(recipResult);
                    }
                }
                else
                {
                    message.Rcpts = new List <MessageRecipientResult>();

                    foreach (var recipient in savedMessage.MessageRecipients)
                    {
                        var recipResult = new MessageRecipientResult();
                        recipResult.Mid = savedMessage.MessageId;
                        recipResult.Uid = recipient.UserId;
                        recipResult.Rty = recipient.Response;
                        recipResult.Not = recipient.Note;
                        recipResult.Ron = recipient.ReadOn;

                        message.Rcpts.Add(recipResult);
                    }
                }

                return(message);
            }

            return(null);
        }