Example #1
0
        private void FillArenaLayoutFilters(ArenaLayout arenaLayout, dynamic arenaLayoutElement, SkinDefinitionContext skinDefinitionContext)
        {
            var filteringInfoElement = arenaLayoutElement.filteringInfo;

            if (filteringInfoElement == null)
            {
                return;
            }


            foreach (var filterElement in filteringInfoElement)
            {
                var label  = ConvertDynamicValue <string>(filterElement.label);
                var filter = skinDefinitionContext.GetFilter(label);

                if (filter == null)
                {
                    filter = new Filter(label,
                                        GetArenaFilterName(filterElement),
                                        ((JObject)filterElement).Properties().Select(p => new AttributeValue(p.Name, p.Value.ToString())));

                    skinDefinitionContext.AvailableFilters.Add(filter);
                }

                arenaLayout.FilteringInfo.Add(filter);
            }
        }
Example #2
0
        private void FillArenaLayoutFilters(ArenaLayout arenaLayout, XElement arenaXmlElement, SkinDefinitionContext skinDefinitionContext)
        {
            var filteringInfoXmlElement = arenaXmlElement.Element(XmlNames.filteringInfo);

            if (filteringInfoXmlElement == null)
            {
                return;
            }


            foreach (var filterXmlElement in filteringInfoXmlElement.Elements(XmlNames.filter))
            {
                var label  = filterXmlElement.GetAttributeValue(XmlNames.label);
                var filter = skinDefinitionContext.GetFilter(label);

                if (filter == null)
                {
                    filter = new Filter(label,
                                        GetArenaFilterName(filterXmlElement),
                                        filterXmlElement.Attributes().Select(a => new AttributeValue(a.Name.LocalName, a.Value)));
                    skinDefinitionContext.AvailableFilters.Add(filter);
                }

                arenaLayout.FilteringInfo.Add(filter);
            }
        }
Example #3
0
 private void FillArenaLayout(ArenaLayout arenaLayout, XElement arenaXmlElement, SkinDefinitionContext skinDefinitionContext)
 {
     FillArenaLayoutGames(arenaLayout, arenaXmlElement, skinDefinitionContext);
     FillArenaLayoutGridInfo(arenaLayout, arenaXmlElement);
     FillArenaLayoutFilters(arenaLayout, arenaXmlElement, skinDefinitionContext);
     FillArenaLayoutAlsoPlayingGames(arenaLayout, arenaXmlElement, skinDefinitionContext);
 }
Example #4
0
        private Arena BuildArena(ArenaViewModel arenaViewModel)
        {
            var arena = new Arena(arenaViewModel.Type, arenaViewModel.Name, arenaViewModel.IsNewGamesArena);

            foreach (var layoutViewModel in arenaViewModel.Layouts)
            {
                var layout = new ArenaLayout(layoutViewModel.PlayerStatus.Id, layoutViewModel.Attributes);

                layout.DataGridInfo = layoutViewModel.DataGridInfo;

                foreach (var filterViewModel in layoutViewModel.Filters)
                {
                    layout.FilteringInfo.Add(new Filter(filterViewModel.Label, filterViewModel.Name, filterViewModel.Attributes));
                }

                foreach (var alsoPlayGameViewModel in layoutViewModel.AlsoPlayingGames)
                {
                    layout.AlsoPlayingGames.Add(new Game(alsoPlayGameViewModel.GameType, alsoPlayGameViewModel.Name));
                }

                foreach (var gameViewModel in layoutViewModel.Games.Select(g => g.ConvertToAvailableGame()))
                {
                    layout.Games.Add(gameViewModel.BuildArenaGame());
                }

                arena.Layouts.Add(layout);
            }

            return(arena);
        }
Example #5
0
        private void FillArenasCollection(ArenaCollection arenasCollection, SkinDefinitionContext skinDefinitionContext)
        {
            var arenasElementsByType = GetArenasGroupedByType();

            foreach (var arenaGroup in arenasElementsByType)
            {
                var arenaType = skinDefinitionContext.GetArenaType(arenaGroup.Key);

                var arena = new Arena(arenaType.Id, arenaType.Name, arenaGroup.Value.Any(element => ConvertDynamicValue <bool>(element.newGame) == true));

                foreach (var arenaLayoutElement in arenaGroup.Value)
                {
                    //make sure the JPVisible attribute is always there
                    var attributes = JsonUtils.ExtractAllAttributes((JObject)arenaLayoutElement);
                    if (!attributes.Any(a => a.Name == JsonNames.jpVisible))
                    {
                        attributes.Add(new AttributeValue(JsonNames.jpVisible, "false"));
                    }

                    var arenaLayout = new ArenaLayout(ExtractPlayerStatus(arenaLayoutElement.playerStatus), attributes);

                    FillArenaLayout(arenaLayout, arenaLayoutElement, skinDefinitionContext);

                    arena.Layouts.Add(arenaLayout);
                }

                arenasCollection.Add(arena);
            }
        }
