diff --git a/TrackerLibrary/DataAccess/SqlConnector.cs b/TrackerLibrary/DataAccess/SqlConnector.cs index e82f81a..38110e5 100644 --- a/TrackerLibrary/DataAccess/SqlConnector.cs +++ b/TrackerLibrary/DataAccess/SqlConnector.cs @@ -282,7 +282,7 @@ namespace TrackerLibrary.DataAccess int currRound = 1; foreach (MatchupModel m in matchups) { - if(m.MatchupRound > currRound) + if (m.MatchupRound > currRound) { t.Rounds.Add(currRow); currRow = new List(); @@ -299,7 +299,28 @@ namespace TrackerLibrary.DataAccess public void UpdateMatchup(MatchupModel model) { - + using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db))) + { + var p = new DynamicParameters(); + if (model.Winner != null) + { + p.Add("@Id", model.Id); + p.Add("@WinnerId", model.Winner.Id); + + connection.Execute("dbo.spMatchups_Update", p, commandType: CommandType.StoredProcedure); + } + foreach (MatchupEntryModel m in model.Entries) + { + if (m.TeamCompeting != null) + { + p = new DynamicParameters(); + p.Add("@Id", m.Id); + p.Add("@TeamCompetingId", m.TeamCompeting.Id); + p.Add("@Score", m.Score); + connection.Execute("dbo.spMatchupEntries_Update", p, commandType: CommandType.StoredProcedure); + } + } + } } } } diff --git a/TrackerLibrary/DataAccess/TextConnector.cs b/TrackerLibrary/DataAccess/TextConnector.cs index 03737dc..fbc2094 100644 --- a/TrackerLibrary/DataAccess/TextConnector.cs +++ b/TrackerLibrary/DataAccess/TextConnector.cs @@ -134,7 +134,7 @@ namespace TrackerLibrary.DataAccess public void UpdateMatchup(MatchupModel model) { - throw new NotImplementedException(); + model.UpdateMatchupToFile(); } } } diff --git a/TrackerLibrary/DataAccess/TextConnectorProcessor.cs b/TrackerLibrary/DataAccess/TextConnectorProcessor.cs index 4f7463b..3ca0d5c 100644 --- a/TrackerLibrary/DataAccess/TextConnectorProcessor.cs +++ b/TrackerLibrary/DataAccess/TextConnectorProcessor.cs @@ -349,6 +349,42 @@ namespace TrackerLibrary.DataAccess.TextHelpers File.WriteAllLines(GlobalConfig.MatchupFile.FullFilePath(), lines); } + public static void UpdateMatchupToFile(this MatchupModel matchup) + { + List matchups = GlobalConfig.MatchupFile.FullFilePath().LoadFile().ConvertToMatchupModels(); + + MatchupModel oldMatchup = new MatchupModel(); + foreach (MatchupModel m in matchups) + { + if(m.Id == matchup.Id) + { + oldMatchup = m; + } + } + + matchups.Remove(oldMatchup); + + matchups.Add(matchup); + + foreach (MatchupEntryModel entry in matchup.Entries) + { + entry.UpdateEntryToFile(); + } + + List lines = new List(); + foreach (MatchupModel m in matchups) + { + string winner = ""; + if (m.Winner != null) + { + winner = m.Winner.Id.ToString(); ; + } + lines.Add($"{m.Id},{ConvertMatchupEntryListToString(m.Entries)},{winner},{m.MatchupRound}"); + } + + File.WriteAllLines(GlobalConfig.MatchupFile.FullFilePath(), lines); + } + public static void SaveEntryToFile(this MatchupEntryModel entry, string matchupEntryFile) { List entries = GlobalConfig.MatchupEntryFile.FullFilePath().LoadFile().ConvertToMatchupEntryModels(); @@ -380,6 +416,42 @@ namespace TrackerLibrary.DataAccess.TextHelpers } + public static void UpdateEntryToFile(this MatchupEntryModel entry) + { + List entries = GlobalConfig.MatchupEntryFile.FullFilePath().LoadFile().ConvertToMatchupEntryModels(); + + MatchupEntryModel oldEntry = new MatchupEntryModel(); + foreach (MatchupEntryModel me in entries) + { + if(me.Id == entry.Id) + { + oldEntry = me; + } + } + + entries.Remove(oldEntry); + entries.Add(entry); + + List lines = new List(); + foreach (MatchupEntryModel e in entries) + { + string parent = ""; + if (e.ParentMatchup != null) + { + parent = e.ParentMatchup.Id.ToString(); + } + string teamCompeting = ""; + if (e.TeamCompeting != null) + { + teamCompeting = e.TeamCompeting.Id.ToString(); + } + lines.Add($"{e.Id},{teamCompeting},{e.Score},{parent}"); + } + + File.WriteAllLines(GlobalConfig.MatchupEntryFile.FullFilePath(), lines); + + } + public static void SaveToTournamentFile(this List models, string fileName) { diff --git a/TrackerUI/App.config b/TrackerUI/App.config index 3644139..24996ee 100644 --- a/TrackerUI/App.config +++ b/TrackerUI/App.config @@ -1,7 +1,8 @@  - + + diff --git a/TrackerUI/TournamentViewerForm.cs b/TrackerUI/TournamentViewerForm.cs index 610be12..438eb42 100644 --- a/TrackerUI/TournamentViewerForm.cs +++ b/TrackerUI/TournamentViewerForm.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using TrackerLibrary; using TrackerLibrary.Models; namespace TrackerUI @@ -214,7 +215,28 @@ namespace TrackerUI MessageBox.Show("I dont handle tie games."); } + foreach (List round in tournament.Rounds) + { + foreach (MatchupModel rm in round) + { + foreach (MatchupEntryModel me in rm.Entries) + { + if (me.ParentMatchup != null) + { + if (me.ParentMatchup.Id == m.Id) + { + me.TeamCompeting = m.Winner; + GlobalConfig.Connection.UpdateMatchup(rm); + } + + } + } + } + } + LoadMatchups((int)roundDropDown.SelectedItem); + + GlobalConfig.Connection.UpdateMatchup(m); } } }