/// <summary> /// This is only used once, don't use this as it doesn't import cards. /// </summary> /// <param name="path"></param> /// <returns></returns> public Set FromFile(string path) { var ret = new DataNew.Entities.Set(); using (Package package = Package.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read)) { PackageRelationship defRelationship = package.GetRelationshipsByType("http://schemas.octgn.org/set/definition").First(); PackagePart definition = package.GetPart(defRelationship.TargetUri); var settings = new XmlReaderSettings { ValidationType = ValidationType.Schema, IgnoreWhitespace = true }; using (Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(typeof(Paths), "Schemas/CardSet.xsd")) //CardSet.xsd determines the "attributes" of a card (name, guid, alternate, dependent) if (s != null) { using (XmlReader reader = XmlReader.Create(s)) settings.Schemas.Add(null, reader); } // Read the cards using (XmlReader reader = XmlReader.Create(definition.GetStream(), settings)) { reader.ReadToFollowing("set"); // <?xml ... ?> ret.PackageName = path; ret.Name = reader.GetAttribute("name"); string gaid = reader.GetAttribute("id"); if (gaid != null) { ret.Id = new Guid(gaid); } string gv = reader.GetAttribute("gameVersion"); if (gv != null) { ret.GameVersion = new Version(gv); } string gi = reader.GetAttribute("gameId"); if (gi != null) { ret.GameId = new Guid(gi); } Version ver; Version.TryParse(reader.GetAttribute("version"), out ver); ret.Version = ver ?? new Version(0, 0); reader.ReadStartElement("set"); return(ret); } } }
/// <summary> /// This is only used once, don't use this as it doesn't import cards. /// </summary> /// <param name="path"></param> /// <returns></returns> public Set FromFile(string path) { var ret = new DataNew.Entities.Set(); using (Package package = Package.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read)) { PackageRelationship defRelationship = package.GetRelationshipsByType("http://schemas.octgn.org/set/definition").First(); PackagePart definition = package.GetPart(defRelationship.TargetUri); var settings = new XmlReaderSettings { ValidationType = ValidationType.Schema, IgnoreWhitespace = true }; using (Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(typeof(Paths),"Schemas/CardSet.xsd")) //CardSet.xsd determines the "attributes" of a card (name, guid, alternate, dependent) if (s != null) using (XmlReader reader = XmlReader.Create(s)) settings.Schemas.Add(null, reader); // Read the cards using (XmlReader reader = XmlReader.Create(definition.GetStream(), settings)) { reader.ReadToFollowing("set"); // <?xml ... ?> ret.PackageName = path; ret.Name = reader.GetAttribute("name"); string gaid = reader.GetAttribute("id"); if (gaid != null) ret.Id = new Guid(gaid); string gv = reader.GetAttribute("gameVersion"); if (gv != null) ret.GameVersion = new Version(gv); string gi = reader.GetAttribute("gameId"); if (gi != null) { ret.GameId = new Guid(gi); } Version ver; Version.TryParse(reader.GetAttribute("version"), out ver); ret.Version = ver ?? new Version(0, 0); reader.ReadStartElement("set"); return ret; } } }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if (values.Length < 2) { return(Binding.DoNothing); } if (values[0] == DependencyProperty.UnsetValue || values[1] == DependencyProperty.UnsetValue) { return(Binding.DoNothing); } var guid = values[0] as string; if (guid != null) { Guid setId = Guid.Parse(guid); var game = (DataNew.Entities.Game)values[1]; DataNew.Entities.Set set = game.GetSetById(setId); return(set != null ? set.Name : "(unknown)"); } return("(unknown)"); }