Example #6
0
        private void FillArenaLayoutAlsoPlayingGames(ArenaLayout arenaLayout, XElement arenaXmlElement, SkinDefinitionContext skinDefinitionContext)
        {
            var alsoPlayingGamesXmlElement = arenaXmlElement.Element(XmlNames.alsoPlayingGames);

            if (alsoPlayingGamesXmlElement == null)
            {
                return;
            }

            foreach (var alsoPlayingGameXmlElement in alsoPlayingGamesXmlElement.Elements(XmlNames.alsoPlayingGame))
            {
                arenaLayout.AlsoPlayingGames.Add(skinDefinitionContext.GetGame(alsoPlayingGameXmlElement.GetAttributeValue <int>(XmlNames.gameType)));
            }
        }
Example #7
0
        private void FillArenaLayoutGridInfo(ArenaLayout arenaLayout, XElement arenaXmlElement)
        {
            var gridInfoXmlElement = arenaXmlElement.Element(XmlNames.dataGridInfo);

            if (gridInfoXmlElement == null)
            {
                return;
            }

            foreach (var gridColumnElement in gridInfoXmlElement.Elements(XmlNames.column))
            {
                arenaLayout.DataGridInfo.Add(new ArenaGridColumn(gridColumnElement.ExtractAllAttributes()));
            }
        }
Example #8
0
        private void FillArenaLayoutAlsoPlayingGames(ArenaLayout arenaLayout, dynamic arenaLayoutElement, SkinDefinitionContext skinDefinitionContext)
        {
            var alsoPlayingGamesElement = arenaLayoutElement.alsoPlayingGames;

            if (alsoPlayingGamesElement == null)
            {
                return;
            }

            foreach (var alsoPlayingGameElement in alsoPlayingGamesElement)
            {
                arenaLayout.AlsoPlayingGames.Add(skinDefinitionContext.GetGame(ConvertDynamicValue <int>(alsoPlayingGameElement)));
            }
        }
Example #9
0
        private void FillArenaLayoutGridInfo(ArenaLayout arenaLayout, dynamic arenaLayoutElement)
        {
            var dataGridArenaInfoElement = arenaLayoutElement.dataGridArenaInfo;

            if (dataGridArenaInfoElement == null)
            {
                return;
            }

            foreach (dynamic columnElement in dataGridArenaInfoElement)
            {
                arenaLayout.DataGridInfo.Add(new ArenaGridColumn(JsonUtils.ExtractAllAttributes(columnElement)));
            }
        }
Example #10
0
        private void FillArenaLayoutGames(ArenaLayout arenaLayout, XElement arenaXmlElement, SkinDefinitionContext skinDefinitionContext)
        {
            foreach (var gameXmlElement in arenaXmlElement.Elements(XmlNames.game))
            {
                var gameType = gameXmlElement.GetAttributeValue <int>(XmlNames.gameType);

                var game = skinDefinitionContext.GetGame(gameType);

                ArenaGame arenaGame = new ArenaGame(game.Id,
                                                    game.Name,
                                                    gameXmlElement.GetAttributeValue <bool>(XmlNames.newGame, false),
                                                    gameXmlElement.GetAttributeValue(XmlNames.userMode, UserModes.Both));


                arenaLayout.Games.Add(arenaGame);
            }
        }
Example #11
0
        private void FillArenaLayoutGames(ArenaLayout arenaLayout, dynamic arenaLayoutElement, SkinDefinitionContext skinDefinitionContext)
        {
            foreach (var gameElement in arenaLayoutElement.games)
            {
                var gameType = ConvertDynamicValue <int>(gameElement.gametype);

                var game = skinDefinitionContext.GetGame(gameType);

                ArenaGame arenaGame = new ArenaGame(game.Id,
                                                    game.Name,
                                                    ConvertDynamicValue <bool>(gameElement.newGame, false),
                                                    ConvertDynamicValue <int>(gameElement.userMode, UserModes.Both));


                arenaLayout.Games.Add(arenaGame);
            }
        }
Example #12
0
        private void FillArenasCollection(ArenaCollection arenasCollection, SkinDefinitionContext skinDefinitionContext)
        {
            var arenasElementsByType = ReadArenasXmlElements().Where(element => XmlValues.lobby != element.GetAttributeValue(XmlNames.type))
                                       .GroupBy(element => element.GetAttributeValue <int>(XmlNames.type))
                                       .ToDictionary(g => g.Key, g => g.ToList());

            foreach (var arenaGroup in arenasElementsByType)
            {
                var arenaType = skinDefinitionContext.GetArenaType(arenaGroup.Key);

                var arena = new Arena(arenaType.Id, arenaType.Name, arenaGroup.Value.Any(element => element.GetAttributeValue(XmlNames.newGame, false) == true));

                foreach (var arenaXmlElement in arenaGroup.Value)
                {
                    //make sure the JPVisible attribute is always there
                    var attributes = arenaXmlElement.ExtractAllAttributes();
                    if (!attributes.Any(a => a.Name == XmlNames.JPVisible))
                    {
                        attributes.Add(new AttributeValue(XmlNames.JPVisible, "false"));
                    }

                    var arenaLayout = new ArenaLayout(arenaXmlElement.GetAttributeValue(XmlNames.playerStatus),
                                                      attributes);



                    FillArenaLayout(arenaLayout, arenaXmlElement, skinDefinitionContext);

                    arena.Layouts.Add(arenaLayout);
                }



                arenasCollection.Add(arena);
            }
        }
