예제 #1
0
        public async Task <KeyValuePair <bool, string> > SendMessage(MessageToSendDto message, int userId)
        {
            try
            {
                var Message = new Message
                {
                    ChatId      = message.ChatId,
                    Content     = message.Content,
                    MessageSent = message.MessageSent,
                    SenderId    = userId
                };

                _unitOfWork.Messages.Add(Message);

                await _unitOfWork.Complete();

                var userFromRepo = await _unitOfWork.Users.GetUserByIdWithAdditionalInformation(userId);

                await _chat.Clients.Group(message.ChatId.ToString())
                .SendAsync("ReceiveMessage", new
                {
                    Content     = Message.Content,
                    Sender      = _mapper.Map <UserToReturnMiniDto>(userFromRepo),
                    MessageSent = Message.MessageSent
                });

                return(new KeyValuePair <bool, string>(true, "Message sent successfully!"));
            }
            catch (Exception)
            {
                return(new KeyValuePair <bool, string>(false, "Message could not be sent!"));
            }
        }
예제 #2
0
        public async Task <IActionResult> SendMessage(int id, int recipientId, MessageToSendDto messageToSendDto)
        {
            if (await messenger.SendMessage(id, recipientId, messageToSendDto.Content, messageToSendDto.WithSchool))
            {
                await hubContext.Clients.All.Invoke();

                return(Ok());
            }

            return(BadRequest("Nie udało się wysłać wiadomości"));
        }
        public IActionResult Send(MessageToSendDto messageToSend)
        {
            List <MessageToSendDto> messages = new List <MessageToSendDto>();

            messages.Add(messageToSend);

            IResult result = _publisherService.AddQueue(messages, "Message");

            if (result.Success)
            {
                return(Ok(result.Message));
            }
            return(BadRequest(result.Message));
        }
예제 #4
0
        public async Task <IActionResult> SendMessage(MessageToSendDto message)
        {
            var userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            return(Ok(await _chatsService.SendMessage(message, userId)));
        }