Beispiel #1
0
        protected override void OnLoad(EventArgs e)
        {
            Visible = false; // Hide form window.
            //WOTHelper.FindandKillProcess("WOT.Stats");

            using (PlayerListing pl = new PlayerListing(new MessageQueue()))
            {
                foreach (KeyValuePair <string, Player> kv in pl)
                {
                    Player         p  = kv.Value;
                    DossierManager dm = new DossierManager(p.PlayerID, p.WatchFile, p.Monitor, new MessageQueue(), this);
                    dm.CurrentFileChange += dm_CurrentFileChange;
                    dictPlayers.Add(p.PlayerID.Replace("_", "*"), dm);
                    dm.StartDossierWatch();
                }
            }

            Visible       = false; // Hide form window.
            ShowInTaskbar = false; // Remove from taskbar.

            base.OnLoad(e);
            Thread.Sleep(3000);//pause for 3 seconds

            trayIcon.ShowBalloonTip(1000, "WOT Statistics", "WOT Statistics is running in the background.", ToolTipIcon.Info);
        }
 public CompareSelection(MessageQueue message, DossierManager dm)
 {
     InitializeComponent();
     _message = message;
     _dm      = dm;
     _players = new PlayerListing(_message);
     SetValues();
     Text = _dm.GetPlayerName + " " + Translations.TranslationGet("WNDCAPTION_PERSELECT", "DE", "Period Selection");
 }
