Example #1
0
 private void loadState(XmlFile stateXml)
 {
     XmlTextReader textReader = new XmlTextReader(stateXml.fileName);
     textReader.ReadToFollowing("lightsAndSoundOn");
     lightsAndSoundOn = textReader.ReadElementContentAsBoolean();
     textReader.ReadToFollowing("safeToDisableChoreo");
     safeToDisableChoreo = textReader.ReadElementContentAsBoolean();
     textReader.Close();
 }
Example #2
0
 // be careful - have to read nodes in the order they are written!
 private void loadPreferences(XmlFile prefsXml)
 {
     XmlTextReader textReader = new XmlTextReader(prefsXml.fileName);
     textReader.ReadToFollowing("minimizeToSystemTray");
     minimizePref.Checked = textReader.ReadElementContentAsBoolean();
     textReader.Close();
 }
Example #3
0
 public static void ReadFromXML(ref XmlTextReader reader)
 {
     while (reader.Read())
     {
         if (reader.NodeType == XmlNodeType.Element)
         {
             if (reader.Name == XMLPropNames.strAbility)
             {
                 if (XMLPropNames.strGrandSlam == reader.GetAttribute(XMLPropNames.strName))
                     ReadGrandSlamAbility(ref reader);
                 else if (XMLPropNames.strSuperKnockBack == reader.GetAttribute(XMLPropNames.strName))
                     ReadSuperKnockBackAbility(ref reader);
                 else if (XMLPropNames.strRoar == reader.GetAttribute(XMLPropNames.strName))
                     ReadRoarAbility(ref reader);
                 else if (XMLPropNames.strTornado == reader.GetAttribute(XMLPropNames.strName))
                     ReadTornadoAbility(ref reader);
             }
             else if (reader.Name == XMLPropNames.strInitialization)
                 ReadInitialization(ref reader);
             else if (reader.Name == XMLPropNames.strVariableSize)
                 mVariableSize = reader.ReadElementContentAsBoolean();
         }
         else if (reader.NodeType == XmlNodeType.EndElement &&
                  reader.Name == XMLPropNames.strAgentProperties)
             break;
     }
 }
Example #4
0
        public void Load(System.Xml.XmlTextReader tr, string localName)
        {
            int count;

            tr.ReadStartElement(localName);

            _viewDirectionRecentIsFirst = tr.ReadElementContentAsBoolean("DirectionRecentFirst", string.Empty);

            count = XmlConvert.ToInt32(tr.GetAttribute("Count"));
            tr.ReadStartElement("ColumnWidths");
            _columnWidths = new double[count];
            for (int i = 0; i < count; i++)
            {
                _columnWidths[i] = tr.ReadElementContentAsInt("Width", string.Empty);
            }
            if (count > 0)
            {
                tr.ReadEndElement(); // ColumnWidths
            }
            if (null != _view)
            {
                _view.ColumnWidths = _columnWidths;
                _columnWidths      = null;
            }

            tr.ReadEndElement();
        }
        /// <summary>
        /// Determinates which version of the xml if this current file, and read color and opacity function from it. 
        /// </summary>
        /// <param name="fileName">Name of the preset</param>
        /// <returns>Information about the preset, which includes series of color and opacity function</returns>
        public PresetInformation ReadXmlFile(String fileName)
        {
            try
            {
                _reader = new XmlTextReader(Path.Combine(Directory.GetCurrentDirectory(), @"presety\", fileName));
                _reader.ReadToFollowing("IndependentColor");
                Boolean isIndependent = _reader.ReadElementContentAsBoolean();

                if (isIndependent)
                {
                    return ReadOpacityFunction(fileName, ReadColorFunction());
                }
                return ReadOpacityAndColorFunction();
            }
            catch (Exception e)
            {
                logger.ErrorException("Preset file reading exception: "+e.Message, e);
                logger.Warn(Path.Combine(Directory.GetCurrentDirectory(), @"presety\", fileName));
                return new PresetInformation();
            }
        }
Example #6
0
File: Body.cs Project: bilwis/SH2RL
        public void ParseBodyDefinition(string filename)
        {
            Random rand = new Random();
            XmlTextReader reader = new XmlTextReader(filename);
            string name;
            float var = 1.0f;

            List<Organ> organ_defs = new List<Organ>();
            List<OrganConstructor> bp_organs = new List<OrganConstructor>();
            Dictionary<string, string> bp_parents = new Dictionary<string,string>();

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:
                        switch (reader.Name)
                        {
                            case "name":
                                name = reader.ReadElementContentAsString();
                                break;
                            case "height":
                                height = reader.ReadElementContentAsFloat();
                                break;
                            case "width":
                                width = reader.ReadElementContentAsFloat();
                                break;
                            case "depth":
                                depth = reader.ReadElementContentAsFloat();
                                break;
                            case "variation":
                                var = reader.ReadElementContentAsFloat();
                                break;

                            case "organ_def":
                                Organ o = parseOrganDefinition(reader);
                                if (o == null)
                                    throw new Exception("Error while parsing body definition XML: Organ above line " + reader.LineNumber + " not correctly parsed.");
                                organ_defs.Add(o);
                                break;

                            case "body_part":
                                string guid = System.Guid.NewGuid().ToString();

                                string bp_name = "ERROR";
                                float surface = 0.0f;
                                float weight = 0.0f;
                                bool essential = false;

                                int rgb = 0;
                                string display_char = " ";

                                bool symetrical = false;
                                string parent_name = null;

                                bool readingOrgan = false;
                                OrganConstructor temp = new OrganConstructor();

                                bool bp_done = false;

                                while (reader.Read() && !bp_done)
                                {

                                    switch (reader.NodeType)
                                    {
                                        case XmlNodeType.Element:
                                            switch (reader.Name)
                                            {
                                                case "name":
                                                    if (!readingOrgan)
                                                        bp_name = reader.ReadElementContentAsString();
                                                    else
                                                        temp.alias = reader.ReadElementContentAsString();
                                                    break;
                                                case "surface":
                                                    surface = reader.ReadElementContentAsFloat();
                                                    break;
                                                case "weight":
                                                    weight = reader.ReadElementContentAsFloat();
                                                    break;
                                                case "essential":
                                                    essential = reader.ReadElementContentAsBoolean();
                                                    break;
                                                case "parent":
                                                    parent_name = reader.ReadElementContentAsString();
                                                    break;
                                                case "display_char":
                                                    display_char = reader.ReadElementContentAsString();
                                                    break;
                                                case "color":
                                                    string[] temp_col_arr = reader.ReadElementContentAsString().Split(',');
                                                    rgb = Util.EncodeRGB(Int32.Parse(temp_col_arr[0]), Int32.Parse(temp_col_arr[1]), Int32.Parse(temp_col_arr[2]));
                                                    break;
                                                case "symetrical":
                                                    symetrical = reader.ReadElementContentAsBoolean();
                                                    break;
                                                case "organ":
                                                    if (readingOrgan)
                                                        throw new Exception("Error while parsing body definition XML: Organ element not closed before line " + reader.LineNumber + ".");
                                                    readingOrgan = true;
                                                    temp = new OrganConstructor();
                                                    //set default
                                                    temp.hit_prob = 1.0f;
                                                    break;
                                                case "type":
                                                    temp.name = reader.ReadElementContentAsString();
                                                    break;
                                                case "thickness":
                                                    temp.thickness = reader.ReadElementContentAsFloat();
                                                    break;
                                                case "hit_prob":
                                                    temp.hit_prob = reader.ReadElementContentAsFloat();
                                                    break;
                                            }
                                            break;
                                        case XmlNodeType.EndElement:
                                            switch (reader.Name)
                                            {
                                                case "organ":
                                                    readingOrgan = false;
                                                    temp.bp_guid = guid;
                                                    bp_organs.Add(temp);
                                                    break;
                                                case "body_part":
                                                    BodyPart new_bp = new BodyPart(guid, bp_name, surface, weight, essential, symetrical, display_char[0], rgb);
                                                    bp_parents.Add(new_bp.GUID, parent_name);
                                                    parts.Add(new_bp.GUID, new_bp);
                                                    bp_done = true;
                                                    break;
                                            }
                                            break;
                                    }
                                }

                                break;
                        }
                        break;
                    case XmlNodeType.EndElement:
                        switch (reader.Name)
                        {

                        }
                        break;
                }
            }

            //load bp_organs into bodyparts, attach bodyparts to Body
            foreach (BodyPart p in parts.Values)
            {
                foreach (OrganConstructor oc in bp_organs)
                {
                    if (p.GUID == oc.bp_guid)
                    {
                        foreach (Organ o in organ_defs)
                        {
                            if (o.name == oc.name)
                            {
                                p.AddOrgan(new Organ(o, oc.thickness, oc.hit_prob, oc.alias));
                            }
                        }
                    }
                }
                if (bp_parents[p.GUID] != null)
                {
                    foreach (BodyPart par in parts.Values)
                    {
                        if (par.Name == bp_parents[p.GUID])
                            p.ConnectToBody(this, par);
                    }
                }
                else
                {
                    p.ConnectToBody(this);
                }
            }

            this.height = (float)(height + (var * (rand.NextDouble() - 0.5)));
            this.width = (float)(width + (var * (rand.NextDouble() - 0.5)));
            this.depth = (float)(depth + (var * (rand.NextDouble() - 0.5)));
            loaded = true;
        }
        public List<DanbooruProvider> Read(string filename = @"DanbooruProviderList.xml")
        {
            List<DanbooruProvider> list = new List<DanbooruProvider>();

            using (XmlTextReader reader = new XmlTextReader(filename))
            {
                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                        case XmlNodeType.Element:
                            if (reader.Name.Equals("DanbooruProviderList")) break;
                            else if (reader.Name.Equals("DanbooruProvider"))
                            {
                                Console.WriteLine(reader.Value);

                                DanbooruProvider newProvider = new DanbooruProvider();
                                do
                                {
                                    reader.Read();
                                    if (reader.NodeType.Equals(XmlNodeType.Element))
                                    {
                                        switch (reader.Name)
                                        {
                                            case "Name": newProvider.Name = reader.ReadElementContentAsString(); break;
                                            case "Url": newProvider.Url = reader.ReadElementContentAsString(); break;
                                            case "QueryStringJson": newProvider.QueryStringJson = reader.ReadElementContentAsString(); break;
                                            case "QueryStringHtml": newProvider.QueryStringHtml = reader.ReadElementContentAsString(); break;
                                            case "QueryStringXml": newProvider.QueryStringXml = reader.ReadElementContentAsString(); break;
                                            case "Preferred":
                                                string preferred = reader.ReadElementContentAsString().ToLowerInvariant();
                                                switch (preferred)
                                                {
                                                    case "json":
                                                        newProvider.Preferred = PreferredMethod.Json;
                                                        break;
                                                    case "xml":
                                                        newProvider.Preferred = PreferredMethod.Xml;
                                                        break;
                                                    case "html":
                                                        newProvider.Preferred = PreferredMethod.Html;
                                                        break;
                                                    default:
                                                        throw new Exception("Invalid Provider Type in DanbooruProviderList.xml: " + preferred);
                                                }
                                                break;
                                            case "DefaultLimit": newProvider.DefaultLimit = reader.ReadElementContentAsInt(); break;
                                            case "HardLimit": newProvider.HardLimit = reader.ReadElementContentAsInt(); break;
                                            case "UserName": newProvider.UserName = reader.ReadElementContentAsString(); break;
                                            case "Password": newProvider.Password = reader.ReadElementContentAsString(); break;
                                            case "UseAuth": newProvider.UseAuth = reader.ReadElementContentAsBoolean(); break;
                                            case "PasswordSalt": newProvider.PasswordSalt = reader.ReadElementContentAsString(); break;
                                            case "PasswordHash": newProvider.PasswordHash = reader.ReadElementContentAsString(); break;
                                            case "BoardType":
                                                string type = reader.ReadElementContentAsString();
                                                newProvider.BoardType = (BoardType)Enum.Parse(typeof(BoardType), type); //Type.Equals("Danbooru") ? BoardType.Danbooru:BoardType.Gelbooru ;
                                                break;
                                            case "TagDownloadUseLoop": newProvider.TagDownloadUseLoop = reader.ReadElementContentAsBoolean(); break;
                                            default: break;
                                        }
                                    }
                                } while (!reader.Name.Equals("DanbooruProvider"));
                                list.Add(newProvider);
                            }
                            break;
                        default: break;
                    }
                }
            }
            return list;
        }
