public async Task SendFriendRequest(int senderId, int receiverId, Request sender) { string channelName = $"messages:{receiverId}:friend_request"; var values = new NameValueEntry[] { new NameValueEntry("sender_id", senderId), new NameValueEntry("sender_first_name", sender.FirstName), new NameValueEntry("sender_last_name", sender.LastName), new NameValueEntry("sender_username", sender.Username) }; IDatabase redisDB = _redisConnection.GetDatabase(); var messageId = await redisDB.StreamAddAsync(channelName, values); await redisDB.SetAddAsync("friend:" + senderId + ":request", receiverId); FriendRequestNotificationDTO message = new FriendRequestNotificationDTO { ReceiverId = receiverId, IdNotification = messageId, Request = sender }; var jsonMessage = JsonSerializer.Serialize(message); ISubscriber pubNotification = _redisConnection.GetSubscriber(); await pubNotification.PublishAsync("friendship.requests", jsonMessage); }
public async Task SendFriendRequest(int senderId, int receiverId, Request sender) { string channelName = $"messages:{receiverId}:friend_request"; var values = new NameValueEntry[] { new NameValueEntry("sender_id", senderId), new NameValueEntry("sender_first_name", sender.FirstName), new NameValueEntry("sender_last_name", sender.LastName), new NameValueEntry("sender_email", sender.Email), new NameValueEntry("sender_profile_picture_path", sender.ProfilePicturePath), }; IDatabase redisDB = _redisConnection.GetDatabase(); var messageId = await redisDB.StreamAddAsync(channelName, values); //Dodatna funkcija await redisDB.SetAddAsync("friend:" + senderId + ":request", receiverId); // objekat za notifikaciju FriendRequestNotificationDTO message = new FriendRequestNotificationDTO { ReceiverId = receiverId, RequestDTO = new RequestDTO { Id = messageId, Request = sender } }; //Push notifikacija var jsonMessage = JsonSerializer.Serialize(message); ISubscriber chatPubSub = _redisConnection.GetSubscriber(); await chatPubSub.PublishAsync("friendship.requests", jsonMessage); }