public async Task <int> AddGroupMessage(MessageDto groupMessage)
        {
            if (groupMessage != null)
            {
                using (var groupRepository = _unitOfWork.Repository <Group>())
                {
                    var group = await groupRepository
                                .Query()
                                .Include(g => g.Members)
                                .FirstOrDefaultAsync(g => g.Id == groupMessage.ReceiverId);

                    if (group != null)
                    {
                        var sender = group.Members
                                     .Where(m => m.Id == groupMessage.SenderId)
                                     .FirstOrDefault();
                        if (sender != null)
                        {
                            var newMessage = new GroupMessage
                            {
                                Sender       = sender,
                                Receiver     = group,
                                Text         = groupMessage.Text,
                                CreatedAt    = groupMessage.CreatedAt,
                                EditedAt     = groupMessage.EditedAt,
                                AttachedFile = groupMessage.AttachedFile
                            };
                            _unitOfWork.Repository <GroupMessage>().Add(newMessage);

                            //groupMessage.Title = string.Format("{0} {1}", sender.FirstName, sender.LastName);
                            groupMessage.Title = group.Name;
                            await _unitOfWork.SaveAsync();

                            //await _chatHubService.SendToGroup(MessageDto.FromGroupMessageModel(newMessage));
                            await _chatHubService.SendToGroup(groupMessage);

                            int groupMessageId = newMessage.Id;
                            return(groupMessageId);
                        }
                    }
                }
            }
            return(-1);
        }