Example #8
0
 /// <summary>
 /// Dient zur Auswertung des Knoten Tabelle
 /// Es wird eine Tabellen Objekt instanziiert und die entsprechenden Eigenschaften übernommen.
 /// Falls eine Exception beim Casten der Werte geworfen wird, wird diese gefangen und weitergeleitet
 /// Bei erfolgreicher Erstellung des Objekts wird der Tabelleninhalt über eine Datenbankanbindung abgefragt.
 /// Falls eine Exception bei der Abfrage geworfen wird, wird diese gefangen und weitergeleitet.
 /// Bei erfolgreicher Abfrage wird die Tabelle im Word Dokument hinzugefügt
 /// </summary>
 /// <param name="xml"></param>
 public void Tabelle(string xml)
 {
     XmlTextReader subReader = new XmlTextReader(new System.IO.StringReader(xml));
     Tabelle table = new Tabelle();
     while (subReader.Read())
     {
         if (subReader.NodeType == XmlNodeType.Element)
         {
             switch (subReader.Name)
             {
                 case "id":
                     table.Id = subReader.ReadElementString();
                     break;
                 case "bold":
                     try
                     {
                         table.Bold = subReader.ReadElementContentAsBoolean();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
                 case "background":
                     table.BgColor = subReader.ReadElementString();
                     break;
                 case "sql":
                     table.Text = subReader.ReadElementString();
                     break;
                 case "border":
                     try
                     {
                         table.Border = subReader.ReadElementContentAsBoolean();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
                 case "font":
                     table.Font = subReader.ReadElementString();
                     break;
                 case "size":
                     try
                     {
                         table.Size = subReader.ReadElementContentAsInt();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
                 case "paragraph":
                     try
                     {
                         table.Paragraph = subReader.ReadElementContentAsInt();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
             }
         }
     }
     subReader.Close();
     try
     {
         table.getContent(connections);
     }
     catch (MySql.Data.MySqlClient.MySqlException e)
     {
         throw new OpenDocumentException(e.Message);
     }
     catch (System.Data.SqlClient.SqlException e)
     {
         throw new OpenDocumentException(e.Message);
     }
     catch (InvalidCastException)
     {
         throw new OpenDocumentException("Datenbankverbindung " + table.Id + " für Tabelle mit Abfrage " + table.Text + " nicht gefunden");
     }
     catch (Exception e)
     {
         throw new OpenDocumentException(e.Message);
     }
     doc.Table(table);
 }
 private static void ProcessPassTouches(SceneObjectPart obj, XmlTextReader reader)
 {
     obj.PassTouches = reader.ReadElementContentAsBoolean("PassTouches", String.Empty);
 }
        /// <summary>
        /// Determinates which version of the xml if this current file, and read color and opacity function from it. 
        /// </summary>
        /// <param name="fileName">Name of the preset</param>
        /// <returns>Information about the preset, which includes series of color and opacity function</returns>
        public PresetInformation ReadXmlFile(String fileName)
        {
            _reader = new XmlTextReader(Path.Combine(@"..\..\presety\",fileName));
            _reader.ReadToFollowing("IndependentColor");
            Boolean isIndependent = _reader.ReadElementContentAsBoolean();

            if (isIndependent)
            {
                return ReadOpacityFunction(fileName, ReadColorFunction());
            }
            return ReadOpacityAndColorFunction();
        }
Example #11
0
        private Compiler Parse(string xmlFilePath)
        {
            var compiler = new Compiler();
            var xmlReader = new XmlTextReader(xmlFilePath);
            xmlReader.Read();

            while (xmlReader.Read())
            {
                switch (xmlReader.Name)
                {
                    case "name":
                        {
                            compiler.Name = xmlReader.ReadElementContentAsString();
                        }
                        break;

                    case "location":
                        {
                            compiler.Location = Path.Combine(
                                AppDomain.CurrentDomain.BaseDirectory, xmlReader.ReadElementContentAsString());
                        }
                        break;

                    case "extension":
                        {
                            compiler.Extension = xmlReader.ReadElementContentAsString().TrimEnd().TrimStart();
                        }
                        break;
                    case "arguments":
                        {
                            compiler.Arguments = xmlReader.ReadElementContentAsString().TrimEnd().TrimStart();
                        }
                        break;
                    case "compiledExtension":
                        {
                            compiler.CompiledExtension = xmlReader.ReadElementContentAsString().TrimEnd().TrimStart();
                        }
                        break;
                    case "needShortName":
                        {
                            compiler.IsNeedShortPath = xmlReader.ReadElementContentAsBoolean();
                        }
                        break;
                }
            }

            if (compiler.Extension == string.Empty || compiler.Name == string.Empty || compiler.Location == string.Empty || compiler.CompiledExtension == string.Empty || compiler.Arguments == string.Empty)
                throw new Exception("Bad xml information about compiler");

            return compiler;
        }
 private static void ProcessShpSculptEntry(PrimitiveBaseShape shp, XmlTextReader reader)
 {
     shp.SculptEntry = reader.ReadElementContentAsBoolean("SculptEntry", String.Empty);
 }
Example #13
0
        internal void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                // End of account element, get out of here
                if (reader.Name == "adjustment" && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                        case "account":
                            string href = reader.GetAttribute("href");
                            this.AccountCode = Uri.UnescapeDataString(href.Substring(href.LastIndexOf("/") + 1));
                            break;

                        case "uuid":
                            this.Uuid = reader.ReadElementContentAsString();
                            break;

                        case "description":
                            this.Description = reader.ReadElementContentAsString();
                            break;

                        case "accounting_code":
                            this.AccountingCode = reader.ReadElementContentAsString();
                            break;

                        case "origin":
                            this.Origin = reader.ReadElementContentAsString();
                            break;

                        case "unit_amount_in_cents":
                            this.UnitAmountInCents = reader.ReadElementContentAsInt();
                            break;

                        case "quantity":
                            this.Quantity = reader.ReadElementContentAsInt();
                            break;

                        case "discount_in_cents":
                            this.DiscountInCents = reader.ReadElementContentAsInt();
                            break;

                        case "tax_in_cents":
                            this.TaxInCents = reader.ReadElementContentAsInt();
                            break;

                        case "total_in_cents":
                            this.TotalInCents = reader.ReadElementContentAsInt();
                            break;

                        case "currency":
                            this.Currency = reader.ReadElementContentAsString();
                            break;

                        case "taxable":
                            this.Taxable = reader.ReadElementContentAsBoolean();
                            break;

                        case "start_date":
                            this.StartDate = reader.ReadElementContentAsDateTime();
                            break;

                        case "end_date":
                           DateTime endDate;
                           if (DateTime.TryParse(reader.ReadElementContentAsString(), out endDate))
                                this.EndDate = endDate;
                            break;

                        case "created_at":
                            this.CreatedAt = reader.ReadElementContentAsDateTime();
                            break;

                    }
                }
            }
        }
 private void GenericBool(SceneObjectPart obj, XmlTextReader reader, string name, Type SOPType)
 {
     bool val = reader.ReadElementContentAsBoolean(name, "");
     SOPType.GetProperty(name).SetValue(obj, val, null);
 }
Example #15
0
 /// <summary>
 /// Hier wird der Knoten Text ausgewertet
 /// Es wird ein neues Text Objekt instanziiert und die entsprechenden Eigenschaften übergeben
 /// Falls eine Exception beim Casten der Werte geworfen wird, wird diese gefangen und weitergeleitet
 /// Bei erfolreicher Erstellung des Objekts wird dieses in dem Word Dokument eingefügt
 /// </summary>
 /// <param name="xml">Der Parameter beinhaltet einen Textknoten mit all seinen Unterknoten</param>
 public void Text(string xml)
 {
     XmlTextReader subReader = new XmlTextReader(new System.IO.StringReader(xml));
     Text text = new Text();
     while (subReader.Read())
     {
         if (subReader.NodeType == XmlNodeType.Element)
         {
             switch (subReader.Name)
             {
                 case "string":
                     text.Content = subReader.ReadElementContentAsString();
                     break;
                 case "font":
                     text.Font = subReader.ReadElementString();
                     break;
                 case "size":
                     try
                     {
                         text.Size = subReader.ReadElementContentAsInt();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
                 case "paragraph":
                     try
                     {
                         text.Paragraph = subReader.ReadElementContentAsInt();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
                 case "style":
                     try
                     {
                         text.Style = subReader.ReadElementContentAsInt();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
                 case "color":
                     text.Color = subReader.ReadElementString();
                     break;
                 case "pageBreak":
                     try
                     {
                         text.PageBreak = subReader.ReadElementContentAsBoolean();
                     }
                     catch (XmlException e)
                     {
                         subReader.Close();
                         throw new OpenDocumentException(e.Message);
                     }
                     break;
             }
         }
     }
     subReader.Close();
     doc.Text(text);
 }
Example #16
0
        internal override void ReadXml(XmlTextReader reader)
        {
            UnitAmountInCents.Clear();
            SetupFeeInCents.Clear();

            while (reader.Read())
            {
                // End of account element, get out of here
                if (reader.Name == "plan" && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType != XmlNodeType.Element) continue;

                switch (reader.Name)
                {
                    case "plan_code":
                        PlanCode = reader.ReadElementContentAsString();
                        break;

                    case "name":
                        Name = reader.ReadElementContentAsString();
                        break;

                    case "description":
                        Description = reader.ReadElementContentAsString();
                        break;

                    case "success_url":
                        SuccessUrl = reader.ReadElementContentAsString();
                        break;

                    case "cancel_url":
                        CancelUrl = reader.ReadElementContentAsString();
                        break;

                    case "display_donation_amounts":
                        DisplayDonationAmounts = reader.ReadElementContentAsBoolean();
                        break;

                    case "display_quantity":
                        DisplayQuantity = reader.ReadElementContentAsBoolean();
                        break;

                    case "display_phone_number":
                        DisplayPhoneNumber = reader.ReadElementContentAsBoolean();
                        break;

                    case "bypass_hosted_confirmation":
                        BypassHostedConfirmation = reader.ReadElementContentAsBoolean();
                        break;

                    case "unit_name":
                        UnitName = reader.ReadElementContentAsString();
                        break;

                    case "payment_page_tos_link":
                        PaymentPageTOSLink = reader.ReadElementContentAsString();
                        break;

                    case "plan_interval_length":
                        PlanIntervalLength = reader.ReadElementContentAsInt();
                        break;

                    case "plan_interval_unit":
                        PlanIntervalUnit = reader.ReadElementContentAsString().ParseAsEnum<IntervalUnit>();
                        break;

                    case "trial_interval_length":
                        TrialIntervalLength = reader.ReadElementContentAsInt();
                        break;

                    case "trial_interval_unit":
                        TrialIntervalUnit = reader.ReadElementContentAsString().ParseAsEnum<IntervalUnit>();
                        break;

                    case "accounting_code":
                        AccountingCode = reader.ReadElementContentAsString();
                        break;

                    case "created_at":
                        CreatedAt = reader.ReadElementContentAsDateTime();
                        break;

                    case "tax_exempt":
                        TaxExempt = reader.ReadElementContentAsBoolean();
                        break;

                    case "unit_amount_in_cents":
                        ReadXmlUnitAmount(reader);
                        break;

                    case "setup_fee_in_cents":
                        ReadXmlSetupFee(reader);
                        break;
                }
            }
        }
Example #17
0
        internal void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                // End of account element, get out of here
                if (reader.Name == "plan" && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {

                        case "plan_code":
                            this.PlanCode = reader.ReadElementContentAsString();
                            break;

                        case "name":
                            this.Name = reader.ReadElementContentAsString();
                            break;

                        case "description":
                            this.Description = reader.ReadElementContentAsString();
                            break;

                        case "success_url":
                            this.SuccessUrl = reader.ReadElementContentAsString();
                            break;

                        case "cancel_url":
                            this.CancelUrl = reader.ReadElementContentAsString();
                            break;

                        case "display_donation_amounts":
                            this.DisplayDonationAmounts = reader.ReadElementContentAsBoolean();
                            break;

                        case "display_quantity":
                            this.DisplayQuantity = reader.ReadElementContentAsBoolean();
                            break;

                        case "display_phone_number":
                            this.DisplayPhoneNumber = reader.ReadElementContentAsBoolean();
                            break;

                        case "bypass_hosted_confirmation":
                            this.BypassHostedConfirmation = reader.ReadElementContentAsBoolean();
                            break;

                        case "unit_name":
                            this.UnitName = reader.ReadElementContentAsString();
                            break;

                        case "payment_page_tos_link":
                            this.PaymentPageTOSLink = reader.ReadElementContentAsString();
                            break;

                        case "plan_interval_length":
                            this.PlanIntervalLength = reader.ReadElementContentAsInt();
                            break;

                        case "plan_interval_unit":
                            this.PlanIntervalUnit = (IntervalUnit)Enum.Parse(typeof(IntervalUnit), reader.ReadElementContentAsString(), true);
                            break;

                        case "trial_interval_length":
                            this.TrialIntervalLength = reader.ReadElementContentAsInt();
                            break;

                        case "trial_interval_unit":
                            this.TrialIntervalUnit = (IntervalUnit)Enum.Parse(typeof(IntervalUnit), reader.ReadElementContentAsString(), true);
                            break;

                        case "accounting_code":
                            this.AccountingCode = reader.ReadElementContentAsString();
                            break;

                        case "created_at":
                            this.CreatedAt = reader.ReadElementContentAsDateTime();
                            break;

                        case "unit_amount_in_cents":
                            ReadXmlUnitAmount(reader);
                            break;

                        case "setup_fee_in_cents":
                            ReadXmlSetupFee(reader);
                            break;
                    }
                }
            }
        }
 private void ProcessShpLightEntry(PrimitiveBaseShape shp, XmlTextReader reader)
 {
     shp.LightEntry = reader.ReadElementContentAsBoolean("LightEntry", String.Empty);
 }
        internal override void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                // End of coupon element, get out of here
                if ((reader.Name == "coupon" || reader.Name == "redemption") && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType != XmlNodeType.Element) continue;

                string href;
                switch (reader.Name)
                {
                    case "uuid":
                        Uuid = reader.ReadElementContentAsString();
                        break;

                    case "account":
                        href = reader.GetAttribute("href");
                        AccountCode = Uri.UnescapeDataString(href.Substring(href.LastIndexOf("/") + 1));
                        break;

                    case "coupon":
                        href = reader.GetAttribute("href");
                        CouponCode =Uri.UnescapeDataString( href.Substring(href.LastIndexOf("/") + 1));
                        break;

                    case "single_use":
                        SingleUse = reader.ReadElementContentAsBoolean();
                        break;

                    case "total_discounted_in_cents":
                        int discountInCents;
                        if (Int32.TryParse(reader.ReadElementContentAsString(), out discountInCents))
                            TotalDiscountedInCents = discountInCents;
                        break;

                    case "currency":
                        Currency = reader.ReadElementContentAsString();
                        break;

                    case "state":
                        State = reader.ReadElementContentAsString();
                        break;

                    case "subscription_uuid":
                        SubscriptionUuid = reader.ReadElementContentAsString();
                        break;

                    case "created_at":
                        DateTime date;
                        if (DateTime.TryParse(reader.ReadElementContentAsString(), out date))
                            CreatedAt = date;
                        break;

                }
            }
        }
        internal override void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                // End of account element, get out of here
                if (reader.Name == "adjustment" && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType != XmlNodeType.Element) continue;
                switch (reader.Name)
                {
                    case "account":
                        var href = reader.GetAttribute("href");
                        AccountCode = Uri.UnescapeDataString(href.Substring(href.LastIndexOf("/") + 1));
                        break;

                    case "uuid":
                        Uuid = reader.ReadElementContentAsString();
                        break;

                    case "description":
                        Description = reader.ReadElementContentAsString();
                        break;

                    case "accounting_code":
                        AccountingCode = reader.ReadElementContentAsString();
                        break;

                    case "origin":
                        Origin = reader.ReadElementContentAsString();
                        break;

                    case "unit_amount_in_cents":
                        UnitAmountInCents = reader.ReadElementContentAsInt();
                        break;

                    case "quantity":
                        Quantity = reader.ReadElementContentAsInt();
                        break;

                    case "discount_in_cents":
                        DiscountInCents = reader.ReadElementContentAsInt();
                        break;

                    case "tax_in_cents":
                        TaxInCents = reader.ReadElementContentAsInt();
                        break;

                    case "total_in_cents":
                        TotalInCents = reader.ReadElementContentAsInt();
                        break;

                    case "currency":
                        Currency = reader.ReadElementContentAsString();
                        break;

                    case "tax_exempt":
                        TaxExempt = reader.ReadElementContentAsBoolean();
                        break;

                    case "start_date":
                        StartDate = reader.ReadElementContentAsDateTime();
                        break;

                    case "end_date":
                        DateTime endDate;
                        if (DateTime.TryParse(reader.ReadElementContentAsString(), out endDate))
                            EndDate = endDate;
                        break;

                    case "created_at":
                        CreatedAt = reader.ReadElementContentAsDateTime();
                        break;

                    case "state":
                        State = reader.ReadElementContentAsString().ParseAsEnum<AdjustmentState>();
                        break;

                }
            }
        }
