diff --git a/OWTrack/MainForm.cs b/OWTrack/MainForm.cs index 05a33e6..267b139 100644 --- a/OWTrack/MainForm.cs +++ b/OWTrack/MainForm.cs @@ -34,14 +34,14 @@ namespace OWTrack private string Version = Program.Version.ToString(); public MainForm() - { + { InitializeComponent(); - tr = new Tracker(); + tr = new Tracker(); loadSave(); checkStatus(); update(); label4.Text = Version; - Text = "OWTrack " + Version; + Text = "OWTrack " + Version; } private void checkStatus() @@ -71,7 +71,6 @@ namespace OWTrack } } - //Move to saveManeger.cs ? private void loadSave() { try @@ -92,7 +91,7 @@ namespace OWTrack } catch (Exception) { - MessageBox.Show("Could not load Save.\n" + + MessageBox.Show("Could not load Save!\n" + "Starting new save."); tr = new Tracker(); } @@ -144,16 +143,24 @@ namespace OWTrack private void update() { - Wins.Text = tr.GetWins().ToString(); - Losses.Text = tr.GetLosses().ToString(); - if (tr.newSR == 0) + try { - if (tr.srDiff() < 1) { srLabel.Text = tr.startSR.ToString() + " - 0"; } + Wins.Text = tr.GetWins().ToString(); + Losses.Text = tr.GetLosses().ToString(); + if (tr.newSR == 0) + { + if (tr.srDiff() < 1) { srLabel.Text = tr.startSR.ToString() + " - 0"; } + else srLabel.Text = tr.startSR.ToString() + " - " + tr.srDiff(); + } else srLabel.Text = tr.startSR.ToString() + " - " + tr.srDiff(); + srTextBox.Text = null; + saveManeger.SaveJSON(tr); } - else srLabel.Text = tr.startSR.ToString() + " - " + tr.srDiff(); - srTextBox.Text = null; - saveManeger.SaveJSON(tr); + catch (Exception e) + { + MessageBox.Show(e.Message); + } + } private void AddMatch() @@ -163,7 +170,9 @@ namespace OWTrack StartSR = tr.startSR, newSR = tr.newSR, ChangeInSR = tr.srDiff(), - dateTime = DateTime.Now.Date + dateTime = DateTime.Now.Date, + DateTimeSting = DateTime.Now.ToString("hh:mm tt"), + LastMatchSR = tr.GetCurrentSession().GetLastMatch().newSR, }; tr.GetCurrentSession().AddMatch(match); } @@ -226,12 +235,6 @@ namespace OWTrack } finally { - //if (!SRonce) - //{ - // tr.startSR = sr; - // SRonce = true; - //} - //else tr.newSR = sr; if (tr.GetCurrentSession().IsNewSession()) tr.startSR = sr; else diff --git a/OWTrack/OWTrack.csproj b/OWTrack/OWTrack.csproj index a6997e9..a581a43 100644 --- a/OWTrack/OWTrack.csproj +++ b/OWTrack/OWTrack.csproj @@ -113,6 +113,7 @@ MainForm.cs + diff --git a/OWTrack/Settings.cs b/OWTrack/Settings.cs new file mode 100644 index 0000000..83e4384 --- /dev/null +++ b/OWTrack/Settings.cs @@ -0,0 +1,43 @@ +/*Copyright(c) 2018 Hesham Systems LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.*/ + + +namespace OWTrack +{ + class Settings + { + public bool TrackSR, TrackOW = true; + public string GamePath = ""; + + public Settings() + { + } + + /// + /// Reset All values to defult + /// + public void Reset() + { + TrackOW = true; + TrackSR = true; + GamePath = ""; + } + } +} diff --git a/OWTrack/Statistics.cs b/OWTrack/Statistics.cs new file mode 100644 index 0000000..f202751 --- /dev/null +++ b/OWTrack/Statistics.cs @@ -0,0 +1,32 @@ +using System; +using System.IO; +using Newtonsoft.Json; +using System.Collections.Generic; + + +namespace OWTrack +{ + public class Statistics + { + private Tracker tr; + public Statistics(Tracker tr) + { + this.tr = tr; + } + + public int GetTotalSkillChange() + { + int change = 0; + foreach (var Session in tr.sessions) + { + if (Session.Matches.Count != 0) + { + foreach (var match in Session.Matches) + { + + } + } + } + } + } +} \ No newline at end of file diff --git a/OWTrack/Tracker.cs b/OWTrack/Tracker.cs index 8a7c44b..d74d3d1 100644 --- a/OWTrack/Tracker.cs +++ b/OWTrack/Tracker.cs @@ -22,7 +22,6 @@ using System; using System.Diagnostics; using System.Linq; using System.IO; -using System.Windows.Forms; using System.Collections.Generic; namespace OWTrack @@ -30,7 +29,7 @@ namespace OWTrack class Tracker { public int wins, losses, startSR, newSR, totalMatches = 0; - + public void addWin() => wins++; public void addLoss() => losses++; public void reduceWin() => wins--; @@ -66,7 +65,7 @@ namespace OWTrack sessions.Clear(); StartNewSeission(); } - + public void StartNewSeission() { Session ses = new Session(startSR); @@ -128,8 +127,7 @@ namespace OWTrack } catch (Exception e) { - MessageBox.Show(e.Message); - return false; + throw e; } } @@ -158,32 +156,17 @@ namespace OWTrack } } - class Settings - { - public bool TrackSR, TrackOW = true; - public string GamePath = ""; - - /// - /// Reset All values to defult - /// - public void Reset() - { - TrackOW = true; - TrackSR = true; - GamePath = ""; - } - } - class Session { + public int wins, losses = 0; public int TotalMatches; public int SkillChange; public int StartSR; public DateTime date; - public List Matches = new List(); + public List Matches = new List(); /// - /// Start a new session with a starting Skill Rating + /// Start a new session /// public Session(int StartSR) { @@ -192,21 +175,38 @@ namespace OWTrack TotalMatches = 0; } + /// + /// Check if session does not have any matches + /// + /// Booelan public bool IsNewSession() { if (Matches.Count == 0) return true; else return false; } + /// + /// Get last match in Matchs list + /// + /// Match public Match GetLastMatch() { return Matches.Last(); } + /// + /// Add Match to list + /// + /// public void AddMatch(Match match) { + match.LastMatchSR = this.Matches.Last().newSR; this.Matches.Add(match); this.TotalMatches = Matches.Count(); + if (match.IsWin) + wins++; + else + losses++; } } @@ -214,6 +214,8 @@ namespace OWTrack { public Match() { } public DateTime dateTime { get; set; } + public bool IsWin; + public string DateTimeSting; public int StartSR; public int LastMatchSR; public int newSR; diff --git a/OWTrack/saveManeger.cs b/OWTrack/saveManeger.cs index 74d29a0..b9aa9b2 100644 --- a/OWTrack/saveManeger.cs +++ b/OWTrack/saveManeger.cs @@ -33,6 +33,10 @@ namespace OWTrack public static string GetSaves() { return SAVES; } public static string GetCurrentDir() { return curDir; } + /// + /// Paths of 'Program Files' folders. + /// + /// public struct ProgramFiles { public const string C = "C:\\Program Files"; @@ -47,31 +51,13 @@ namespace OWTrack /// /// Deserialize saved tracker instance. /// - /// + /// Tracker public static Tracker GetSavedTracker() { try { return JsonConvert.DeserializeObject(File.ReadAllText(Paths.GetSaves())); } - catch (Exception) - { - Exception ex = new Exception("json"); - throw ex; - } - } - - /// - /// Deserialize saved tracker instance from a Custom path - /// - /// - /// - public static Tracker GetSavedTracker(string customPath) - { - try - { - return JsonConvert.DeserializeObject(File.ReadAllText(customPath)); - } catch (Exception e) { throw e; @@ -81,8 +67,8 @@ namespace OWTrack /// ///Saves the Tracker Object. /// - /// - /// + /// + /// Boolean Value public static bool SaveJSON(Tracker tracker) { try @@ -90,9 +76,9 @@ namespace OWTrack File.WriteAllText(Paths.GetSaves(), JsonConvert.SerializeObject(tracker, Formatting.Indented)); return true; } - catch (Exception) + catch (Exception e) { - return false; + throw e; } }