Beispiel #3
0
        public frmMain()
        {
            _message.Add("frmMain loaded");

            SetTextOnSplashScreen("Initializing Components");

            WOTHelper.SetInternetZone();
            InitializeComponent();
            repositoryItemRadioGroup2.SelectedIndexChanged += new EventHandler(repositoryItemRadioGroup2_SelectedIndexChanged);
            repositoryItemRecentBattlesDisplayList.SelectedIndexChanged += new EventHandler(repositoryItemRecentBattlesDisplayList_SelectedIndexChanged);

            _chart.ObjectHotTracked += new HotTrackEventHandler(_chart_ObjectHotTracked);
            _browser.ObjectForScripting = this;

            _message = new MessageQueue();
            _message.ItemAdded += new MessageQueue_OnAdd(NewMessage);

            #if DEBUG
            _browser.IsWebBrowserContextMenuEnabled = true;
            #else
            _browser.IsWebBrowserContextMenuEnabled = false;
            #endif

            //dockPanel3.Visibility = DockVisibility.Hidden;
            //dockPanel4.Visibility = DockVisibility.Hidden;
            //dockPanelGraph.Visibility = DockVisibility.Hidden;
            //dockPanel2.Visibility = DockVisibility.Hidden;

            bar6.Visible = false;
            bar6.Offset = 0;
            barLastPlayedGames.Visible = false;
            barLastPlayedGames.Offset = 0;
            helpProvider1.HelpNamespace = Path.Combine(WOTHelper.GetEXEPath(), "Help", "WoT_Stats.chm");
            //ScriptWrapper.Initialise(WOTHelper.GetCustomScript());
            using (PlayerListing players = new PlayerListing(_message))
            {
                if (players.Count() > 0)
                {

                    string errorMessage = "";
                    foreach (KeyValuePair<string, Player> player in players)
                    {
                        SetTextOnSplashScreen("Initializing Dossier of " + player.Value.PlayerID);
                        if (!File.Exists(player.Value.WatchFile))
                        {
                            string dir = player.Value.WatchFile.Remove(player.Value.WatchFile.LastIndexOf('\\'));
                            if (Directory.Exists(dir))
                            {
                                foreach (FileInfo item in new DirectoryInfo(dir).GetFiles().Where(x => x.Extension.ToLower() == ".dat"))
                                {
                                    if (WOTHelper.PlayerIdFromDatFile(item.Name) == player.Value.PlayerID)
                                    {
                                        player.Value.WatchFile = item.FullName;
                                        players.SetPlayerWatchFile(player.Value.PlayerID, item.FullName);
                                        players.Save();
                                        break;
                                    }
                                }
                            }
                        }

                        if (File.Exists(player.Value.WatchFile))
                        {
                            DossierManager dm = new DossierManager(player.Value.PlayerID, player.Value.WatchFile, player.Value.Monitor, _message, this);
                            dm.CurrentFileChange += DossierFileChanged;
                            dictPlayers.Add(player.Value.PlayerID.Replace("_", "*"), dm);

                            //try
                            //{
                                _currentStatsFile.Add(player.Value.PlayerID.Replace("_", "*"), new WOTCompare(new Dossier(dm.GetFileB(), dm.GetPlayerName, _message).GetStats(), new Dossier(dm.GetFileA(), dm.GetPlayerName, _message).GetStats()));
                                dm.RefreshDossier();
                            //}
                            //catch (Exception ex)
                            //{

                            //    _message.Add("Error: cannot refresh dossier file. - " + ex.Message);
                            //}

                            //BarButtonItem buttonOpen = new BarButtonItem(barManager1, player.Value.PlayerID);
                            //buttonOpen.ItemClick += new ItemClickEventHandler(buttonOpen_ItemClick);
                            //buttonOpen.Name = player.Value.PlayerID;
                            //barCompare.AddItem(buttonOpen);

                            CreatePlayerMenu(player.Value.PlayerID);

                            SetTextOnSplashScreen("Initializing Monitor");

                            if (UserSettings.StartMonOnStartUp == true)
                            {
                                dm.StartDossierWatch();
                                barStaticItem1.Glyph = WOTStatistics.Stats.Properties.Resources.bullet_square_green;
                                barStaticItem1.Caption = "Monitor Status : Running";
                            }
                            else
                            {
                                barStaticItem1.Glyph = WOTStatistics.Stats.Properties.Resources.bullet_square_red;
                                barStaticItem1.Caption = "Monitor Status : Stopped";
                            }
                        }
                        else
                        {

                           // _HasPlayerError = true;
                            if (errorMessage.Length > 1)
                                errorMessage += Environment.NewLine + Environment.NewLine;

                            errorMessage += Translations.TranslationGet("STR_PLAYERERROR", "DE", "Dossier file not found for player : " + player.Value.PlayerID + Environment.NewLine + "Please check the dossier file location on the edit player screen in setup." + Environment.NewLine + "Player not loaded.").Replace("{playerid}", player.Value.PlayerID);
                        }

                        if (errorMessage.Length > 1)
                            DevExpress.XtraEditors.XtraMessageBox.Show(errorMessage, "WOT Statistics", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }

            try
            {
                if (splashScreenManagerWaitForm.IsSplashFormVisible)
                {
                    splashScreenManagerWaitForm.CloseWaitForm();
                }
            }
            catch {}

               // if (splashScreenManagerWaitForm.IsSplashFormVisible)
                //splashScreenManagerWaitForm.CloseWaitForm();
             _message.Add("frmMain DONE");

             try
             {
                 DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm();
             }
             catch { }
        }
Beispiel #4
0
        private void ReloadDossier(DossierManager sender)
        {
            try
            {
                if (dictPlayers.Count > 0)
                {
                    DossierManager dm = (DossierManager)sender;
                    Dossier fileB = new Dossier(dm.GetFileB(), dm.GetPlayerName, _message);
                    Dossier fileA = new Dossier(dm.GetFileA(), dm.GetPlayerName, _message);

                    _currentStatsFile[dm.GetPlayerID.Replace("_", "*")] = new WOTCompare(fileB.GetStats(), fileA.GetStats());

                    CreateWebPage(_currentPage, _currentPlayer);
                }
            }
            catch (Exception ex)
            {
                _message.Add("Error: cannot refresh dossier file. - " + ex.Message);
            }
        }
Beispiel #5
0
        private void PlayerRefresh()
        {
            try
            {
                splashScreenManagerWaitForm.ShowWaitForm();
            }
            catch { }
            using (PlayerListing pl = new PlayerListing(_message))
            {
                if (pl.Count() == dictPlayers.Count)
                {
                    foreach (DossierManager item in dictPlayers.Values)
                    {
                        Player player = pl.GetPlayer(item.GetPlayerName);
                        if (item.WatchPath != player.WatchFile || item.FTPFileFetch != (player.Monitor.ToUpper() == "YES" ? true : false))
                        {
                            item.SetValues(player.WatchFile, player.Monitor.ToUpper() == "YES" ? true : false);
                            _currentStatsFile[player.PlayerID.Replace("_", "*")] = new WOTCompare(new Dossier(item.GetFileB(), item.GetPlayerName, _message).GetStats(), new Dossier(item.GetFileA(), item.GetPlayerName, _message).GetStats());
                            item.RefreshDossier();
                        }
                    }
                }
                else
                {
                    if (pl.Count() > dictPlayers.Count)
                    {
                        foreach (KeyValuePair<string, Player> player in pl)
                        {
                            if (!dictPlayers.ContainsKey(player.Value.PlayerID.Replace("_", "*")))
                            {
                                DossierManager dm = new DossierManager(player.Value.PlayerID, player.Value.WatchFile, player.Value.Monitor, _message, this);
                                dm.CurrentFileChange += new DossierManager_CurrentFileChanged(DossierFileChanged);
                                dm.StartDossierWatch();
                                dictPlayers.Add(player.Value.PlayerID.Replace("_", "*"), dm);

                                _currentStatsFile.Add(player.Value.PlayerID.Replace("_", "*"), new WOTCompare(new Dossier(dm.GetFileB(), dm.GetPlayerName, _message).GetStats(), new Dossier(dm.GetFileA(), dm.GetPlayerName, _message).GetStats()));
                                dm.RefreshDossier();

                                CreatePlayerMenu(player.Value.PlayerID);
                            }
                        }
                    }
                    else
                    {
                        List<string> keysToRemove = new List<string>();
                        foreach (KeyValuePair<string, DossierManager> item in dictPlayers)
                        {
                            if (pl.GetPlayer(item.Value.GetPlayerName).PlayerID == "Unknown")
                            {
                                keysToRemove.Add(item.Key);
                                _currentStatsFile.Remove(item.Key);
                                navBarControl1.Groups.Remove(navBarControl1.Groups[item.Value.GetPlayerName]);
                            }
                        }

                        foreach (string key in keysToRemove)
                        {
                            dictPlayers.Remove(key);
                        }

                        _currentPlayer = "";
                        _currentPage = "";
                    }
                }
            }

            if (_currentPlayer == "")
            {
                try
                {
                    navBarControl1.Groups[0].Expanded = true;
                    navBarControl1.Groups[0].ItemLinks[0].PerformClick();
                    navBarControl1.Groups[0].SelectedLink = navBarControl1.Groups[0].ItemLinks[0];
                }
                catch
                {
                    if (panelControl1.Controls.Contains(_chart))
                    {
                        panelControl1.Controls.Remove(_chart);
                        panelControl1.Controls.Add(_browser);
                        _browser.Dock = DockStyle.Fill;
                    }

                    bar3.Visible = false;
                    bar3.Offset = 0;
                    dockPanel2.Visible = false;
                    bar5.Visible = false;
                    bar5.Offset = 0;
                    dockPanelGraph.Visible = false;
                    barLastPlayedGames.Visible = false;
                    barLastPlayedGames.Offset = 0;
                    _browser.DocumentText = new WOTHtml(_message).Blank();
                }
            }
            else
            {
                if (_currentPage != "Compare")
                    CreateWebPage(_currentPage, _currentPlayer);

            }
            try
            {
                if (splashScreenManagerWaitForm.IsSplashFormVisible)
                {
                    splashScreenManagerWaitForm.CloseWaitForm();
                }
            }
            catch { }
        }
Beispiel #6
0
        private static void OverallChart(string playerName, string chartID, GraphFields gFields, ChartControl chartControl)
        {
            chartControl.Series.Clear();
            chartControl.Titles.Clear();
            Player         player         = new PlayerListing(new MessageQueue()).GetPlayer(playerName);
            DossierManager dossierManager = new DossierManager(player.PlayerID, player.WatchFile, player.Monitor, new MessageQueue(), null);

            DateTime endFile   = dossierManager.FormatTextDate(dossierManager.GetCurrentPlayerFile().ToString());
            DateTime startFile = dossierManager.FormatTextDate(dossierManager.GetCurrentPlayerFile().ToString()).AddDays((gFields.Period + 1) * -1);

            Dictionary <Int32, Int32> files         = dossierManager.GetAllFilesForPlayer();
            Dictionary <Int32, Int32> selectedFiles = (from d in files
                                                       where dossierManager.FormatTextDate(d.Key.ToString()) >= startFile && dossierManager.FormatTextDate(d.Key.ToString()) <= endFile
                                                       select d).ToDictionary(x => x.Key, x => x.Value);

            Series series1 = new Series(gFields.Caption, ViewType.Line);

            series1.Label.Font = new System.Drawing.Font("Tahoma", float.Parse(UserSettings.HTMLCellFont), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
            foreach (KeyValuePair <Int32, Int32> file in selectedFiles.OrderBy(x => x.Key))
            {
                Dossier  dossierFile  = new Dossier(file.Value, player.PlayerID, new MessageQueue());
                WOTStats dossierStats = dossierFile.GetStats();
                series1.Points.Add(new SeriesPoint(dossierManager.FormatTextDate(file.Key.ToString()), Math.Round(GetStatValue(gFields.DataField, dossierStats), 2)));
            }



            // Add the series to the chart.
            chartControl.Series.Add(series1);

            // Set the numerical argument scale types for the series,
            // as it is qualitative, by default.
            series1.ArgumentScaleType            = ScaleType.DateTime;
            series1.Label.ResolveOverlappingMode = ResolveOverlappingMode.HideOverlapped;

            // Access the view-type-specific options of the series.
            ((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Circle;
            ((LineSeriesView)series1.View).LineStyle.DashStyle    = DashStyle.Solid;

            // Access the type-specific options of the diagram.
            ((XYDiagram)chartControl.Diagram).EnableAxisXZooming = true;

            // Hide the legend (if necessary).
            chartControl.Legend.Visible = false;


            // Add a title to the chart (if necessary).
            chartControl.Titles.Add(new ChartTitle());
            chartControl.Titles[0].Font = new System.Drawing.Font("Tahoma", float.Parse(UserSettings.HTMLHeaderFont), System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
            chartControl.Titles[0].Text = gFields.Caption;
            chartControl.Titles.Add(new ChartTitle());
            chartControl.Titles[1].Font = new System.Drawing.Font("Tahoma", float.Parse(UserSettings.HTMLHeaderFont) - 1.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
            chartControl.Titles[1].Text = startFile.ToString(UserSettings.DateFormat) + " to " + endFile.ToString(UserSettings.DateFormat);
            chartControl.Titles.Add(new ChartTitle());
            chartControl.Titles[2].Font = new System.Drawing.Font("Tahoma", float.Parse(UserSettings.HTMLHeaderFont) - 3, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
            chartControl.Titles[2].Text = gFields.DataField;

            XYDiagram diagram = (XYDiagram)chartControl.Diagram;

            switch (gFields.Period)
            {
            case 7:
                diagram.AxisX.DateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Day;
                diagram.AxisX.DateTimeScaleOptions.MeasureUnit   = DateTimeMeasureUnit.Day;
                break;

            case 14:
                diagram.AxisX.DateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Day;
                diagram.AxisX.DateTimeScaleOptions.MeasureUnit   = DateTimeMeasureUnit.Day;
                break;

            case 92:
            case 184:
            case 365:
                diagram.AxisX.DateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Month;
                diagram.AxisX.DateTimeScaleOptions.MeasureUnit   = DateTimeMeasureUnit.Day;
                diagram.AxisX.Label.TextPattern = "MMM yy";
                break;

            default:
                diagram.AxisX.DateTimeScaleOptions.GridAlignment = DateTimeGridAlignment.Week;
                diagram.AxisX.DateTimeScaleOptions.MeasureUnit   = DateTimeMeasureUnit.Day;
                break;
            }


            diagram.AxisX.Label.Font = new System.Drawing.Font("Tahoma", float.Parse(UserSettings.HTMLCellFont), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));
            diagram.AxisY.Label.Font = new System.Drawing.Font("Tahoma", float.Parse(UserSettings.HTMLCellFont), System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));


            diagram.AxisY.WholeRange.AlwaysShowZeroLevel = false;
            diagram.AxisY.NumericScaleOptions.AutoGrid   = true;
            diagram.AxisY.DateTimeScaleOptions.AutoGrid  = true;
        }