示例#1
0
 public Card(Card card) : this()
 {
     for (int i = 0; i < card.Abilities.Count; i++)
     {
         Abilities.Add(card.Abilities[i]);
     }
     for (int i = 0; i < card.CardTypes.Count; i++)
     {
         CardTypes.Add(card.CardTypes[i]);
     }
     _PhasedOut            = card.PhasedOut;
     SelectedToUntap       = card.SelectedToUntap;
     _Tapped               = card.Tapped;
     UntapDuringUntapPhase = card.UntapDuringUntapPhase;
     TriggeredEffects      = card.TriggeredEffects;
     SubTypes              = card.SubTypes;
     Colors    = card.Colors;
     Power     = card.Power;
     Toughness = card.Toughness;
 }
示例#2
0
        /// <summary>
        /// Parses a property definition
        /// </summary>
        /// <param name="n">XmlElement for the property definition obtained from the Mingle API</param>
        public void Parse(XElement propertyXml)
        {
            string me = new StackFrame().GetMethod().Name;

            TraceLog.WriteLine(me, "Entering...");
            foreach (XElement e in propertyXml.Elements())
            {
                //                TraceLog.WriteLine(me,string.Format("<{0}>{1}", e.Name, e.InnerText));

                switch (e.Name.LocalName)
                {
                case "id":
                    Id = Convert.ToInt32(e.Value);
                    break;

                case "name":
                    Name = e.Value;
                    break;

                case "description":
                    Description = e.Value;
                    break;

                case "data_type":
                    DataType = e.Value;
                    break;

                case "is_numeric":
                    IsNumeric = Convert.ToBoolean(e.Value);
                    break;

                case "hidden":
                    Hidden = Convert.ToBoolean(e.Value);
                    break;

                case "restricted":
                    Restricted = Convert.ToBoolean(e.Value);
                    break;

                case "transition_only":
                    IsTransitionOnly = Convert.ToBoolean(e.Value);
                    break;

                case "project":
                    foreach (XmlNode child in e.ChildNodes)
                    {
                        if (child.Name == "identifier")
                        {
                            ProjectId = e.InnerText;
                        }
                        if (child.Name == "name")
                        {
                            ProjectName = e.InnerText;
                        }
                    }
                    break;

                case "column_name":
                    ColumnName = e.Value;
                    break;

                case "position":
                    if (!string.IsNullOrEmpty(e.Value))
                    {
                        Position = Convert.ToInt32(e.Value);
                    }
                    break;

                case "property_values_description":
                    PropertyValuesDescription = e.Value;
                    break;

                case "card_types":
                    foreach (XmlNode cardTypeNode in e.ChildNodes)
                    {
                        if (cardTypeNode.Name == "card_type")
                        {
                            foreach (XmlNode nameNode in cardTypeNode)
                            {
                                if (nameNode.Name == "name")
                                {
                                    CardTypes.Add(nameNode.InnerText);
                                }
                            }
                        }
                    }
                    break;

                case "property_value_details":
                    foreach (XElement propertyValue in e.Elements())
                    {
                        try
                        {
                            var pv = new MinglePropertyValue();
                            //                                TraceLog.WriteLine(new StackFrame().GetMethod().Name, "Parsing property_value");
                            pv.Parse(propertyValue);
                            PropertyValueDetails.Add(pv);
                            //                                TraceLog.WriteLine(new StackFrame().GetMethod().Name, string.Format("Parsed  property_value {0}", pv.Id));
                        }
                        catch (XmlException ex)
                        {
                            TraceLog.Exception(new StackFrame().GetMethod().Name, ex);
                            throw;
                        }
                        catch (ArgumentException ex)
                        {
                            TraceLog.Exception(new StackFrame().GetMethod().Name, ex);
                            throw;
                        }
                    }
                    break;


                default:
                    break;
                }
            }
            TraceLog.WriteLine(me, "Leaving...");
        }