CardsAgainstIRC3.Game.States.Base.DecksetAddCommand C# (CSharp) Method

DecksetAddCommand() private method

private DecksetAddCommand ( CommandContext context, IEnumerable arguments ) : void
context CommandContext
arguments IEnumerable
return void
        public void DecksetAddCommand(CommandContext context, IEnumerable<string> arguments)
        {
            if (arguments.Count() == 0)
                arguments = new string[] { "default" };

            try {
                var defaults = arguments.Select(a => new Tuple<string, List<List<string>>>(a, Manager.DefaultSets[a]));
                foreach (var def in defaults)
                {
                    foreach (var list in def.Item2)
                    {
                        Manager.AddCardSet((IDeckType)GameManager.DeckTypes[list[0]].GetConstructor(new Type[] { typeof(GameManager), typeof(IEnumerable<string>) }).Invoke(new object[] { Manager, list.Skip(1) }));
                    }
                    Manager.SendPublic(context.Nick, "Added deck {0}", def.Item1);
                }
            }
            catch (Exception e)
            {
                SendInContext(context, "Failed to add deckset");
                Console.WriteLine(e);
            }
        }