Example #21
0
        public void Load()
        {
            this.reader = new XmlTextReader(this.fileToOpen);
            if(reader.ReadToFollowing("Preferences") && reader.HasAttributes)
            {
                this.pNamespace = reader.GetAttribute("namespace");
                this.pVersion = reader.GetAttribute("version");

                if(reader.ReadToFollowing("General"))
                {
                    if(reader.ReadToFollowing("Nick"))
                    {
                        this.pNick = reader.ReadElementContentAsString();
                    }
                    if(reader.ReadToFollowing("ConnectionType"))
                    {
                        string conn = reader.ReadElementContentAsString();
                        Connection connex;
                        switch(conn)
                        {
                        case "56Kbps":
                        case "Modem":
                            connex = Connection.Modem;
                            break;
                        case "ISDN":
                            connex = Connection.ISDN;
                            break;
                        case "Cable":
                            connex = Connection.Cable;
                            break;
                        case "DSL":
                            connex = Connection.DSL;
                            break;
                        case "Fiber":
                            connex = Connection.Fiber;
                            break;
                        case "T1":
                            connex = Connection.T1;
                            break;
                        case "T3":
                            connex = Connection.T3;
                            break;
                        case "OC3":
                            connex = Connection.OC3;
                            break;
                        case "LAN":
                            connex = Connection.LAN;
                            break;
                        default:
                            connex = Connection.Modem;
                            break;
                        }
                        this.pConnex = connex;
                    }
                    if(reader.ReadToFollowing("Description"))
                    {
                        this.pDesc = reader.ReadElementContentAsString();
                    }
                    if(reader.ReadToFollowing("Password"))
                    {
                        string hash = reader.GetAttribute("hash");
                        if(hash != null)
                        {
                            switch(hash)
                            {
                            case "plain":
                                this.pPass = reader.ReadElementContentAsString();
                                break;
                            }
                        }
                    }
                    if(reader.ReadToFollowing("Contact"))
                    {
                        this.pContact = reader.ReadElementContentAsString();
                    }
                    if(reader.ReadToFollowing("AutoRegister") && reader.HasAttributes)
                    {
                        this.pAutoReg = reader.ReadElementContentAsBoolean();
                    }
                }
                if(reader.ReadToFollowing("Connection"))
                {
                    if(reader.ReadToFollowing("RoomLists"))
                    {
                        this.pListSrv.Clear();
                        string[] arr = (reader.ReadElementContentAsString()).Split(new char[]{';'});
                        for(int i=0;i<arr.Length;i++)
                        {
                            this.pListSrv.Add(arr[i]);
                        }
                    }
                }

                this.loadSuccess = true;
            }
            reader.Close();
        }
