Пример #1
0
        public async Task getTeams()
        {
            var teamList = await EventsHttp.GetEventTeamsListHttp("2017calb");

            foreach (var team in teamList)
            {
                Console.WriteLine(team.team_number);
            }
        }
        public async Task getEventOprs()
        {
            var data = await EventsHttp.GetEventTeamsOprsHttp(GlobalVariables.regionalPointer);

            SortedDictionary <int, double> oprs  = new SortedDictionary <int, double>();
            SortedDictionary <int, double> dprs  = new SortedDictionary <int, double>();
            SortedDictionary <int, double> ccwms = new SortedDictionary <int, double>();

            foreach (var i in data.oprs)
            {
                oprs.Add(Convert.ToInt32(i.Key.Remove(0, 3)), i.Value);
            }
            foreach (var i in data.dprs)
            {
                dprs.Add(Convert.ToInt32(i.Key.Remove(0, 3)), i.Value);
            }
            foreach (var i in data.ccwms)
            {
                ccwms.Add(Convert.ToInt32(i.Key.Remove(0, 3)), i.Value);
            }

            var db       = new FirebaseClient(GlobalVariables.firebaseURL);
            var teamData = await db
                           .Child(GlobalVariables.regionalPointer)
                           .Child("teamData")
                           .OnceAsync <TeamData>();

            foreach (var i in teamData)
            {
                double result;

                if (oprs.TryGetValue(i.Object.teamNumber, out result))
                {
                    i.Object.tbaOPR = result;
                }
                if (dprs.TryGetValue(i.Object.teamNumber, out result))
                {
                    i.Object.tbaDPR = result;
                }
                if (ccwms.TryGetValue(i.Object.teamNumber, out result))
                {
                    i.Object.tbaCCWM = result;
                }

                await db.Child(GlobalVariables.regionalPointer)
                .Child("teamData")
                .Child(i.Object.teamNumber.ToString())
                .PutAsync(i.Object);
            }
        }
        public async Task UpdateTeamList()
        {
            busyIcon.IsRunning = true;
            busyIcon.IsVisible = true;
            if (CheckInternetConnectivity.InternetStatus())
            {
                var teamList = await EventsHttp.GetEventTeamsListHttp(GlobalVariables.regionalPointer);

                var sorted = from Teams in teamList orderby Teams.team_number select Teams;

                var db = new FirebaseClient(GlobalVariables.firebaseURL);

                foreach (var team in sorted)
                {
                    var fbTeam = await db
                                 .Child(GlobalVariables.regionalPointer)
                                 .Child("teamData")
                                 .Child(team.team_number.ToString())
                                 .OnceSingleAsync <TeamData>();

                    if (fbTeam == null)
                    {
                        var send = db
                                   .Child(GlobalVariables.regionalPointer)
                                   .Child("teamData")
                                   .Child(team.team_number.ToString())
                                   .PutAsync(new TeamData()
                        {
                            teamName   = team.nickname,
                            teamNumber = team.team_number
                        });
                    }
                    Console.WriteLine("Team Added: " + team.team_number);
                }
                await DisplayAlert("Done", "Team List Successfully Updated", "OK");

                busyIcon.IsRunning = false;
                busyIcon.IsVisible = false;
            }
        }
        public async Task UpdateMatchList()
        {
            if (CheckInternetConnectivity.InternetStatus())
            {
                busyIcon.IsRunning = true;
                busyIcon.IsVisible = true;

                var matchList = await EventsHttp.GetEventMatchesHttp(GlobalVariables.regionalPointer);

                var sorted = from Match in matchList orderby Match.time select Match;

                string matchNumber;
                foreach (var match in sorted.ToArray())
                {
                    Console.WriteLine("Match: " + match.match_number);
                }

                var db = new FirebaseClient(GlobalVariables.firebaseURL);
                foreach (var match in sorted)
                {
                    if (match.comp_level == "qm")
                    {
                        if (match.match_number < 10)
                        {
                            matchNumber = match.comp_level.ToUpper() + "0" + match.match_number;
                        }
                        else
                        {
                            matchNumber = match.comp_level.ToUpper() + match.match_number;
                        }
                    }
                    else
                    {
                        matchNumber = match.comp_level.ToUpper() + match.set_number + "M" + match.match_number;
                    }

                    int   m = 0, n = 0;
                    int[] blueA = new int[match.alliances.blue.team_keys.Length + match.alliances.blue.surrogate_team_keys.Length],
                    redA = new int[match.alliances.red.team_keys.Length + match.alliances.red.surrogate_team_keys.Length];

                    // remove the frc label from each team
                    foreach (var team in match.alliances.blue.team_keys)
                    {
                        blueA[m++] = Convert.ToInt32(team.Remove(0, 3));
                    }
                    foreach (var team in match.alliances.blue.surrogate_team_keys)
                    {
                        blueA[m++] = Convert.ToInt32(team.Remove(0, 3));
                    }
                    foreach (var team in match.alliances.red.team_keys)
                    {
                        redA[n++] = Convert.ToInt32(team.Remove(0, 3));
                    }
                    foreach (var team in match.alliances.red.surrogate_team_keys)
                    {
                        redA[n++] = Convert.ToInt32(team.Remove(0, 3));
                    }

                    int    i = 1;
                    string matchID;
                    foreach (var robot in blueA)
                    {
                        matchID = robot + "-" + matchNumber;
                        await db
                        .Child(GlobalVariables.regionalPointer)
                        .Child("tableauMatchSchedule")
                        .Child(matchID)
                        .OnceSingleAsync <TableauMatchShedule>();

                        await db
                        .Child(GlobalVariables.regionalPointer)
                        .Child("tableauMatchSchedule")
                        .Child(matchID)
                        .PutAsync(new TableauMatchShedule()
                        {
                            matchID     = matchID,
                            matchNumber = matchNumber,
                            alliance    = "Blue",
                            alliancePos = i++,
                            teamNumber  = robot,
                            matchTime   = match.time
                        });
                    }

                    i = 1;
                    foreach (var robot in redA)
                    {
                        matchID = robot + "-" + matchNumber;
                        await db
                        .Child(GlobalVariables.regionalPointer)
                        .Child("tableauMatchSchedule")
                        .Child(matchID)
                        .OnceSingleAsync <TableauMatchShedule>();

                        await db
                        .Child(GlobalVariables.regionalPointer)
                        .Child("tableauMatchSchedule")
                        .Child(matchID)
                        .PutAsync(new TableauMatchShedule()
                        {
                            matchID     = matchID,
                            matchNumber = matchNumber,
                            alliance    = "Red",
                            alliancePos = i++,
                            teamNumber  = robot,
                            matchTime   = match.time
                        });
                    }
                    // Why is this needed?

                    var fbMatch = await db
                                  .Child(GlobalVariables.regionalPointer)
                                  .Child("matchList")
                                  .Child(matchNumber)
                                  .OnceSingleAsync <EventMatchData>();

                    var send = db
                               .Child(GlobalVariables.regionalPointer)
                               .Child("matchList")
                               .Child(matchNumber)
                               .PutAsync(new EventMatchData()
                    {
                        matchNumber = matchNumber,
                        Blue        = blueA,
                        Red         = redA,
                        matchTime   = match.time
                    });
                    Console.WriteLine("Completed Match: " + matchNumber);
                }
                await DisplayAlert("Done", "Match List Successfully Updated", "OK");

                busyIcon.IsRunning = false;
                busyIcon.IsVisible = false;
            }
        }