示例#1
0
        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);
        }
示例#2
0
        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);
        }