Example #22
0
        private ImageSettings GetSettings(string path)
        {
            var settings = new ImageSettings();
            string settingFileLocation = Path.Combine(path, SettingsFileName);
            if (!File.Exists(settingFileLocation))
            {
                return settings;
            }

            XmlTextReader settingsData;
            // Open the settings file. If it fails here, we throw an exception since we expect the file to be there and readable.
            using (settingsData = new XmlTextReader(settingFileLocation))
            {
                while (settingsData.Read())
                {
                    if (settingsData.NodeType == XmlNodeType.Element)
                    {
                        string nodeName = settingsData.Name;

                        if (nodeName.Equals("FileFormat", StringComparison.OrdinalIgnoreCase))
                        {
                            settings.Format = settingsData.ReadElementContentAsString().Trim('.');
                        }
                        else if (nodeName.Equals("Quality", StringComparison.OrdinalIgnoreCase))
                        {
                            settings.Quality = settingsData.ReadElementContentAsInt();
                        }
                        else if (nodeName.Equals("MaxSize", StringComparison.OrdinalIgnoreCase))
                        {
                            settings.MaxSize = settingsData.ReadElementContentAsInt();
                        }
                        else if (nodeName.Equals("BackgroundColor", StringComparison.OrdinalIgnoreCase))
                        {
                            string output = settingsData.ReadElementContentAsString();
                            int temp = Int32.Parse(output, NumberStyles.HexNumber, CultureInfo.InvariantCulture);
                            settings.BackgroundColor = Color.FromArgb(temp);
                        }
                        else if (nodeName.Equals("Base64Encoding", StringComparison.OrdinalIgnoreCase))
                        {
                            settings.Base64 = settingsData.ReadElementContentAsBoolean();
                        }
                        else if (nodeName.Equals("TileInXAxis", StringComparison.OrdinalIgnoreCase))
                        {
                            settings.TileInXAxis = settingsData.ReadElementContentAsBoolean();
                        }
                    }
                }
            }

            return settings;
        }
