public async Task ShowLeaderboard(LeaderboardNamedArgs leaderboardArguments)
 {
     using (Context.Channel.EnterTypingState())
     {
         try
         {
             await _leaderboardService.GenerateForServer(
                 Context.Channel,
                 Context.Guild.Id.ToString(),
                 DateTime.Now.AddDays(-7),
                 leaderboardArguments.WithRoles,
                 new RealRideCategory(),
                 new VirtualRideCategory()
                 );
         }
         catch (Exception e)
         {
             _logger.LogError(e, $"Failed to generate manual leaderboard for { Context.Guild.Id.ToString()}");
         }
     }
 }
        protected override async Task DoWork(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Executing leaderboard hosted service");
            var start = DateTime.Now.AddDays(-7);

            foreach (var leaderboard in _dbContext.Leaderboards.ToList())
            {
                try
                {
                    await _leaderboardService.GenerateForServer(
                        _discordSocketClient.GetChannel(ulong.Parse(leaderboard.ChannelId)) as SocketTextChannel,
                        leaderboard.ServerId,
                        DateTime.Now.AddDays(-7),
                        true,
                        new RealRideCategory(),
                        new VirtualRideCategory()
                        );
                }
                catch (Exception e)
                {
                    _logger.LogError(e, $"Failed to generate automated leaderboard for {leaderboard.ServerId}");
                }
            }
        }