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"); }
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 { } }
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); } }
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 { } }
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; }