public override ValueTask <GuildEventDeletedEventArgs> HandleDispatchAsync(IGatewayApiClient shard, GuildScheduledEventJsonModel model) { IGuildEvent @event; if (CacheProvider.TryGetGuildEvents(model.GuildId, out var cache) && cache.TryRemove(model.Id, out var cachedEvent)) { @event = cachedEvent; } else { @event = new TransientGuildEvent(Client, model); } var e = new GuildEventDeletedEventArgs(@event); return(new(e)); }
public override ValueTask <GuildEventUpdatedEventArgs> HandleDispatchAsync(IGatewayApiClient shard, GuildScheduledEventJsonModel model) { CachedGuildEvent oldEvent; IGuildEvent newEvent; if (CacheProvider.TryGetGuildEvents(model.GuildId, out var cache) && cache.TryGetValue(model.Id, out var @event)) { newEvent = @event; oldEvent = @event.Clone() as CachedGuildEvent; newEvent.Update(model); } else { oldEvent = null; newEvent = new TransientGuildEvent(Client, model); } var e = new GuildEventUpdatedEventArgs(oldEvent, newEvent); return(new(e)); }