Example #23
0
        internal override void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                // End of coupon element, get out of here
                if (reader.Name == "coupon" && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType != XmlNodeType.Element) continue;

                DateTime date;
                int m;
                switch (reader.Name)
                {
                    case "coupon_code":
                        CouponCode = reader.ReadElementContentAsString();
                        break;
                     
                    case "name":
                        Name = reader.ReadElementContentAsString();
                        break;

                    case "state":
                        State = reader.ReadElementContentAsString().ParseAsEnum<CouponState>();
                        break;

                    case "discount_type":
                        DiscountType = reader.ReadElementContentAsString().ParseAsEnum<CouponDiscountType>();
                        break;

                    case "redemption_resource":
                        RedemptionResource = reader.ReadElementContentAsString().ParseAsEnum<RedemptionResourceType>();
                        break;

                    case "discount_percent":
                        DiscountPercent = reader.ReadElementContentAsInt();
                        break;

                    case "redeem_by_date":
                        if (DateTime.TryParse(reader.ReadElementContentAsString(), out date))
                            RedeemByDate = date;
                        break;

                    case "single_use":
                        SingleUse = reader.ReadElementContentAsBoolean();
                        break;

                    case "applies_for_months":
                        if (int.TryParse(reader.ReadElementContentAsString(), out m))
                            AppliesForMonths = m;
                        break;

                    case "duration":
                        Duration = reader.ReadElementContentAsString().ParseAsEnum<CouponDuration>();
                        break;

                    case "temporal_unit":
                        var element_content = reader.ReadElementContentAsString();
                        if (element_content != "")
                          TemporalUnit = element_content.ParseAsEnum<CouponTemporalUnit>();
                        break;

                    case "temporal_amount":
                        if (int.TryParse(reader.ReadElementContentAsString(), out m))
                            TemporalAmount = m;
                        break;

                    case "max_redemptions":
                        if (int.TryParse(reader.ReadElementContentAsString(), out m))
                            MaxRedemptions = m;
                        break;

                    case "applies_to_all_plans":
                        AppliesToAllPlans = reader.ReadElementContentAsBoolean();
                        break;

                    case "applies_to_non_plan_charges":
                        AppliesToNonPlanCharges = reader.ReadElementContentAsBoolean();
                        break;

                    case "max_redemptions_per_account":
                        if (int.TryParse(reader.ReadElementContentAsString(), out m))
                            MaxRedemptionsPerAccount = m;
                        break;

                    case "description":
                        HostedDescription = reader.ReadElementContentAsString();
                        break;

                    case "invoice_description":
                        InvoiceDescription = reader.ReadElementContentAsString();
                        break;

                    case "unique_code_template":
                        UniqueCodeTemplate = reader.ReadElementContentAsString();
                        break;

                    case "coupon_type":
                        var type_content = reader.ReadElementContentAsString();
                        if (type_content != "")
                          Type = type_content.ParseAsEnum<CouponType>();
                        break;

                    case "created_at":
                        if (DateTime.TryParse(reader.ReadElementContentAsString(), out date))
                            CreatedAt = date;
                        break;

                    case "plan_codes":
                        ReadXmlPlanCodes(reader);
                        break;

                    case "discount_in_cents":
                        ReadXmlDiscounts(reader);
                        break;
                        
                }
            }
        }
 private static void ProcessAllowedDrop(SceneObjectPart obj, XmlTextReader reader)
 {
     obj.AllowedDrop = reader.ReadElementContentAsBoolean("AllowedDrop", String.Empty);
 }
        internal override void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                // End of account element, get out of here
                if ((reader.Name == "transaction") &&
                    reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType != XmlNodeType.Element) continue;

                string href;
                int amount;
                switch (reader.Name)
                {
                    case "account":
                        href = reader.GetAttribute("href");
                        if (null != href)
                            AccountCode = Uri.UnescapeDataString(href.Substring(href.LastIndexOf("/") + 1));
                        break;

                    case "invoice":
                        href = reader.GetAttribute("href");
                        if (null != href)
                        {
                            string invoiceNumber = href.Substring(href.LastIndexOf("/") + 1);
                            MatchCollection matches = Regex.Matches(invoiceNumber, "([^\\d]{2})(\\d+)");

                            if (matches.Count == 1) 
                            {
                                InvoicePrefix = matches[0].Groups[1].Value;
                                Invoice = int.Parse(matches[0].Groups[2].Value);
                            } 
                            else
                            {
                                Invoice = int.Parse(invoiceNumber);
                            }
                        }
                        break;

                    case "uuid":
                        Uuid = reader.ReadElementContentAsString();
                        break;

                    case "action":
                        Action = reader.ReadElementContentAsString().ParseAsEnum<TransactionType>();
                        break;

                    case "amount_in_cents":
                        if (Int32.TryParse(reader.ReadElementContentAsString(), out amount))
                            AmountInCents = amount;
                        break;

                    case "tax_in_cents":
                        if (Int32.TryParse(reader.ReadElementContentAsString(), out amount))
                            TaxInCents = amount;
                        break;

                    case "currency":
                        Currency = reader.ReadElementContentAsString();
                        break;
                        
                    case "description":
                        Description = reader.ReadElementContentAsString();
                        break;

                    case "status":
                        var state = reader.ReadElementContentAsString();
                        Status = "void" == state ? TransactionState.Voided : state.ParseAsEnum<TransactionState>();
                        break;

                    case "reference":
                        Reference = reader.ReadElementContentAsString();
                        break;

                    case "test":
                        Test = reader.ReadElementContentAsBoolean();
                        break;

                    case "voidable":
                        Voidable = reader.ReadElementContentAsBoolean();
                        break;

                    case "refundable":
                        Refundable = reader.ReadElementContentAsBoolean();
                        break;

                    case "ip_address":
                        IpAddress = reader.ReadElementContentAsString();
                        break;

                    case "ccv_result":
                        CCVResult = reader.ReadElementContentAsString();
                        break;

                    case "avs_result":
                        AvsResult = reader.ReadElementContentAsString();
                        break;

                    case "avs_result_street":
                        AvsResultStreet = reader.ReadElementContentAsString();
                        break;

                    case "avs_result_postal":
                        AvsResultPostal = reader.ReadElementContentAsString();
                        break;

                    case "created_at":
                        DateTime date;
                        if (DateTime.TryParse(reader.ReadElementContentAsString(), out date))
                            CreatedAt = date;
                        break;
                                               
                    case "details":
                        // API docs say not to load details into objects
                        break;
                }
            }
        }
 private static void ProcessTIOwnerChanged(TaskInventoryItem item, XmlTextReader reader)
 {
     item.OwnerChanged = reader.ReadElementContentAsBoolean("OwnerChanged", String.Empty);
 }
