public static void importTourney() { DataTable infoTable = new DataTable("Info"); infoTable.Columns.Add("Parameter_Name", Type.GetType("System.String")); infoTable.Columns.Add("Parameter_Value", Type.GetType("System.String")); m_dataSet.Tables.Add(infoTable); DataTable namesTable = new DataTable("Names"); namesTable.Columns.Add("Number", Type.GetType("System.Int32")); namesTable.Columns.Add("Team Name", Type.GetType("System.String")); namesTable.Columns.Add("Member 1 Name", Type.GetType("System.String")); namesTable.Columns.Add("Member 2 Name", Type.GetType("System.String")); namesTable.Columns.Add("Member 3 Name", Type.GetType("System.String")); namesTable.Columns.Add("Member 4 Name", Type.GetType("System.String")); namesTable.Columns.Add("Member 5 Name", Type.GetType("System.String")); namesTable.Columns.Add("Member 6 Name", Type.GetType("System.String")); namesTable.Columns.Add("Penalty", Type.GetType("System.Double")); namesTable.Columns.Add("Tie Breaker", Type.GetType("System.Double")); namesTable.Columns.Add("Flags", Type.GetType("System.String")); m_dataSet.Tables.Add(namesTable); DataTable scoresTable = new DataTable("Scores"); scoresTable.Columns.Add("Round Number", Type.GetType("System.Int32")); scoresTable.Columns.Add("Table Number", Type.GetType("System.Int32")); scoresTable.Columns.Add("Team 1 Number", Type.GetType("System.Int32")); scoresTable.Columns.Add("Team 2 Number", Type.GetType("System.Int32")); scoresTable.Columns.Add("Team 1 VPs", Type.GetType("System.Double")); scoresTable.Columns.Add("Team 2 VPs", Type.GetType("System.Double")); scoresTable.Columns.Add("Team 1 Adjustment", Type.GetType("System.Double")); scoresTable.Columns.Add("Team 2 Adjustment", Type.GetType("System.Double")); m_dataSet.Tables.Add(scoresTable); string username = "******"; string password = "******"; string spreadsheetName = Microsoft.VisualBasic.Interaction.InputBox("Provide a Spreadsheet Name", "Spreadsheet Name"); string[] sheetNames = new string[] { "Info", "Names", "Scores" }; if (!string.IsNullOrWhiteSpace(spreadsheetName)) { SpreadSheetAPI ssa = new SpreadSheetAPI(spreadsheetName, username, password); foreach (string sheetName in sheetNames) { ssa.getValues(sheetName, m_dataSet); } } m_tourneyName = spreadsheetName; Constants.CurrentTourneyFolderName = Constants.generateTourneyFolder(m_tourneyName); createTourneyDatabases(); createSwissLeague(); }
private void loadEventsInBackGround_DoWork(object sender, DoWorkEventArgs e) { try { DateTime startDate = calendarGetEvents_startDate.Value; DateTime endDate = calendarGetEvents_endDate.Value; SortableBindingList <IndianCalendarEvent> test = calendarAPI.getEvents(startDate, endDate.AddHours(24), calendarGetEvents_SearchTextbox.Text); SpreadSheetAPI ssa = new SpreadSheetAPI("Pair Results City And Event Names", "*****@*****.**", "kibitzer"); DataTable table = ssa.getValuesFromSheet("Sheet1"); e.Result = Tuple.Create <SortableBindingList <IndianCalendarEvent>, DataTable>(test, table); } catch (Exception ex) { MessageBox.Show(" Here" + ex.Message); e.Result = null; } }
private void button1_Click(object sender, EventArgs e) { TextBoxTraceListener _textBoxListener = new TextBoxTraceListener(calendarGetEvents_Status); Trace.Listeners.Add(_textBoxListener); try { CalendarAPI cApi = new CalendarAPI("*****@*****.**", "kibitzer"); SortableBindingList <IndianCalendarEvent> test = cApi.getEvents(calendarGetEvents_startDate.Value, calendarGetEvents_endDate.Value, calendarGetEvents_SearchTextbox.Text); this.dataGridView1.DataSource = test; SpreadSheetAPI ssa = new SpreadSheetAPI("Pair Results City And Event Names", "*****@*****.**", "kibitzer"); DataTable table = ssa.getValuesFromSheet("Sheet1"); } catch (Exception ex) { MessageBox.Show(ex.Message); } Trace.Listeners.Remove(_textBoxListener); }
private static void ProcessMagicScoring() { bool uploadScores = Convert.ToBoolean(configParameters["UploadToSpreadsheet"]); string inputFolder = configParameters["InputFolder"]; string drawFileName = configParameters["MagicDrawFileName"]; Dictionary <int, int> scores; Console.WriteLine("Reading draw..."); DataTable draw = ReadMagicDraw(inputFolder); Console.WriteLine("Reading scores..."); scores = ReadMagicScores(inputFolder); // Write out the draw file Console.WriteLine("Writing draw file..."); GenerateDrawHTML(draw, scores); // Upload to spreadsheet if asked to do so, but only if a round has been completed if (uploadScores && roundCompleted > 0) { Console.WriteLine("Initializing spreadsheet..."); spreadsheetAPI = new SpreadSheetAPI(configParameters["GoogleSpreadsheetName"], configParameters["Username"], configParameters["Password"], debug); Console.WriteLine(String.Format("Reading draw for round {0}...", roundCompleted)); DataTable prevDraw = LoadPreviousDraw(); Console.WriteLine("Merging draw and scores..."); MergeDrawAndScores(prevDraw, scores); Console.WriteLine("Uploading scores to spreadsheet..."); spreadsheetAPI.updateScores(roundCompleted, prevDraw, debug); } // Write the current draw and cumulative scores to a file so we can use it later Console.WriteLine("Writing draw and scores to file..."); WriteScoresToFile(scores); WriteDrawToFile(draw); }
static void Main(string[] args) { #region Initial Setup long elapsedTime; Stopwatch stopwatch = null; NameValueCollection nameNumberMapping = null; SpreadSheetAPI spreadsheetAPI = null; SitesAPI sitesAPI = null; // Read all configuration parameters configParameters = ReadConfigParameters(); bool debug = Convert.ToBoolean(configParameters["DebugMode"]); playOffMode = Convert.ToBoolean(configParameters["Playoffs"]); isMultiSegment = Convert.ToInt16(configParameters["NumberOfSegmentsPerRound"]) > 1; #region Initialize SpreadsheetAPI and gather information if (Boolean.Parse(configParameters["RunUpdateGoogleSpreadsheet"])) { Console.WriteLine("Retrieving event parameter data from spreadsheet"); Console.WriteLine(); try { spreadsheetAPI = new SpreadSheetAPI(configParameters["GoogleSpreadsheetName"], configParameters["Username"], configParameters["Password"], debug); totalNumberOfTeams = spreadsheetAPI.getNumberOfTeams(); eventName = spreadsheetAPI.getEventName(); numberOfBoardsPerRound = spreadsheetAPI.getNumberOfBoards(); nameNumberMapping = spreadsheetAPI.getTeamNames(debug); isMultiRound = spreadsheetAPI.getNumberOfRounds() > 1; } catch (Exception) { if (debug) { Console.WriteLine("Spreadsheet call failed. Using parameters from Config"); } GetEventParametersFromConfig(out totalNumberOfTeams, out eventName, out numberOfBoardsPerRound, out nameNumberMapping); } } else { Console.WriteLine("Retrieving event parameter data from config"); Console.WriteLine(); GetEventParametersFromConfig(out totalNumberOfTeams, out eventName, out numberOfBoardsPerRound, out nameNumberMapping); } #endregion // If we are in playoffs, always read number of rounds and teams from config if (isMultiSegment) { numberOfBoardsPerRound = Convert.ToInt32(configParameters["NumberOfBoardsPerSegment"]); } if (playOffMode) { totalNumberOfTeams = Convert.ToInt32(configParameters["TotalNumberOfTeams"]); } // Initialize Google SitesAPI Console.WriteLine("Initializing connection to Google Site"); Console.WriteLine(); if (Boolean.Parse(configParameters["RunUpdateGoogleSite"])) { sitesAPI = new SitesAPI(configParameters["GoogleSiteName"], configParameters["Username"], configParameters["Password"], debug); } #endregion #region Main Loop // Run continuously while (true) { try { stopwatch = Stopwatch.StartNew(); if (debug) { Console.WriteLine("Running at " + DateTime.Now.ToString()); } // Calculate Scores and Update Files Console.WriteLine("Creating Butler, Running scores and Board files"); Console.WriteLine(); DataTable runningScores = CreateButlerAndRunningScoresFiles(totalNumberOfTeams, nameNumberMapping, debug); if (Boolean.Parse(configParameters["RunUpdateGoogleSite"])) { // Upload Running Scores Console.WriteLine("Uploading running scores"); Console.WriteLine(); sitesAPI.uploadDirectory(configParameters["OutputFolder"] + "\\runningscores", configParameters["GoogleRunningScoresRoot"], configParameters["BackupFolder"]); } if (isEndOfSegment) { // Upload Butler Scores at the end of each segment if (Boolean.Parse(configParameters["RunUpdateGoogleSite"]) && Boolean.Parse(configParameters["UseButlerScores"])) { Console.WriteLine("Uploading Butler Scores"); Console.WriteLine(); sitesAPI.uploadDirectory(configParameters["OutputFolder"] + "\\butlerscores", configParameters["GoogleButlerScoresRoot"], configParameters["BackupFolder"]); } // Only write to the spreadsheet at the end of the round - we don't track segment scores in the spreadsheet if (Boolean.Parse(configParameters["RunUpdateGoogleSpreadsheet"]) && segmentInProgress == Convert.ToInt16(configParameters["NumberOfSegmentsPerRound"])) { Console.WriteLine(String.Format("Uploading spreadsheet with round scores for Round {0}", roundInProgress)); Console.WriteLine(); GetWebScores(ref runningScores, nameNumberMapping); spreadsheetAPI.updateScores(roundInProgress, runningScores, debug); } } } catch (Exception e) { Console.WriteLine("Exception Encountered : " + e.ToString()); } if (Convert.ToBoolean(configParameters["RunOnce"])) { break; } Console.WriteLine("Done processing..."); Console.WriteLine(); elapsedTime = stopwatch.ElapsedMilliseconds; if (debug) { Console.WriteLine("...Sleeping for " + (long.Parse(configParameters["UpdateFrequency"]) - elapsedTime) + " milliseconds."); } if (elapsedTime < long.Parse(configParameters["UpdateFrequency"])) { Thread.Sleep((int)(long.Parse(configParameters["UpdateFrequency"]) - elapsedTime)); } } #endregion }