private void button2_Click(object sender, EventArgs e) { //ApplicationLogic.DBManager test = new ApplicationLogic.DBManager(); Utils.IOManager temp = new Utils.IOManager(); temp.ReInitSettings(); }
/* * Saves directly to central database or as SQL commands into a text file */ public void saveGameInstance(int type) { //modify database server here //TODO: database server as input if (type == 1) { #region Save to DB var id = Guid.NewGuid().ToString(); string servername = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=""C:\Users\K\Desktop\GitHub22\GitHub copy\A Multi-player Game for Studying Federated Learning Incentive Schemes\FYP_IncentiveMechanismSimulatorMVP\SIMDATABASE.MDF"";Integrated Security=True"; //string servername = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=""D:\FYP Current\FYP_IncentiveMechanismSimulatorMVP\SimDatabase.mdf"";Integrated Security=True"; //string servername2 = "Server=(LocalDB)\\MSSQLLocalDB;Database=Database1.mdf;Integrated Security=True;"; //MySqlConnection test = new MySqlConnection(servername2); System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = servername; try { con.Open(); }catch (Exception e) { Console.WriteLine("Error accessing DB"); this.saveGameInstance(2); return; } System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "INSERT INTO GameInstance(Gid,MarketShare,StartingAsset,MinTrainingLength,MaxTrainingLength,MinBidLength,MinProfitLength,NumFederations," + "NumPlayers,MinDataQuality,MaxDataQuality,MinDataQuantity,MaxDataQuantity,DataQualityWeight,DataQuantityWeight,MinResourceQuantity,MaxResourceQuantity,InitDataQualityTH,InitDataQuantityTH," + "InitResourceQuantityTh,InitAmountTh,MaxTurns,MarketShareFederationPct) " + "VALUES('" + _gameInstance.Gid + "'," + _gameInstance.MarketShare + "," + _gameInstance.StartingAsset + "," + _gameInstance.MinTrainingLength + "," + _gameInstance.MaxTrainingLength + "," + _gameInstance.MinBidLength + "," + _gameInstance.MinProfitLength + "," + _gameInstance.NumFederations + "," + _gameInstance.NumPlayers + "," + _gameInstance.MinDataQuality + "," + _gameInstance.MaxDataQUality + "," + _gameInstance.MinDataQuantity + "," + _gameInstance.MaxDataQuantity + "," + _gameInstance.DataQualityWeight + "," + _gameInstance.DataQuantityWeight + "," + _gameInstance.MinResourceQuantity + "," + _gameInstance.MaxResourceQuantity + "," + _gameInstance.InitDataQualityTh + "," + _gameInstance.InitDataQuantityTh + "," + _gameInstance.InitResourceQuantityTh + "," + _gameInstance.InitAmountTh + "," + _gameInstance.MaxTurns + "," + _gameInstance.MarketShareFederationPct + ")"; cmd.Connection = con; cmd.ExecuteNonQuery(); int gid = 0; cmd.CommandText = "SELECT Id FROM GameInstance WHERE Gid='" + _gameInstance.Gid + "'"; SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { gid = (int)reader["Id"];// Console.WriteLine("Game Instance Index "+reader["Id"]); } reader.Close(); foreach (Federations f in this._federationList) { cmd.CommandText = "INSERT INTO Federations(Gid,Fid,FederationAsset,SchemeAdopted,AdmissionPolicyId) VALUES (" + gid + "," + f.Fid + "," + f.FederationAsset + ",'" + f.SchemeAdopted + "'," + f.AdmissionPolicyId + ")"; cmd.ExecuteNonQuery(); } foreach (Participants p in this._participantsList) { int bit = 0; if (p.HumanPlayer) { bit = 1; } cmd.CommandText = "INSERT INTO Participants(Gid,Pid,Strategy,HumanPlayer) VALUES (" + gid + "," + p.Pid + ",'" + p.Strategy + "'," + bit + ")"; cmd.ExecuteNonQuery(); } foreach (Bids b in this._bidsHistory) { int bit = 0; if (b.Success) { bit = 1; } cmd.CommandText = "INSERT INTO Bids(Gid,Pid,Fid,AmountBid,ResourceQty,DataQty,DataQuality,Success) VALUES (" + gid + "," + b.Pid + "," + b.Fid + "," + b.AmountBid + "," + b.AmountBid + "," + b.DataQty + "," + b.DataQuality + "," + bit + ")"; cmd.ExecuteNonQuery(); } foreach (InTrainings t in this._inTrainingList) { cmd.CommandText = "INSERT INTO InTrainings(Pid,Fid,Progression,Turn,DataQuality,DataQuantity,ResourceQuantity,BidAmount,Gid) VALUES(" + t.Pid + "," + t.Fid + "," + t.Progression + "," + t.Turn + "," + t.DataQuality + "," + t.DataQuantity + "," + t.ResourceQuantity + "," + t.BidAmount + "," + gid + ")"; cmd.ExecuteNonQuery(); } foreach (FederationHistory fh in this._federationHistory) { cmd.CommandText = "INSERT INTO FederationHistory(Fid,Progression,Turn,Asset,TimeLeftInState,State,MarketShare,ModelQuality,Gid) VALUES(" + fh.Fid + "," + fh.Progression + "," + fh.Turn + "," + fh.Asset + "," + fh.TimeLeftInState + ",'" + fh.State + "'," + fh.MarketShare + "," + fh.ModelQuality + "," + gid + ")"; cmd.ExecuteNonQuery(); } foreach (FederationParticipantsHistory fph in this._federationParticipantsHistory) { cmd.CommandText = "INSERT INTO FederationParticipantsHistory(Progression,Turn,Pid,ResourceCommitted,DataQuantityCommitted,DataQualityCommitted,BidAmount,Fid,Gid) VALUES(" + fph.Progression + "," + fph.Turn + "," + fph.Pid + "," + fph.ResourceCommitted + "," + fph.DataQuantityCommitted + "," + fph.DataQualityCommitted + "," + fph.BidAmount + "," + fph.Fid + "," + gid + ")"; cmd.ExecuteNonQuery(); } foreach (ParticipantHistory ph in this.ParticipantsHistoryList) { cmd.CommandText = "INSERT INTO ParticipantHistory(Pid,Progression,Turn,Asset,DataQuantity,DataQuality,ResourceQuantity,Gid) VALUES(" + ph.Pid + "," + ph.Progression + "," + ph.Turn + "," + ph.Asset + "," + ph.DataQuantity + "," + ph.DataQuality + "," + ph.ResourceQuantity + "," + gid + ")"; cmd.ExecuteNonQuery(); } con.Close(); #endregion } else { #region Save to text file StringBuilder sb = new StringBuilder(); sb.Append("INSERT INTO GameInstance(Gid,MarketShare,StartingAsset,MinTrainingLength,MaxTrainingLength,MinBidLength,MinProfitLength,NumFederations," + "NumPlayers,MinDataQuality,MaxDataQuality,MinDataQuantity,MaxDataQuantity,DataQualityWeight,DataQuantityWeight,MinResourceQuantity,MaxResourceQuantity,InitDataQualityTH,InitDataQuantityTH," + "InitResourceQuantityTh,InitAmountTh,MaxTurns,MarketShareFederationPct) " + "VALUES('" + _gameInstance.Gid + "'," + _gameInstance.MarketShare + "," + _gameInstance.StartingAsset + "," + _gameInstance.MinTrainingLength + "," + _gameInstance.MaxTrainingLength + "," + _gameInstance.MinBidLength + "," + _gameInstance.MinProfitLength + "," + _gameInstance.NumFederations + "," + _gameInstance.NumPlayers + "," + _gameInstance.MinDataQuality + "," + _gameInstance.MaxDataQUality + "," + _gameInstance.MinDataQuantity + "," + _gameInstance.MaxDataQuantity + "," + _gameInstance.DataQualityWeight + "," + _gameInstance.DataQuantityWeight + "," + _gameInstance.MinResourceQuantity + "," + _gameInstance.MaxResourceQuantity + "," + _gameInstance.InitDataQualityTh + "," + _gameInstance.InitDataQuantityTh + "," + _gameInstance.InitResourceQuantityTh + "," + _gameInstance.InitAmountTh + "," + _gameInstance.MaxTurns + "," + _gameInstance.MarketShareFederationPct + ")" + Environment.NewLine); string gid = _gameInstance.Gid; foreach (Federations f in this._federationList) { sb.Append("INSERT INTO Federations(Gid,Fid,FederationAsset,SchemeAdopted,AdmissionPolicyId) VALUES (" + gid + "," + f.Fid + "," + f.FederationAsset + ",'" + f.SchemeAdopted + "'," + f.AdmissionPolicyId + ")" + Environment.NewLine); } foreach (Participants p in this._participantsList) { int bit = 0; if (p.HumanPlayer) { bit = 1; } sb.Append("INSERT INTO Participants(Gid,Pid,Strategy,HumanPlayer) VALUES (" + gid + "," + p.Pid + ",'" + p.Strategy + "'," + bit + ")" + Environment.NewLine); } foreach (Bids b in this._bidsHistory) { int bit = 0; if (b.Success) { bit = 1; } sb.Append("INSERT INTO Bids(Gid,Pid,Fid,AmountBid,ResourceQty,DataQty,DataQuality,Success) VALUES (" + gid + "," + b.Pid + "," + b.Fid + "," + b.AmountBid + "," + b.AmountBid + "," + b.DataQty + "," + b.DataQuality + "," + bit + ")" + Environment.NewLine); } foreach (InTrainings t in this._inTrainingList) { sb.Append("INSERT INTO InTrainings(Pid,Fid,Progression,Turn,DataQuality,DataQuantity,ResourceQuantity,BidAmount,Gid) VALUES(" + t.Pid + "," + t.Fid + "," + t.Progression + "," + t.Turn + "," + t.DataQuality + "," + t.DataQuantity + "," + t.ResourceQuantity + "," + t.BidAmount + "," + gid + ")" + Environment.NewLine); } foreach (FederationHistory fh in this._federationHistory) { sb.Append("INSERT INTO FederationHistory(Fid,Progression,Turn,Asset,TimeLeftInState,State,MarketShare,ModelQuality,Gid) VALUES(" + fh.Fid + "," + fh.Progression + "," + fh.Turn + "," + fh.Asset + "," + fh.TimeLeftInState + ",'" + fh.State + "'," + fh.MarketShare + "," + fh.ModelQuality + "," + gid + ")" + Environment.NewLine); } foreach (FederationParticipantsHistory fph in this._federationParticipantsHistory) { sb.Append("INSERT INTO FederationParticipantsHistory(Progression,Turn,Pid,ResourceCommitted,DataQuantityCommitted,DataQualityCommitted,BidAmount,Fid,Gid) VALUES(" + fph.Progression + "," + fph.Turn + "," + fph.Pid + "," + fph.ResourceCommitted + "," + fph.DataQuantityCommitted + "," + fph.DataQualityCommitted + "," + fph.BidAmount + "," + fph.Fid + "," + gid + ")" + Environment.NewLine); } foreach (ParticipantHistory ph in this.ParticipantsHistoryList) { sb.Append("INSERT INTO ParticipantHistory(Pid,Progression,Turn,Asset,DataQuantity,DataQuality,ResourceQuantity,Gid) VALUES(" + ph.Pid + "," + ph.Progression + "," + ph.Turn + "," + ph.Asset + "," + ph.DataQuantity + "," + ph.DataQuality + "," + ph.ResourceQuantity + "," + gid + ")" + Environment.NewLine); } Utils.IOManager tempIO = new Utils.IOManager(); tempIO.CreateTextFile(sb.ToString()); #endregion } }