Пример #1
0
        private async void UpdateLeagues()
        {
            var LeaguesAPIList = await RapidFutballHelper.GetLeagues(SelectedCountry.country);

            Leagues.Clear();
            foreach (var League in LeaguesAPIList)
            {
                Leagues.Add(League);
            }
        }
 public void Clear()
 {
     GameCenter.ClearAll();
     UserManager.Clear();
     Leagues.Clear();
     Players.Clear();
     Rooms.Clear();
     Users.Clear();
     PlayerToRoom.Clear();
     RoomToLeague.Clear();
 }
 private void ReloadLeagues(List <League> leagues)
 {
     Leagues.Clear();
     foreach (var league in leagues.OrderBy(l => l.Name)) //pero mas mejor si lo mando desde el api
     {
         Leagues.Add(new LeagueItemViewModel
         {
             LeagueId = league.LeagueId,
             Logo     = league.Logo,
             Name     = league.Name,
             Teams    = league.Teams,
         });
     }
 }
Пример #4
0
        async public Task GetAvailableLeagues(bool forceRefresh = false)
        {
            Debug.WriteLine(IsBusy);
            //using(new Busy(this))
            {
                Debug.WriteLine(IsBusy);
                try
                {
                    var leagueIds = App.Instance.CurrentAthlete.Memberships.Select(m => m.LeagueId).ToList();
                    var toJoin    = await AzureService.Instance.LeagueManager.Table.Where(l => l.IsAcceptingMembers && l.IsEnabled).ToListAsync();

                    if (leagueIds.Count > 0)
                    {
                        toJoin = toJoin.Where(l => !leagueIds.Contains(l.Id)).ToList();
                    }

                    Leagues.Clear();
                    toJoin.ForEach(l => Leagues.Add(new LeagueViewModel {
                        League = l
                    }));
                }
                catch (Exception e)
                {
                    System.Diagnostics.Debug.WriteLine(e);
                }

                if (Leagues.Count == 0)
                {
                    Leagues.Add(new LeagueViewModel
                    {
                        EmptyMessage = "There are no available leagues to join."
                    });
                }

                Debug.WriteLine(IsBusy);
            }
        }
        public bool Refresh()
        {
            /**
             * Note: checking if cache has changed after refresh
             *
             *  Algorithm:
             *      checking if the sequence had changed (by sequenceEqual).
             *      if it had changed - an update occur. and isChanged = true;
             *
             *  Author:
             *      Idan Izicovich.
             * */

            /* ---------- Cache Dictionaries ---------- */

            // Users
            bool isUserChanged = false;

            if (!UserManager.Users.SequenceEqual(Users))
            {
                Users.Clear();
                UserManager.Users.ToList().ForEach(userPair => Users.Add(userPair.Key, userPair.Value));
                isUserChanged = true;
            }

            // Players
            bool isPlayersChanged = false;

            if (!GameCenter.Players.SequenceEqual(Players.Values, new AddressComparer <Player>()))
            {
                Players.Clear();
                GameCenter.Players.ToList().ForEach(player => Players.Add(player.GetHashCode(), player));
                isPlayersChanged = true;
            }

            // Rooms
            bool isRoomChanged = false;

            if (!GameCenter.Rooms.SequenceEqual(Rooms.Values))
            {
                Rooms.Clear();
                GameCenter.Rooms.ToList().ForEach(room => Rooms.Add(room.GetHashCode(), room));
                isRoomChanged = true;
            }

            // Leagues
            //Undone: idan - make sure this is the right dictionary key needed for mapping the leagues at the cache
            bool isLeagueChange = false;

            if (!GameCenter.Leagues.SequenceEqual(Leagues.Values))
            {
                Leagues.Clear();
                GameCenter.Leagues.ToList().ForEach(league => Leagues.Add(league.GetHashCode(), league));
                isLeagueChange = true;
            }


            /* ------- link-cache dictionaries ---------- */

            // PlayerToRoom
            if (isPlayersChanged | isRoomChanged)
            {
                PlayerToRoom.Clear();
                GameCenter.PlayerToRoom.ToList().ForEach(pair => PlayerToRoom.Add(pair.Key, pair.Value));
            }

            // RoomToLeague
            if (isRoomChanged | isLeagueChange)
            {
                RoomToLeague.Clear();
                GameCenter.RoomToLeague.ToList().ForEach(pair => RoomToLeague.Add(pair.Key, pair.Value));
            }

            return(isLeagueChange | isPlayersChanged | isRoomChanged | isUserChanged);
        }