public async Task <int> AddUserMessage(MessageDto message)
        {
            if (message != null)
            {
                //using (var userRepository = _unitOfWork.Repository<User>())
                //{
                var userRepository = _unitOfWork.Repository <User>();
                var sender         = await userRepository
                                     .Query()
                                     .Include(s => s.Contacts)
                                     .FirstOrDefaultAsync(s => s.Id == message.SenderId);

                if (sender != null)
                {
                    var receiver = sender.Contacts
                                   .Select(c => c.ContactUser)
                                   .Where(u => u.Id == message.ReceiverId)
                                   .FirstOrDefault();
                    if (receiver != null)
                    {
                        var newMessage = new Message
                        {
                            Sender       = sender,
                            Receiver     = receiver,
                            Text         = message.Text,
                            CreatedAt    = message.CreatedAt,
                            EditedAt     = message.EditedAt,
                            AttachedFile = message.AttachedFile
                        };
                        _unitOfWork.Repository <Message>().Add(newMessage);
                        await _unitOfWork.SaveAsync();

                        message.Title = string.Format("{0} {1}", sender.FirstName, sender.LastName);
                        message.Id    = newMessage.Id;
                        await _chatHubService.SendToUser(message);

                        return(message.Id);
                    }
                }
                //}
            }
            return(-1);
        }