Example #13
0
        private dynamic CreateArenaElement(dynamic[] existingArenasElements, Arena arena, ArenaLayout arenaLayout)
        {
            JObject existingArenaElement = null;

            if (string.IsNullOrEmpty(arenaLayout.PlayerStatus))
            {
                existingArenaElement = existingArenasElements.FirstOrDefault(element => ConvertDynamicValue <string>(element.type) == arena.Type.ToString())
                                       as JObject;
            }
            else
            {
                existingArenaElement = existingArenasElements.FirstOrDefault(element => ConvertDynamicValue <string>(element.type) == arena.Type.ToString() &&
                                                                             ExtractPlayerStatus(element.playerStatus) == arenaLayout.PlayerStatus)
                                       as JObject;
            }

            dynamic newArenaElement = null;


            if (existingArenaElement != null)
            {
                newArenaElement = existingArenaElement;
            }
            else
            {
                //get de default arena element
                existingArenaElement = existingArenasElements.FirstOrDefault(element => ConvertDynamicValue <string>(element.type) == arena.Type.ToString());
                if (existingArenaElement != null)
                {
                    newArenaElement = existingArenaElement.DeepClone();
                }
                else
                {
                    newArenaElement = new JObject();
                }
            }

            newArenaElement.type         = arena.Type;
            newArenaElement.playerStatus = BuildPlayerStatusArray(arenaLayout.PlayerStatus);
            //newArenaElement.favoritesSize = arenaLayout.FavoritesSize;
            newArenaElement.jpVisible = arenaLayout.JackpotVisible;
            newArenaElement.newGame   = arena.IsNewGameArena;

            UpdateFilteringInfo(arenaLayout.FilteringInfo, newArenaElement);
            UpdateAlsoPlayingGames(newArenaElement, arenaLayout.AlsoPlayingGames);
            UpdateArenaGames(arenaLayout.Games, newArenaElement);

            return(newArenaElement);
        }
Example #14
0
        private XElement CreateArenaXmlElement(XElement[] existingArenasXmlElements, Arena arena, ArenaLayout arenaLayout)
        {
            XElement existingArenaXmlElement = null;

            if (string.IsNullOrEmpty(arenaLayout.PlayerStatus))
            {
                existingArenaXmlElement = existingArenasXmlElements.FirstOrDefault(element => element.GetAttributeValue(XmlNames.type) == arena.Type.ToString());
            }
            else
            {
                existingArenaXmlElement = existingArenasXmlElements.FirstOrDefault(element => element.GetAttributeValue(XmlNames.type) == arena.Type.ToString() &&
                                                                                   element.GetAttributeValue(XmlNames.playerStatus) == arenaLayout.PlayerStatus);
            }

            var newArenaXmlElement = new XElement(XmlNames.arena);


            if (existingArenaXmlElement != null)
            {
                existingArenaXmlElement.CopyAttributesTo(newArenaXmlElement);
                existingArenaXmlElement.CopyAllElementsExcept(newArenaXmlElement, XmlNames.filteringInfo, XmlNames.game, XmlNames.alsoPlayingGames);
            }
            else
            {
                //get de default arena element
                existingArenaXmlElement = existingArenasXmlElements.FirstOrDefault(element => element.GetAttributeValue(XmlNames.type) == arena.Type.ToString());
                if (existingArenaXmlElement != null)
                {
                    existingArenaXmlElement.CopyAllElementsExcept(newArenaXmlElement, XmlNames.filteringInfo, XmlNames.game, XmlNames.alsoPlayingGames);
                }

                newArenaXmlElement.AddOrUpdateAttributeValue(XmlNames.type, arena.Type);
                if (!string.IsNullOrEmpty(arenaLayout.PlayerStatus))
                {
                    newArenaXmlElement.AddOrUpdateAttributeValue(XmlNames.playerStatus, arenaLayout.PlayerStatus);
                }
            }

            newArenaXmlElement.AddOrUpdateAttributeValue(XmlNames.JPVisible, arenaLayout.JackpotVisible);
            if (arena.IsNewGameArena)
            {
                newArenaXmlElement.AddOrUpdateAttributeValue(XmlNames.newGame, "true");
            }

            UpdateFilteringInfo(newArenaXmlElement, arenaLayout.FilteringInfo);

            UpdateAlsoPlayingGames(newArenaXmlElement, arenaLayout.AlsoPlayingGames);

            UpdateArenaGames(existingArenaXmlElement, newArenaXmlElement, arenaLayout.Games);

            return(newArenaXmlElement);
        }
Example #15
0
 private void UpdateOrAddArenaLayout(Arena arena, ArenaLayout arenaLayout, XDocument xmlDocument)
 {
     var arenas = xmlDocument.Root.Element(XmlNames.lobby_data_ndl).Element(XmlNames.arenas).Elements(XmlNames.arena).ToArray();
 }