Example #27
0
        internal void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                // End of account element, get out of here
                if (reader.Name == "add_on" && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {

                        case "add_on_code":
                            this.AddOnCode = reader.ReadElementContentAsString();
                            break;

                        case "name":
                            this.Name = reader.ReadElementContentAsString();
                            break;

                        case "display_quantity_on_hosted_page":
                            this.DisplayQuantityOnHostedPage = reader.ReadElementContentAsBoolean();
                            break;

                        case "default_quantity":
                            this.DefaultQuantity = reader.ReadElementContentAsInt();
                            break;

                        case "created_at":
                            this.CreatedAt = reader.ReadElementContentAsDateTime();
                            break;

                        case "unit_amount_in_cents":
                            ReadXmlUnitAmount(reader);
                            break;

                    }
                }
            }
        }
Example #28
0
        internal override void ReadXml(XmlTextReader reader)
        {
            while (reader.Read())
            {
                if (reader.Name == "account" && reader.NodeType == XmlNodeType.EndElement)
                    break;

                if (reader.NodeType != XmlNodeType.Element) continue;

                switch (reader.Name)
                {
                    case "account_code":
                        AccountCode = reader.ReadElementContentAsString();
                        break;

                    case "state":
                        // TODO investigate in case of incoming data representing multiple states, as https://dev.recurly.com/docs/get-account says is possible
                        State = reader.ReadElementContentAsString().ParseAsEnum<AccountState>();
                        break;

                    case "username":
                        Username = reader.ReadElementContentAsString();
                        break;

                    case "email":
                        Email = reader.ReadElementContentAsString();
                        break;

                    case "first_name":
                        FirstName = reader.ReadElementContentAsString();
                        break;

                    case "last_name":
                        LastName = reader.ReadElementContentAsString();
                        break;

                    case "company_name":
                        CompanyName = reader.ReadElementContentAsString();
                        break;

                    case "vat_number":
                        VatNumber = reader.ReadElementContentAsString();
                        break;

                    case "tax_exempt":
                        TaxExempt = reader.ReadElementContentAsBoolean();
                        break;

                    case "entity_use_code":
                        EntityUseCode = reader.ReadElementContentAsString();
                        break;

                    case "accept_language":
                        AcceptLanguage = reader.ReadElementContentAsString();
                        break;

                    case "hosted_login_token":
                        HostedLoginToken = reader.ReadElementContentAsString();
                        break;

                    case "created_at":
                        CreatedAt = reader.ReadElementContentAsDateTime();
                        break;

                    case "address":
                        Address = new Address(reader);
                        break;

                    case "vat_location_valid":
                        if (reader.GetAttribute("nil") == null)
                        {
                            VatLocationValid = reader.ReadElementContentAsBoolean();
                        }
                        break;
                }
            }
        }
