55using System . IO ;
66using CefSharp . WinForms ;
77using Newtonsoft . Json ;
8- using Newtonsoft . Json . Linq ;
98
109namespace ReboundLogParser {
1110 public partial class MainForm : Form
@@ -27,11 +26,12 @@ public partial class MainForm : Form
2726 private ChromiumWebBrowser _browser ;
2827 private List < ComboBox > _homePlayerBoxes ;
2928 private List < ComboBox > _awayPlayerBoxes ;
29+ private List < Match > _parsedLogs = new List < Match > ( ) ;
30+ private Match _match ;
3031
3132 public MainForm ( )
3233 {
3334 CefSettings cefSettings = new CefSettings ( ) ;
34- CefSharp . Cef . EnableHighDPISupport ( ) ;
3535 CefSharp . Cef . Initialize ( cefSettings ) ;
3636
3737 InitializeComponent ( ) ;
@@ -120,7 +120,7 @@ private void ResetFormData()
120120 LogFileName . Text = String . Empty ;
121121 }
122122
123- static bool LoadAndParseLogFiles ( List < string > fileNames = null )
123+ private bool LoadAndParseLogFiles ( List < string > fileNames = null )
124124 {
125125 bool success = false ;
126126 fileNames = fileNames ?? new List < string > ( ) ;
@@ -133,6 +133,7 @@ static bool LoadAndParseLogFiles(List<string> fileNames = null)
133133 }
134134 _loadedFile += $ "{ fileName } ; ";
135135 }
136+ TabulateSelectedLogs ( ) ;
136137
137138 _multipleFiles = fileNames . Count > 1 ;
138139 _loadedFile = ( fileNames . Count ( ) < 1 ) ? "Problem Loading Files!" : _loadedFile ;
@@ -181,12 +182,12 @@ private void PopulateDataGrid()
181182 awayDataGrid . DataSource = _awayTeamPlayers ;
182183 }
183184
184- static bool ParseJson ( string fileName )
185+ private bool ParseJson ( string fileName )
185186 {
186- dynamic o1 = new JObject ( ) ;
187+ _match = null ;
187188 try
188189 {
189- o1 = JObject . Parse ( File . ReadAllText ( fileName ) ) ;
190+ _match = JsonConvert . DeserializeObject < Match > ( File . ReadAllText ( fileName ) ) ;
190191 }
191192 catch ( JsonReaderException jex )
192193 {
@@ -199,55 +200,63 @@ static bool ParseJson(string fileName)
199200 return false ;
200201 }
201202
202- _overTime = CheckOvertime ( o1 ) ;
203- string homeScoreString = o1 . score . home ;
204- string awayScoreString = o1 . score . away ;
205- string periodString = o1 . current_period ;
206- _homeScore += int . Parse ( homeScoreString ) ;
207- _awayScore += int . Parse ( awayScoreString ) ;
208- _period = int . Parse ( periodString ) ;
209- _currentPeriod = o1 . current_period ;
210- foreach ( dynamic player in o1 . players )
203+ _parsedLogs . Add ( _match ) ;
204+
205+ return true ;
206+ }
207+
208+ private bool TabulateSelectedLogs ( )
209+ {
210+ _parsedLogs . Sort ( delegate ( Match m1 , Match m2 ) { return m1 . CurrentPeriod . CompareTo ( m2 . CurrentPeriod ) ; } ) ;
211+ foreach ( Match o1 in _parsedLogs )
211212 {
212- var isHomeTeam = player . team == "home" ;
213- var teamToBuild = isHomeTeam ? _homeTeamPlayers : _awayTeamPlayers ;
214- if ( PlayerExists ( player , teamToBuild ) )
213+ _overTime = CheckOvertime ( o1 ) ;
214+ _homeScore += o1 . Score . Home ;
215+ _awayScore += o1 . Score . Away ;
216+ _period = int . Parse ( o1 . CurrentPeriod ) ;
217+ _currentPeriod = o1 . CurrentPeriod ;
218+ foreach ( Player player in o1 . Players )
215219 {
216- for ( int p = 0 ; p < teamToBuild . Count ; p ++ )
220+ var isHomeTeam = player . Team == "home" ;
221+ var teamToBuild = isHomeTeam ? _homeTeamPlayers : _awayTeamPlayers ;
222+ if ( PlayerExists ( player , teamToBuild ) )
217223 {
218- if ( teamToBuild [ p ] . PlayerName == player . username . ToString ( ) )
224+ for ( int p = 0 ; p < teamToBuild . Count ; p ++ )
219225 {
220- teamToBuild [ p ] . addValues ( player ) ;
226+ if ( teamToBuild [ p ] . PlayerName == player . Username )
227+ {
228+ teamToBuild [ p ] . addValues ( player ) ;
229+ }
221230 }
222231 }
232+ else
233+ {
234+ teamToBuild . Add ( new stats ( player ) ) ;
235+ }
223236 }
224- else
225- {
226- teamToBuild . Add ( new stats ( player ) ) ;
227- }
237+ _homeTeamPlayers . Sort ( delegate ( stats c1 , stats c2 ) { return c1 . PlayerName . CompareTo ( c2 . PlayerName ) ; } ) ;
238+ _awayTeamPlayers . Sort ( delegate ( stats c1 , stats c2 ) { return c1 . PlayerName . CompareTo ( c2 . PlayerName ) ; } ) ;
228239 }
229- _homeTeamPlayers . Sort ( delegate ( stats c1 , stats c2 ) { return c1 . PlayerName . CompareTo ( c2 . PlayerName ) ; } ) ;
230- _awayTeamPlayers . Sort ( delegate ( stats c1 , stats c2 ) { return c1 . PlayerName . CompareTo ( c2 . PlayerName ) ; } ) ;
231240
232241 return true ;
233242 }
234243
235- static bool CheckOvertime ( dynamic statsObject )
244+ private bool CheckOvertime ( Match statsObject )
236245 {
237246 bool returnBool = false ;
238247 double homeTeamOT = 0 ;
239248 double awayTeamOT = 0 ;
240249
241250 for ( int i = 0 ; i < 5 ; i ++ )
242251 {
243- if ( statsObject . players [ i ] . team == "away" )
252+ if ( statsObject . Players [ i ] . Team == "away" )
244253 {
245254 break ;
246255 }
247256
248257 try
249258 {
250- homeTeamOT = statsObject . players [ i ] . stats . overtime_wins ;
259+ homeTeamOT = statsObject . Players [ i ] . Stats . OvertimeWins ;
251260 }
252261 catch
253262 {
@@ -258,7 +267,7 @@ static bool CheckOvertime(dynamic statsObject)
258267 {
259268 try
260269 {
261- awayTeamOT = statsObject . players [ i ] . stats . overtime_losses ;
270+ awayTeamOT = statsObject . Players [ i ] . Stats . OvertimeLosses ;
262271 }
263272 catch
264273 {
@@ -280,12 +289,12 @@ static bool CheckOvertime(dynamic statsObject)
280289 return returnBool ;
281290 }
282291
283- static bool PlayerExists ( dynamic passedPlayer , List < stats > playerArray )
292+ static bool PlayerExists ( Player passedPlayer , List < stats > playerArray )
284293 {
285294 bool returnValue = false ;
286295 for ( int j = 0 ; j < playerArray . Count ; j ++ )
287296 {
288- if ( playerArray [ j ] . PlayerName == passedPlayer . username . ToString ( ) )
297+ if ( playerArray [ j ] . PlayerName == passedPlayer . Username )
289298 {
290299 returnValue = true ;
291300 }
@@ -462,7 +471,9 @@ private void ClearLogsButton_Click(object sender, EventArgs e)
462471 {
463472 _loadedFiles . Clear ( ) ;
464473 _lastLoadedFiles . Clear ( ) ;
474+ _parsedLogs . Clear ( ) ;
465475 ResetFormData ( ) ;
476+ MultipleFiles . Visible = false ;
466477 }
467478 }
468479}
0 commit comments