コード例 #1
0
        private Task <ProcessResult> OnUpdateUserSubscription(RequestPacket request)
        {
            var sub = UserSubscription.GetFromPacket(request);

            // No other values are valid, and could potentially be malicious.
            sub.SubscriberUserId = request.Context.User.Id;

            _dataProvider.UpdateUserSubscription(sub);

            return(Task.FromResult(new ProcessResult(sub)));
        }
コード例 #2
0
        public ClientSubscriptionModule(Client client)
        {
            RPC = new ClientCalls(client);

            RequestHandler requestHandler;

            Attach(requestHandler = new RequestHandler());

            requestHandler.Register(nameof(IServerCalls.UserStatusUpdated), (RequestPacket request) => {
                var userUpdateArgs = new UserUpdatedEventArgs {
                    Client     = request.Context.Client,
                    User       = (User)request["user"],
                    UserStatus = (string)request["userStatus"]
                };
                UserUpdated?.Invoke(this, userUpdateArgs);
                return(Task.FromResult(ProcessResult.Processed));
            });

            requestHandler.Register(nameof(IServerCalls.UserSubscriptionUpdated), async(RequestPacket request) => {
                var subscription = UserSubscription.GetFromPacket(request);

                var usubArgs = new UserSubscriptionUpdatedEventArgs {
                    Client       = request.Context.Client,
                    Subscription = subscription
                };
                UserSubscriptionUpdated?.Invoke(this, usubArgs);
                if (subscription.UpdateType == UpdateType.Add)
                {
                    var userUpdateArgs = new UserUpdatedEventArgs {
                        Client     = request.Context.Client,
                        User       = (User)request["user"],
                        UserStatus = (string)request["userStatus"]
                    };
                    UserUpdated?.Invoke(this, userUpdateArgs);
                }
                return(ProcessResult.Processed);
            });
        }