Ejemplo n.º 1
0
 public SpecificationResult WithSetDefinition(SetDefinition setDefinition)
 {
     return(new SpecificationResult(
                SymbolValue,
                SetDefinitions.Add(setDefinition),
                Targets,
                labelByTarget
                ));
 }
Ejemplo n.º 2
0
 public SpecificationResult Compose(SpecificationResult other)
 {
     return(new SpecificationResult(
                this.SymbolValue,
                SetDefinitions.AddRange(other.SetDefinitions),
                Targets.AddRange(other.Targets),
                labelByTarget.AddRange(other.labelByTarget)
                ));
 }
Ejemplo n.º 3
0
        static StaticMagicData()
        {
            try
            {
                var stopWatch = Stopwatch.StartNew();

                var loader = new MagicDatabaseLoader();
                CardDefinitions = loader.LoadCardDatabase().ToList();
                SetDefinitions  = loader.LoadSetDatabase().ToList();

                ////var duplicateValues = CardDefinitions
                ////    .GroupBy(c => MakeNameSetCode(c.SetCode, c.NameEN, c.NumberInSet))
                ////    .Where(x => x.Count() > 1)
                ////    .ToArray();

                ////var duplicateValues = CardDefinitions
                ////                 .GroupBy(c => c.CardId)
                ////                 .Where(x => x.Count() > 1)
                ////                 .ToArray();

                var dict = new Dictionary <string, MagicCardDefinition>();
                foreach (var def in CardDefinitions)
                {
                    var unique = MakeNameSetCode(def.SetCode, def.NameEN, def.NumberInSet);
                    if (!dict.ContainsKey(unique))
                    {
                        dict.Add(unique, def);
                    }
                }

                CardDefinitionsByNameSetCode = dict;
                CardDefinitionsByCardId      = dict.Values.ToDictionary(c => c.CardId);

                SetDefinitionsBySetCode = SetDefinitions.ToDictionary(c => c.Code);
                SetDefinitionsBySetName = SetDefinitions.ToDictionary(c => c.Name);

                stopWatch.Stop();
                Debug.WriteLine("Loading static MTG data took " + stopWatch.Elapsed);
            }
            catch
            {
                // ignore this
            }
        }