Example #29
0
        public static PrimObject LoadPrim(XmlTextReader reader)
        {
            PrimObject obj = new PrimObject();
            obj.Shape = new PrimObject.ShapeBlock();
            obj.Inventory = new PrimObject.InventoryBlock();

            reader.ReadStartElement("SceneObjectPart");

            if (reader.Name == "AllowedDrop")
                obj.AllowedDrop = reader.ReadElementContentAsBoolean("AllowedDrop", String.Empty);
            else
                obj.AllowedDrop = true;

            obj.CreatorID = ReadUUID(reader, "CreatorID");
            obj.FolderID = ReadUUID(reader, "FolderID");
            obj.Inventory.Serial = reader.ReadElementContentAsInt("InventorySerial", String.Empty);

            #region Task Inventory

            List<PrimObject.InventoryBlock.ItemBlock> invItems = new List<PrimObject.InventoryBlock.ItemBlock>();

            reader.ReadStartElement("TaskInventory", String.Empty);
            while (reader.Name == "TaskInventoryItem")
            {
                PrimObject.InventoryBlock.ItemBlock item = new PrimObject.InventoryBlock.ItemBlock();
                reader.ReadStartElement("TaskInventoryItem", String.Empty);

                item.AssetID = ReadUUID(reader, "AssetID");
                item.PermsBase = (uint)reader.ReadElementContentAsInt("BasePermissions", String.Empty);
                item.CreationDate = Utils.UnixTimeToDateTime((uint)reader.ReadElementContentAsInt("CreationDate", String.Empty));
                item.CreatorID = ReadUUID(reader, "CreatorID");
                item.Description = reader.ReadElementContentAsString("Description", String.Empty);
                item.PermsEveryone = (uint)reader.ReadElementContentAsInt("EveryonePermissions", String.Empty);
                item.Flags = reader.ReadElementContentAsInt("Flags", String.Empty);
                item.GroupID = ReadUUID(reader, "GroupID");
                item.PermsGroup = (uint)reader.ReadElementContentAsInt("GroupPermissions", String.Empty);
                item.InvType = (InventoryType)reader.ReadElementContentAsInt("InvType", String.Empty);
                item.ID = ReadUUID(reader, "ItemID");
                UUID oldItemID = ReadUUID(reader, "OldItemID"); // TODO: Is this useful?
                item.LastOwnerID = ReadUUID(reader, "LastOwnerID");
                item.Name = reader.ReadElementContentAsString("Name", String.Empty);
                item.PermsNextOwner = (uint)reader.ReadElementContentAsInt("NextPermissions", String.Empty);
                item.OwnerID = ReadUUID(reader, "OwnerID");
                item.PermsOwner = (uint)reader.ReadElementContentAsInt("CurrentPermissions", String.Empty);
                UUID parentID = ReadUUID(reader, "ParentID");
                UUID parentPartID = ReadUUID(reader, "ParentPartID");
                item.PermsGranterID = ReadUUID(reader, "PermsGranter");
                item.PermsBase = (uint)reader.ReadElementContentAsInt("PermsMask", String.Empty);
                item.Type = (AssetType)reader.ReadElementContentAsInt("Type", String.Empty);

                reader.ReadEndElement();
                invItems.Add(item);
            }
            if (reader.NodeType == XmlNodeType.EndElement)
                reader.ReadEndElement();

            obj.Inventory.Items = invItems.ToArray();

            #endregion Task Inventory

            PrimFlags flags = (PrimFlags)reader.ReadElementContentAsInt("ObjectFlags", String.Empty);
            obj.UsePhysics = (flags & PrimFlags.Physics) != 0;
            obj.Phantom = (flags & PrimFlags.Phantom) != 0;
            obj.DieAtEdge = (flags & PrimFlags.DieAtEdge) != 0;
            obj.ReturnAtEdge = (flags & PrimFlags.ReturnAtEdge) != 0;
            obj.Temporary = (flags & PrimFlags.Temporary) != 0;
            obj.Sandbox = (flags & PrimFlags.Sandbox) != 0;

            obj.ID = ReadUUID(reader, "UUID");
            obj.LocalID = (uint)reader.ReadElementContentAsLong("LocalId", String.Empty);
            obj.Name = reader.ReadElementString("Name");
            obj.Material = reader.ReadElementContentAsInt("Material", String.Empty);

            if (reader.Name == "PassTouches")
                obj.PassTouches = reader.ReadElementContentAsBoolean("PassTouches", String.Empty);
            else
                obj.PassTouches = false;

            obj.RegionHandle = (ulong)reader.ReadElementContentAsLong("RegionHandle", String.Empty);
            obj.RemoteScriptAccessPIN = reader.ReadElementContentAsInt("ScriptAccessPin", String.Empty);

            if (reader.Name == "PlaySoundSlavePrims")
                reader.ReadInnerXml();
            if (reader.Name == "LoopSoundSlavePrims")
                reader.ReadInnerXml();

            Vector3 groupPosition = ReadVector(reader, "GroupPosition");
            Vector3 offsetPosition = ReadVector(reader, "OffsetPosition");
            obj.Rotation = ReadQuaternion(reader, "RotationOffset");
            obj.Velocity = ReadVector(reader, "Velocity");
            if (reader.Name == "RotationalVelocity")
                ReadVector(reader, "RotationalVelocity");
            obj.AngularVelocity = ReadVector(reader, "AngularVelocity");
            obj.Acceleration = ReadVector(reader, "Acceleration");
            obj.Description = reader.ReadElementString("Description");
            reader.ReadStartElement("Color");
            if (reader.Name == "R")
            {
                obj.TextColor.R = reader.ReadElementContentAsFloat("R", String.Empty);
                obj.TextColor.G = reader.ReadElementContentAsFloat("G", String.Empty);
                obj.TextColor.B = reader.ReadElementContentAsFloat("B", String.Empty);
                obj.TextColor.A = reader.ReadElementContentAsFloat("A", String.Empty);
                reader.ReadEndElement();
            }
            obj.Text = reader.ReadElementString("Text", String.Empty);
            obj.SitName = reader.ReadElementString("SitName", String.Empty);
            obj.TouchName = reader.ReadElementString("TouchName", String.Empty);

            obj.LinkNumber = reader.ReadElementContentAsInt("LinkNum", String.Empty);
            obj.ClickAction = reader.ReadElementContentAsInt("ClickAction", String.Empty);

            reader.ReadStartElement("Shape");
            obj.Shape.ProfileCurve = reader.ReadElementContentAsInt("ProfileCurve", String.Empty);

            byte[] teData = Convert.FromBase64String(reader.ReadElementString("TextureEntry"));
            obj.Textures = new Primitive.TextureEntry(teData, 0, teData.Length);

            reader.ReadInnerXml(); // ExtraParams

            obj.Shape.PathBegin = Primitive.UnpackBeginCut((ushort)reader.ReadElementContentAsInt("PathBegin", String.Empty));
            obj.Shape.PathCurve = reader.ReadElementContentAsInt("PathCurve", String.Empty);
            obj.Shape.PathEnd = Primitive.UnpackEndCut((ushort)reader.ReadElementContentAsInt("PathEnd", String.Empty));
            obj.Shape.PathRadiusOffset = Primitive.UnpackPathTwist((sbyte)reader.ReadElementContentAsInt("PathRadiusOffset", String.Empty));
            obj.Shape.PathRevolutions = Primitive.UnpackPathRevolutions((byte)reader.ReadElementContentAsInt("PathRevolutions", String.Empty));
            obj.Shape.PathScaleX = Primitive.UnpackPathScale((byte)reader.ReadElementContentAsInt("PathScaleX", String.Empty));
            obj.Shape.PathScaleY = Primitive.UnpackPathScale((byte)reader.ReadElementContentAsInt("PathScaleY", String.Empty));
            obj.Shape.PathShearX = Primitive.UnpackPathShear((sbyte)reader.ReadElementContentAsInt("PathShearX", String.Empty));
            obj.Shape.PathShearY = Primitive.UnpackPathShear((sbyte)reader.ReadElementContentAsInt("PathShearY", String.Empty));
            obj.Shape.PathSkew = Primitive.UnpackPathTwist((sbyte)reader.ReadElementContentAsInt("PathSkew", String.Empty));
            obj.Shape.PathTaperX = Primitive.UnpackPathTaper((sbyte)reader.ReadElementContentAsInt("PathTaperX", String.Empty));
            obj.Shape.PathTaperY = Primitive.UnpackPathShear((sbyte)reader.ReadElementContentAsInt("PathTaperY", String.Empty));
            obj.Shape.PathTwist = Primitive.UnpackPathTwist((sbyte)reader.ReadElementContentAsInt("PathTwist", String.Empty));
            obj.Shape.PathTwistBegin = Primitive.UnpackPathTwist((sbyte)reader.ReadElementContentAsInt("PathTwistBegin", String.Empty));
            obj.PCode = reader.ReadElementContentAsInt("PCode", String.Empty);
            obj.Shape.ProfileBegin = Primitive.UnpackBeginCut((ushort)reader.ReadElementContentAsInt("ProfileBegin", String.Empty));
            obj.Shape.ProfileEnd = Primitive.UnpackEndCut((ushort)reader.ReadElementContentAsInt("ProfileEnd", String.Empty));
            obj.Shape.ProfileHollow = Primitive.UnpackProfileHollow((ushort)reader.ReadElementContentAsInt("ProfileHollow", String.Empty));
            obj.Scale = ReadVector(reader, "Scale");
            obj.State = (byte)reader.ReadElementContentAsInt("State", String.Empty);

            ProfileShape profileShape = (ProfileShape)Enum.Parse(typeof(ProfileShape), reader.ReadElementString("ProfileShape"));
            HoleType holeType = (HoleType)Enum.Parse(typeof(HoleType), reader.ReadElementString("HollowShape"));
            obj.Shape.ProfileCurve = (int)profileShape | (int)holeType;

            UUID sculptTexture = ReadUUID(reader, "SculptTexture");
            SculptType sculptType = (SculptType)reader.ReadElementContentAsInt("SculptType", String.Empty);
            if (sculptTexture != UUID.Zero)
            {
                obj.Sculpt = new PrimObject.SculptBlock();
                obj.Sculpt.Texture = sculptTexture;
                obj.Sculpt.Type = (int)sculptType;
            }

            PrimObject.FlexibleBlock flexible = new PrimObject.FlexibleBlock();
            PrimObject.LightBlock light = new PrimObject.LightBlock();

            reader.ReadInnerXml(); // SculptData

            flexible.Softness = reader.ReadElementContentAsInt("FlexiSoftness", String.Empty);
            flexible.Tension = reader.ReadElementContentAsFloat("FlexiTension", String.Empty);
            flexible.Drag = reader.ReadElementContentAsFloat("FlexiDrag", String.Empty);
            flexible.Gravity = reader.ReadElementContentAsFloat("FlexiGravity", String.Empty);
            flexible.Wind = reader.ReadElementContentAsFloat("FlexiWind", String.Empty);
            flexible.Force.X = reader.ReadElementContentAsFloat("FlexiForceX", String.Empty);
            flexible.Force.Y = reader.ReadElementContentAsFloat("FlexiForceY", String.Empty);
            flexible.Force.Z = reader.ReadElementContentAsFloat("FlexiForceZ", String.Empty);

            light.Color.R = reader.ReadElementContentAsFloat("LightColorR", String.Empty);
            light.Color.G = reader.ReadElementContentAsFloat("LightColorG", String.Empty);
            light.Color.B = reader.ReadElementContentAsFloat("LightColorB", String.Empty);
            light.Color.A = reader.ReadElementContentAsFloat("LightColorA", String.Empty);
            light.Radius = reader.ReadElementContentAsFloat("LightRadius", String.Empty);
            light.Cutoff = reader.ReadElementContentAsFloat("LightCutoff", String.Empty);
            light.Falloff = reader.ReadElementContentAsFloat("LightFalloff", String.Empty);
            light.Intensity = reader.ReadElementContentAsFloat("LightIntensity", String.Empty);

            bool hasFlexi = reader.ReadElementContentAsBoolean("FlexiEntry", String.Empty);
            bool hasLight = reader.ReadElementContentAsBoolean("LightEntry", String.Empty);
            reader.ReadInnerXml(); // SculptEntry

            if (hasFlexi)
                obj.Flexible = flexible;
            if (hasLight)
                obj.Light = light;

            reader.ReadEndElement();

            obj.Scale = ReadVector(reader, "Scale"); // Yes, again
            reader.ReadInnerXml(); // UpdateFlag

            reader.ReadInnerXml(); // SitTargetOrientation
            reader.ReadInnerXml(); // SitTargetPosition
            obj.SitOffset = ReadVector(reader, "SitTargetPositionLL");
            obj.SitRotation = ReadQuaternion(reader, "SitTargetOrientationLL");
            obj.ParentID = (uint)reader.ReadElementContentAsLong("ParentID", String.Empty);
            obj.CreationDate = Utils.UnixTimeToDateTime(reader.ReadElementContentAsInt("CreationDate", String.Empty));
            int category = reader.ReadElementContentAsInt("Category", String.Empty);
            obj.SalePrice = reader.ReadElementContentAsInt("SalePrice", String.Empty);
            obj.SaleType = reader.ReadElementContentAsInt("ObjectSaleType", String.Empty);
            int ownershipCost = reader.ReadElementContentAsInt("OwnershipCost", String.Empty);
            obj.GroupID = ReadUUID(reader, "GroupID");
            obj.OwnerID = ReadUUID(reader, "OwnerID");
            obj.LastOwnerID = ReadUUID(reader, "LastOwnerID");
            obj.PermsBase = (uint)reader.ReadElementContentAsInt("BaseMask", String.Empty);
            obj.PermsOwner = (uint)reader.ReadElementContentAsInt("OwnerMask", String.Empty);
            obj.PermsGroup = (uint)reader.ReadElementContentAsInt("GroupMask", String.Empty);
            obj.PermsEveryone = (uint)reader.ReadElementContentAsInt("EveryoneMask", String.Empty);
            obj.PermsNextOwner = (uint)reader.ReadElementContentAsInt("NextOwnerMask", String.Empty);

            reader.ReadInnerXml(); // Flags

            obj.CollisionSound = ReadUUID(reader, "CollisionSound");
            obj.CollisionSoundVolume = reader.ReadElementContentAsFloat("CollisionSoundVolume", String.Empty);

            reader.ReadEndElement();

            if (obj.ParentID == 0)
                obj.Position = groupPosition;
            else
                obj.Position = offsetPosition;

            return obj;
        }
        private void _DaemonPipe_OnReceiveLine(string line)
        {
            XmlTextReader reader = new XmlTextReader(new StringReader(line));

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:
                    {
                        if (reader.Depth == 0)
                        {
                            isEvent = (reader.Name == "Event");

                            if (isEvent || reader.Name == "Response")
                            {
                                for (int i = 0; i < reader.AttributeCount; i++)
                                {
                                    reader.MoveToAttribute(i);

                                    switch (reader.Name)
                                    {
                                        case "action":
                                            actionString = reader.Value;
                                            break;
                                        case "type":
                                            eventTypeString = reader.Value;
                                            break;
                                    }
                                }
                            }
                        }
                        else
                        {
                            switch (reader.Name)
                            {
                                case "InputXml":
                                    cookie = -1;

                                    // Parse through here to get the cookie value
                                    reader.Read();
                                    if (reader.Name == "Request")
                                    {
                                        for (int i = 0; i < reader.AttributeCount; i++)
                                        {
                                            reader.MoveToAttribute(i);

                                            if (reader.Name == "requestId")
                                            {
                                                Int32.TryParse(reader.Value, out cookie);
                                                break;
                                            }
                                        }
                                    }

                                    if (cookie == -1)
                                    {
                                        Logger.Log("VoiceManager._DaemonPipe_OnReceiveLine(): Failed to parse InputXml for the cookie", Helpers.LogLevel.Warning, Client);
                                    }
                                    break;
                                case "CaptureDevices": _CaptureDevices.Clear();
                                    break;
                                case "RenderDevices": _RenderDevices.Clear();
                                    break;
                                case "StatusCode": statusCode = reader.ReadElementContentAsInt();
                                    break;
                                case "StatusString": statusString = reader.ReadElementContentAsString();
                                    break;
                                case "State": state = reader.ReadElementContentAsInt();
                                    break;
                                case "ConnectorHandle": connectorHandle = reader.ReadElementContentAsString();
                                    break;
                                case "AccountHandle": accountHandle = reader.ReadElementContentAsString();
                                    break;
                                case "SessionHandle": sessionHandle = reader.ReadElementContentAsString();
                                    break;
                                case "URI": uriString = reader.ReadElementContentAsString();
                                    break;
                                case "IsChannel": isChannel = reader.ReadElementContentAsBoolean();
                                    break;
                                case "Name": nameString = reader.ReadElementContentAsString();
                                    break;
                                case "ChannelName": nameString = reader.ReadElementContentAsString();
                                    break;
                                case "ParticipantURI": uriString = reader.ReadElementContentAsString();
                                    break;
                                case "DisplayName": displayNameString = reader.ReadElementContentAsString();
                                    break;
                                case "AccountName": nameString = reader.ReadElementContentAsString();
                                    break;
                                case "ParticipantType": participantType = reader.ReadElementContentAsInt();
                                    break;
                                case "IsLocallyMuted": isLocallyMuted = reader.ReadElementContentAsBoolean();
                                    break;
                                case "IsModeratorMuted": isModeratorMuted = reader.ReadElementContentAsBoolean();
                                    break;
                                case "IsSpeaking":
                                    isSpeaking = reader.ReadElementContentAsBoolean();
                                    break;
                                case "Volume": volume = reader.ReadElementContentAsInt();
                                    break;
                                case "Energy": energy = reader.ReadElementContentAsFloat();
                                    break;
                                case "MicEnergy": energy = reader.ReadElementContentAsFloat();
                                    break;
                                case "ChannelURI": uriString = reader.ReadElementContentAsString();
                                    break;
                                case "ChannelListResult": _ChannelMap[nameString] = uriString;
                                    break;
                                case "CaptureDevice":
                                    reader.Read();
                                    _CaptureDevices.Add(reader.ReadElementContentAsString());
                                    break;
                                case "CurrentCaptureDevice":
                                    reader.Read();
                                    nameString = reader.ReadElementContentAsString();
                                    break;
                                case "RenderDevice":
                                    reader.Read();
                                    _RenderDevices.Add(reader.ReadElementContentAsString());
                                    break;
                                case "CurrentRenderDevice":
                                    reader.Read();
                                    nameString = reader.ReadElementContentAsString();
                                    break;
                            }
                        }

                        break;
                    }
                    case XmlNodeType.EndElement:
                        if (reader.Depth == 0)
                            ProcessEvent();
                        break;
                }
            }

            if (isEvent)
            {
            }
        }
