예제 #1
0
        private static void CheckMatches(Action <string, bool> log)
        {
            var newMatchesFound = 0;
            var start           = DateTime.Now;

            try
            {
                var ids = ServiceManager.LastMatchService.GetTrackedIds();

                foreach (var id in ids)
                {
                    var player    = ServiceManager.PlayerService.GetPlayer(id);
                    var lastMatch = ServiceManager.LastMatchService.GetLastMatch(id);

                    foreach (var match in player.LastMatches)
                    {
                        if (match.Id > lastMatch)
                        {
                            newMatchesFound++;

                            log.Invoke($"Discovered new match for player {player.Name}.", false);
                            log.Invoke(Helper.FormatPlayer(player.Name, match), false);

                            WebhookService.PostMessage(Helper.FormatPlayer(player.Name, match), log);

                            ServiceManager.LastMatchService.SetLastMatch(id, match.Id);
                            ServiceManager.LastMatchService.SetName(id, player.Name);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                newMatchesFound = -1;

                try
                {
                    WebhookService.PostMessage($"{e.GetType().FullName}: {e.Message}", log, true);
                    WebhookService.PostMessage($"```{e.StackTrace}```", log, true);
                }
                catch (Exception ex)
                {
                    log.Invoke($"Problem posting error message to discord: {e.GetType().FullName}: {ex.Message}. StackTrace: {ex.StackTrace}", true);
                }

                throw;
            }

            UpdateJSON(newMatchesFound, start, DateTime.Now);
        }