public async void getData()
        {
            Classes.CustomSnapshotRoot root   = null;
            Classes.KeeperAPI          keeper = new Classes.KeeperAPI();
            Action workAction = delegate
            {
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += delegate
                {
                    root = keeper.getKeeperInfo(guid);
                };
                worker.RunWorkerCompleted += async delegate
                {
                    if (root == null)
                    {
                        if (extendedStats.Count == 0)
                        {
                            lblSaved.Content = "Something went wrong with the server";
                            //Potentially exit the form here!
                            _timer.Enabled = false;
                            MessageBox.Show("The server crashed or was never available. \n Please close this window.");
                            this.Close();
                            return;
                        }
                        else
                        {
                            forceSave();
                            extendedStats.Clear();
                            return;
                        }
                    }
                    if (!root.snapshot.status.Equals("SUCCESS", StringComparison.OrdinalIgnoreCase))
                    {
                        return;
                    }
                    try
                    {
                        int t1count      = root.snapshot.teamInfo.team1.player.Count;
                        int t2count      = root.snapshot.teamInfo.team2.player.Count;
                        int totalPlayers = t1count + t2count;
                        lblTime.Content         = "Round Time: " + Classes.UsefulFunctions.getTime(root.snapshot.roundTime, 1);
                        lblCountPlayers.Content = "Getting Statistics for " + totalPlayers.ToString() + " players";
                        lblMap.Content          = "Map: " + Classes.JSONHelper.whatMap(root.snapshot.mapId);
                        lblMode.Content         = "Mode: " + Classes.JSONHelper.whatMode(root.snapshot.modeId);
                        foreach (var player in root.snapshot.teamInfo.team1.player)
                        {
                            Classes.Structs.PlayerLoadout playerInfo = await Classes.GetPlayersKit.GetWeaponInfo(player.playerId, player.name);

                            player.kit             = playerInfo.selectedKit;
                            player.primaryWeapon   = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[0];
                            player.secondaryWeapon = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[1];
                        }
                        foreach (var player in root.snapshot.teamInfo.team2.player)
                        {
                            Classes.Structs.PlayerLoadout playerInfo = await Classes.GetPlayersKit.GetWeaponInfo(player.playerId, player.name);

                            player.kit             = playerInfo.selectedKit;
                            player.primaryWeapon   = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[0];
                            player.secondaryWeapon = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[1];
                        }
                        this.Title = "Logging: " + totalPlayers.ToString() + "P | " + Classes.UsefulFunctions.getTime(root.snapshot.roundTime, 1) + " | " + Classes.JSONHelper.whatMap(root.snapshot.mapId);
                        if (root.snapshot.roundTime != 0)
                        {
                            extendedStats.Add(root);
                        }
                        bool descrEnabled = false;
                        if ((bool)cbAddDescrAuto.IsChecked)
                        {
                            descrEnabled = true;
                        }
                        Classes.DataExport export = new Classes.DataExport(extendedStats, root);
                        string             fileName;
                        if (descrEnabled == true)
                        {
                            fileName = export.saveOrNot(txtDescription.Text);
                            if (fileName != "")
                            {
                                lblSaved.Content = "Last Saved at: " + DateTime.Now.ToString();
                                if (cbOpenOnFinish.IsChecked == true)
                                {
                                    XAML.AddBombs addBombs = new XAML.AddBombs(Classes.UsefulFunctions.getFullReport(fileName), fileName);
                                    addBombs.Show();
                                }
                                fileName = null;
                                extendedStats.Clear();
                            }
                        }
                        else
                        {
                            fileName = export.saveOrNot(txtDescription.Text);
                            if (fileName != "")
                            {
                                lblSaved.Content = "Last Saved at: " + DateTime.Now.ToString();
                                if (cbOpenOnFinish.IsChecked == true)
                                {
                                    XAML.AddBombs addBombs = new XAML.AddBombs(Classes.UsefulFunctions.getFullReport(fileName), fileName);
                                    addBombs.Show();
                                }
                                fileName = null;

                                extendedStats.Clear();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Classes.Logger.addLog("Guid: " + guid + "|" + root.ToString() + ":" + ex.ToString(), 1);
                    }
                };
                worker.RunWorkerAsync();
            };
            await Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, workAction);
        }
        public async void getData()
        {

            Classes.CustomSnapshotRoot root = null;
            Classes.KeeperAPI keeper = new Classes.KeeperAPI();
            Action workAction = delegate
            {
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += delegate
                {
                    root = keeper.getKeeperInfo(guid);
                };
worker.RunWorkerCompleted += async delegate
                {
                    if (root == null)
                    {
                        if (extendedStats.Count == 0)
                        {
                            lblSaved.Content = "Something went wrong with the server";
                            //Potentially exit the form here!
                            _timer.Enabled = false;
                            MessageBox.Show("The server crashed or was never available. \n Please close this window.");
                            this.Close();
                            return;
                        }
                        else
                        {
                            forceSave();
                            extendedStats.Clear();
                            return;
                        }

                    }
                    if (!root.snapshot.status.Equals("SUCCESS", StringComparison.OrdinalIgnoreCase))
                        return;
                    try
                    {
                        int t1count = root.snapshot.teamInfo.team1.player.Count;
                        int t2count = root.snapshot.teamInfo.team2.player.Count;
                        int totalPlayers = t1count + t2count;
                        lblTime.Content = "Round Time: " + Classes.UsefulFunctions.getTime(root.snapshot.roundTime, 1);
                        lblCountPlayers.Content = "Getting Statistics for " + totalPlayers.ToString() + " players";
                        lblMap.Content = "Map: " + Classes.JSONHelper.whatMap(root.snapshot.mapId);
                        lblMode.Content = "Mode: " + Classes.JSONHelper.whatMode(root.snapshot.modeId);
                        foreach( var player in root.snapshot.teamInfo.team1.player )
                        {
                            Classes.Structs.PlayerLoadout playerInfo = await Classes.GetPlayersKit.GetWeaponInfo(player.playerId, player.name);
                        
                            player.kit = playerInfo.selectedKit;
                            player.primaryWeapon = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[0];
                            player.secondaryWeapon = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[1];
                        }
                        foreach (var player in root.snapshot.teamInfo.team2.player)
                        {
                            Classes.Structs.PlayerLoadout playerInfo = await Classes.GetPlayersKit.GetWeaponInfo(player.playerId, player.name);

                            player.kit = playerInfo.selectedKit;
                            player.primaryWeapon = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[0];
                            player.secondaryWeapon = playerInfo.kitList[Convert.ToInt32(playerInfo.selectedKit)].kitIdInformation[1];
                        }
                this.Title = "Logging: " + totalPlayers.ToString() + "P | " + Classes.UsefulFunctions.getTime(root.snapshot.roundTime, 1) + " | " + Classes.JSONHelper.whatMap(root.snapshot.mapId);
                        if (root.snapshot.roundTime != 0)
                        {
                            extendedStats.Add(root);
                        }
                        bool descrEnabled = false;
                        if ((bool)cbAddDescrAuto.IsChecked)
                        {
                            descrEnabled = true;
                        }
                        Classes.DataExport export = new Classes.DataExport(extendedStats, root);
                        string fileName;
                        if (descrEnabled == true)
                        {
                            fileName = export.saveOrNot(txtDescription.Text);
                            if (fileName != "")
                            {
                                lblSaved.Content = "Last Saved at: " + DateTime.Now.ToString();
                                if (cbOpenOnFinish.IsChecked == true)
                                {
                                    XAML.AddBombs addBombs = new XAML.AddBombs(Classes.UsefulFunctions.getFullReport(fileName), fileName);
                                    addBombs.Show();
                                }
                                fileName = null;
                                extendedStats.Clear();
                            }
                        }
                        else
                        {
                            fileName = export.saveOrNot(txtDescription.Text);
                            if (fileName != "")
                            {
                                lblSaved.Content = "Last Saved at: " + DateTime.Now.ToString();
                                if (cbOpenOnFinish.IsChecked == true)
                                {
                                    XAML.AddBombs addBombs = new XAML.AddBombs(Classes.UsefulFunctions.getFullReport(fileName), fileName);
                                    addBombs.Show();

                                }
                                fileName = null;

                                extendedStats.Clear();
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Classes.Logger.addLog("Guid: " + guid + "|" + root.ToString() + ":" + ex.ToString(), 1);
                    }

                };
                worker.RunWorkerAsync();
            };
            await Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, workAction);
        }