public MessageViewModel MapMessage(Message message)
        {
            var result = new MessageViewModel();

            result.Author = string.Format(
                "{0} {1}",
                message.Sender.FirstName,
                message.Sender.LastName);
            result.Date = message.SendDate;
            result.Text = message.Text;

            return result;
        }
 public async Task SendMessage(MessageViewModel messageViewModel)
 {
     var userIdentity = this.Context.User.Identity as CustomIdentity;
     int receiverKey = 0;
     if (userIdentity != null && int.TryParse(messageViewModel.Author, out receiverKey))
     {
         User sender = this._membershipService.GetUserByKey(userIdentity.Id);
         User receiver = this._membershipService.GetUserByKey(receiverKey);
         var message = new Message(
             messageViewModel.Text,
             sender.UserProfile,
             receiver.UserProfile);
         message.SendDate = messageViewModel.Date ?? DateTime.Now;
         messageViewModel.Sender = string.Format(
             "{0} {1}",
             sender.UserProfile.FirstName,
             sender.UserProfile.LastName);
         await this._messageService.SendMessageAsync(message);
         await this.Clients.User(messageViewModel.Author).ShowMessage(messageViewModel);
     }
 }