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))); }
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); }); }