Esempio n. 1
0
        public async Task <IActionResult> CreateMessage(int userId, [FromBody] MessageForCreationDto messageForCreationDto)
        {
            User sender = await _repo.GetUser(userId);

            if (sender.Id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            messageForCreationDto.SenderId = userId;

            User recipient = await _repo.GetUser(messageForCreationDto.RecipientId);

            if (recipient == null)
            {
                return(BadRequest("No se encontró el usuario"));
            }

            Message message = _mapper.Map <Message>(messageForCreationDto);

            _repo.Add(message);

            if (await _repo.SaveAll())
            {
                MessageToReturnDto messageToReturn = _mapper.Map <MessageToReturnDto>(message);
                return(CreatedAtRoute("GetMessage", new { userId, id = message.Id }, messageToReturn));
            }

            throw new Exception("mensaje fallido al guardar");
        }
Esempio n. 2
0
 public async Task BroadcastNewMessage(MessageToReturnDto data)
 {
     foreach (var connectionId in _connections.GetConnections(data.RecipientId.ToString()))
     {
         await Clients.Client(connectionId).SendAsync("newMessage", data);
     }
 }
        public async Task <IActionResult> CreateMessage(int userId, MessageForCreationDto messageForCreationDto)
        {
            User sender = await _repo.GetUser(userId);

            if (sender.Id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            messageForCreationDto.SenderId = userId;
            User recipient = await _repo.GetUser(messageForCreationDto.RecipientId);

            if (recipient == null)
            {
                return(BadRequest("Could not find user"));
            }

            Message message = _mapper.Map <Message>(messageForCreationDto);

            _repo.Add(message);


            if (await _repo.SaveAll())
            {
                MessageToReturnDto messageToReturn = _mapper.Map <MessageToReturnDto>(message);
                return(CreatedAtRoute("GetMessage", new { id = message.Id }, messageToReturn));
            }
            throw new Exception("Creating the message failed on save");
        }
Esempio n. 4
0
        public async Task <IActionResult> CreateMessage(int userId, MessageForCreationDto messageForCreationDto)
        {
            if (userId != Int32.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }
            var recipientId = await _repo.GetUser(messageForCreationDto.RecipientId);

            if (recipientId == null)
            {
                return(BadRequest("could not find user"));
            }

            var sender = await _repo.GetUser(messageForCreationDto.SenderId = userId);

            //automapper automatically maps recipient and sender information
            // ,since they are in memory which we are getting using getUser function
            var message = _mapper.Map <Message>(messageForCreationDto);

            _repo.Add(message);
            if (await _repo.SaveAll())
            {
                MessageToReturnDto messageToReturn = _mapper.Map <MessageToReturnDto>(message);
                return(CreatedAtRoute("GetMessage", new { userId = userId, id = message.Id }, messageToReturn));
            }
            return(BadRequest("we are not able to deliver message"));
        }
Esempio n. 5
0
        public void SendPrivate(string message)
        {
            // message format: /private(receiverName) Lorem ipsum...
            string[] split    = message.Split(')');
            string   receiver = split[0].Split('(')[1];
            // Who is the sender;
            var sender = _Connections.Where(u => u.Id == Identity()).First();

            message = Regex.Replace(message, @"\/private\(.*?\)", string.Empty).Trim();

            var receiverUser = context.Users.FirstOrDefault(user => user.UserName == receiver);
            // Build the message TODO
            MessageToReturnDto messageViewModel = new MessageToReturnDto();

            foreach (var cc in _connectionsMapping.GetConnections(receiverUser.Id))
            {
                Clients.Client(cc).NewMessage(messageViewModel);
            }
            Clients.Caller.NewMessage(messageViewModel);
        }
 public async Task SendMessageAsync(MessageToReturnDto messageToSend)
 {
     await _hubContext.Clients.All.ReceiveMessage(JsonConvert.SerializeObject(messageToSend));
 }
 public async Task SendMessage(MessageToReturnDto messageToSend, string id)
 {
     await _hubContext.Clients.User(id).ReceiveMessage(messageToSend);
 }
 public async Task SendMessage(MessageToReturnDto message)
 {
     await _hubContext.Clients.All.ReceiveMessage(message);
 }
Esempio n. 9
0
 public void Kicked(MessageToReturnDto message)
 {
 }
 public async Task Send(MessageToReturnDto msg)
 {
     await Clients.Others.SendAsync("new_message", msg);
 }
Esempio n. 11
0
 public async Task SendMessage(int id, MessageToReturnDto messageToReturnDto)
 {
     await Clients.All.SendAsync("Send", id, messageToReturnDto);
 }