public SpecificationResult WithSetDefinition(SetDefinition setDefinition) { return(new SpecificationResult( SymbolValue, SetDefinitions.Add(setDefinition), Targets, labelByTarget )); }
public SpecificationResult Compose(SpecificationResult other) { return(new SpecificationResult( this.SymbolValue, SetDefinitions.AddRange(other.SetDefinitions), Targets.AddRange(other.Targets), labelByTarget.AddRange(other.labelByTarget) )); }
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 } }