public async Task SendMessege(MessegeWriteResource model)
        {
            var chatRepository = await unitOfWork.GetRepository <ChatRepository, Chat, Guid>();

            var messegeRepository = await unitOfWork.GetRepository <MessegeRepository, Messege, Guid>();

            var userRepository = await unitOfWork.GetRepository <UserRepository, User, Guid>();

            Chat chat = await chatRepository.GetChatFor(model.SenderId, model.ReciverId);

            if (chat == null)
            {
                chat = await chatRepository.CreateChatFor(model.SenderId, model.ReciverId);
            }
            var messege = mapper.Map <Messege>(model);

            messege.Id               = Guid.NewGuid();
            messege.ReciverId        = model.ReciverId;
            messege.SenderId         = model.SenderId;
            messege.ChatId           = chat.Id;
            messege.CreationDateTime = DateTime.Now;
            await messegeRepository.SendMessege(messege);

            await unitOfWork.Commit();
        }
        public async Task <IActionResult> SendMessege([FromBody] MessegeWriteResource model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            await _chatService.SendMessege(model);

            await chatHub.Clients.Client((await _userService.ReadUser(model.ReciverId)).PhoneNumber)?.SendAsync("MessageRecive", model.Context);

            return(Ok());
        }