Example #1
0
        //the inserting of every runner that happens on an asynchronous thread
        public static Task ProcessRunners(string[] FirstName, string[] LastName, DateTime[] DOB, char[] Genders, string[] BibID, string[] Team, string[] Orginization, string RaceName, string Connection, IProgress <ProgressReport> progress)
        {
            BuildIfNotExsistDB();
            int raceID = GetRaceID(RaceName);
            int index  = 1;
            //big assumption that all arrays are same size or atleast larger than the FirstName array
            int totalProcess  = FirstName.Length;
            var progessReport = new ProgressReport();

            return(Task.Run(() =>
            {
                using (var conn = new SQLiteConnection(Connection))
                {
                    conn.Open();
                    using (var cmd = new SQLiteCommand())
                    {
                        for (int i = 0; i < totalProcess; i++)
                        {
                            cmd.Connection = conn;
                            cmd.CommandText = "Insert Into Runners(FirstName, LastName, DOB, Gender) Values(@FirstName, @LastName, @DOB, @Sex);";
                            cmd.Parameters.AddWithValue("@FirstName", FirstName[i]);
                            cmd.Parameters.AddWithValue("@LastName", LastName[i]);
                            cmd.Parameters.AddWithValue("@DOB", DOB[i].ToString("yyyy-MM-dd"));
                            cmd.Parameters.AddWithValue("@Sex", Genders[i]);
                            cmd.ExecuteNonQuery();

                            cmd.CommandText = "Insert into RaceRunner(RunnerID, RaceID, BibID, Orginization, Team) Values(" +
                                              "(select RunnerID from Runners where FirstName=@FirstName AND LastName=@LastName Limit 1)," +
                                              "@Race," +
                                              "@BibID,@Orginization,@Team);";

                            cmd.Parameters.AddWithValue("@Race", raceID);
                            cmd.Parameters.AddWithValue("@BibID", BibID[i]);
                            cmd.Parameters.AddWithValue("@Team", Team[i]);
                            cmd.Parameters.AddWithValue("@Orginization", Orginization[i]);
                            cmd.ExecuteNonQuery();
                            progessReport.PercentComplete = index++ *100 / totalProcess;
                            progress.Report(progessReport);
                        }
                    }
                    conn.Close();
                    TobyTimer.BackupAfter60Seconds();
                }
            }));
        }
Example #2
0
        //the inserting of every runner that happens on an asynchronous thread
        public static Task ProcessRunners(string[] FirstName, string[] LastName, DateTime[] DOB, char[] Genders, string[] BibID, string[] Team, string[] Orginization, string RaceName, string Connection, IProgress<ProgressReport> progress)
        {
            BuildIfNotExsistDB();
            int raceID = GetRaceID(RaceName);
            int index = 1;
            //big assumption that all arrays are same size or atleast larger than the FirstName array
            int totalProcess = FirstName.Length;
            var progessReport = new ProgressReport();
            return Task.Run(() =>
            {
                using (var conn = new SQLiteConnection(Connection))
                {
                    conn.Open();
                    using (var cmd = new SQLiteCommand())
                    {
                        for (int i = 0; i < totalProcess; i++)
                        {
                            cmd.Connection = conn;
                            cmd.CommandText = "Insert Into Runners(FirstName, LastName, DOB, Gender) Values(@FirstName, @LastName, @DOB, @Sex);";
                            cmd.Parameters.AddWithValue("@FirstName", FirstName[i]);
                            cmd.Parameters.AddWithValue("@LastName", LastName[i]);
                            cmd.Parameters.AddWithValue("@DOB", DOB[i].ToString("yyyy-MM-dd"));
                            cmd.Parameters.AddWithValue("@Sex", Genders[i]);
                            cmd.ExecuteNonQuery();

                            cmd.CommandText = "Insert into RaceRunner(RunnerID, RaceID, BibID, Orginization, Team) Values(" +
                                "(select RunnerID from Runners where FirstName=@FirstName AND LastName=@LastName Limit 1)," +
                                "@Race," +
                                "@BibID,@Orginization,@Team);";

                            cmd.Parameters.AddWithValue("@Race", raceID);
                            cmd.Parameters.AddWithValue("@BibID", BibID[i]);
                            cmd.Parameters.AddWithValue("@Team", Team[i]);
                            cmd.Parameters.AddWithValue("@Orginization", Orginization[i]);
                            cmd.ExecuteNonQuery();
                            progessReport.PercentComplete = index++ * 100 / totalProcess;
                            progress.Report(progessReport);
                        }
                    }
                    conn.Close();
                    TobyTimer.BackupAfter60Seconds();
                }
            });
        }