Пример #1
0
        public async void Tick(object state, ElapsedEventArgs args)
        {
            await Task.Run(async() =>
            {
                try
                {
                    var currentGlobalPlayerRanking = await PlayerDb.GetGlobalPlayerRankingAsync();
                    for (var i = 0; i < currentGlobalPlayerRanking.Count; i++)
                    {
                        GlobalPlayerRanking.UpdateOrInsert(i, currentGlobalPlayerRanking[i]);
                    }

                    foreach (var(key, value) in LocalPlayerRanking)
                    {
                        var currentLocalPlayerRanking = await PlayerDb.GetLocalPlayerRankingAsync(key);
                        for (var i = 0; i < currentLocalPlayerRanking.Count; i++)
                        {
                            value.UpdateOrInsert(i, currentLocalPlayerRanking[i]);
                        }
                    }
                }
                catch (Exception exception)
                {
                    Logger.Log($"Error while updating leaderboads {exception}", GetType(), ErrorLevel.Error);
                }
            });
        }