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); }