Example #31
0
File: Body.cs Project: bilwis/SH2RL
        private Organ parseOrganDefinition(XmlTextReader reader)
        {
            string name = "ERROR";
            bool exclusive = false;

            List<OrganPart> parts = new List<OrganPart>();
            OrganPart temp = new OrganPart();
            bool readingPart=false;

            temp.critical = false;  //default

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:
                        switch (reader.Name)
                        {
                            case "part":
                                if (readingPart)
                                    throw new Exception("Error while parsing body definition XML: New part element before end part element");
                                readingPart = true;
                                break;
                            case "name":
                                if (!readingPart)
                                    name = reader.ReadElementContentAsString();
                                else
                                    temp.name = reader.ReadElementContentAsString();
                                break;
                            case "exclusive":
                                exclusive = reader.ReadElementContentAsBoolean();
                                break;
                            case "hit_prob":
                                temp.hit_prob = reader.ReadElementContentAsFloat();
                                break;
                            case "pain":
                                temp.pain = reader.ReadElementContentAsFloat();
                                break;
                            case "blood_loss":
                                temp.blood_loss = reader.ReadElementContentAsFloat();
                                break;
                            case "resistance":
                                temp.resistance = reader.ReadElementContentAsFloat();
                                break;
                            case "on_hit_kill":
                                temp.critical = reader.ReadElementContentAsBoolean();
                                break;
                        }
                        break;
                    case XmlNodeType.EndElement:
                        switch (reader.Name)
                        {
                            case "part":
                                readingPart = false;
                                parts.Add(temp);
                                temp = new OrganPart();
                                break;
                            case "organ_def":
                                Organ self = new Organ(name, exclusive);
                                foreach (OrganPart op in parts)
                                {
                                    self.AddPart(op);
                                }
                                return self;
                        }
                        break;
                }
            }

            return null;
        }