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;
     }
 }
示例#3
0
        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);
        }
示例#5
0
        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
        }