Ejemplo n.º 1
0
        /// <summary>
        /// Возвращает список полученных игр
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GetAvailableGames(object sender, ResponseEventArgs e)
        {
            GetListGamesResponse response = e.Response as GetListGamesResponse;

            if (response != null)
            {
                if (response.Games != null)
                {
                    //Список создателей, которые уже есть у нас в списке
                    List <DTOUser> creators = new List <DTOUser>();
                    foreach (var game in _games)
                    {
                        creators.Add(game.Creator);
                    }

                    //Добавляем новые игры, которых у нас нету в списке
                    List <DTOAwaitingGame> newGames = response.Games.ToList();
                    foreach (var game in newGames)
                    {
                        DTOUser creator = creators.FirstOrDefault(c => c.Login.Equals(game.Creator.Login));
                        if (creator == null)
                        {
                            _games.Add(game);
                        }
                    }

                    //Удаляем игры которых у же нету в списке, который пришел
                    foreach (var creator in creators)
                    {
                        var removedCreator = newGames.FirstOrDefault(g => g.Creator.Login.Equals(creator.Login));
                        if (removedCreator == null)
                        {
                            var game = _games.First(g => g.Creator.Login.Equals(creator.Login));
                            _games.Remove(game);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
 public void GetListAvailableGamesCallback(GetListGamesResponse response)
 {
     syncContext.Post(new SendOrPostCallback(OnBroadcast <GetListGamesResponse>), response);
 }