示例#1
0
        /// <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);
                }
            }
        }
示例#2
0
        /// <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;
                }
            }
        }
示例#3
0
        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)");
        }