public static XElement GetNewStyleTargetElement(IEnumerable <XElement> propertyGroups)
        {
            var singleTarget = propertyGroups.Descendants().FirstOrDefault(node => node.Name.LocalName == "TargetFramework");
            var multiTarget  = propertyGroups.Descendants().FirstOrDefault(node => node.Name.LocalName == "TargetFrameworks");

            return(singleTarget ?? multiTarget);
        }
示例#2
0
        static void RemoveUnwantedElements(IEnumerable <XElement> members)
        {
            string[] tagsSupportedByIntellisense =
            {
                "summary",
                "param",
                "returns",
                "exception",
            };

            string[] tagsToStrip =
            {
                "a",
                "img",
            };

            RemoveElements(from member in members
                           from element in member.Elements()
                           where !tagsSupportedByIntellisense.Contains(element.Name.LocalName, StringComparer.OrdinalIgnoreCase)
                           select element);

            RemoveElements(from element in members.Descendants()
                           where IsMarkedToSkip(element)
                           select element);

            StripElements(from element in members.Descendants()
                          where tagsToStrip.Contains(element.Name.LocalName, StringComparer.OrdinalIgnoreCase)
                          select element);
        }
示例#3
0
        public void btnSave_Click(object sender, EventArgs e)
        {
            if (tbTestName.Text == "")
            {
                MessageBox.Show("You must enter a test name");
            }
            else
            {
                string AutomationVersion = FileVersionInfo.GetVersionInfo(Process.GetCurrentProcess().MainModule.FileName).FileVersion;

                SqlCommand SaveTest = new SqlCommand("INSERT INTO TestCase (Name,Type_ID) Values(@Name,@Type_ID); SELECT SCOPE_IDENTITY();", conn);
                SaveTest.Parameters.AddWithValue("@Name", tbTestName.Text);
                SaveTest.Parameters.AddWithValue("@Type_ID", SelectedTest_ID);

                SqlCommand AutoVersion = new SqlCommand("SELECT AutoVer_ID FROM AutoVersion WHERE AutomationVersion = @FileVersion", conn);
                AutoVersion.Parameters.AddWithValue("@FileVersion", AutomationVersion);

                conn.Open();
                Test_ID = Convert.ToInt32(SaveTest.ExecuteScalar());
                SqlDataAdapter AutoDA = new SqlDataAdapter(AutoVersion);
                AutoDA.Fill(AutomationIDs);
                if (AutomationIDs.Rows.Count == 0)
                {
                    SqlCommand AddAutoVersion = new SqlCommand("INSERT INTO AutoVersion (AutomationVersion) VALUES(@FileVersion); SELECT SCOPE_IDENTITY();", conn);
                    AddAutoVersion.Parameters.AddWithValue("@FileVersion", AutomationVersion);
                    AutoVer_ID = Convert.ToInt32(AddAutoVersion.ExecuteScalar());
                }
                else
                {
                    AutoVer_ID = Convert.ToInt32(AutomationIDs.Rows[0][0]);
                }
                conn.Close();



                foreach (var TestParameter in TestParameters.Descendants())
                {
                    if (TestParameter.Name == "type")
                    {
                        TestParameter.Value = "performance";
                    }
                    if (TestParameter.Name == "test_ID")
                    {
                        TestParameter.Value = Test_ID.ToString();
                    }
                    if (TestParameter.Name == "autoVer_ID")
                    {
                        TestParameter.Value = AutoVer_ID.ToString();
                    }
                }

                xdoc.Save("test.config");
                Global.IsPerformanceTest = true;

                DataRowView vSelectedRow = (DataRowView)cbxTestType.SelectedItem;
                DataRow     SelectedRow  = vSelectedRow.Row;
                this.Close();
            }
        }
示例#4
0
        protected List <KeyValuePair <string, ArrayList> > ParseExecuteDVMXMLA(XDocument doc, string var1, string var2)
        {
            List <KeyValuePair <string, ArrayList> > keyValueList = new List <KeyValuePair <string, ArrayList> >();
            XNamespace xmlnsa  = "http://schemas.xmlsoap.org/soap/envelope/";
            XNode      xmlBody = doc.Descendants(xmlnsa + "Body").First().FirstNode;

            doc = XDocument.Parse(xmlBody.ToString());

            xmlnsa  = "urn:schemas-microsoft-com:xml-analysis";
            xmlBody = doc.Descendants(xmlnsa + "ExecuteResponse").First().FirstNode;
            doc     = XDocument.Parse(xmlBody.ToString());
            xmlnsa  = "urn:schemas-microsoft-com:xml-analysis:rowset";

            XElement root = doc.Root;
            IEnumerable <XElement> elements = root.Elements();
            //ArrayList catalogList = new ArrayList();

            IEnumerable <XElement> folderlist  = from item in elements.Descendants(xmlnsa + var1) select item;
            IEnumerable <XElement> measurelist = from item in elements.Descendants(xmlnsa + var2) select item;
            var enumerator1 = folderlist.GetEnumerator();
            var enumerator2 = measurelist.GetEnumerator();

            XElement group, mValue;
            string   groupName, curValue, prevGroup;

            prevGroup = "";
            ArrayList valueList = new ArrayList();

            while (enumerator1.MoveNext() && enumerator2.MoveNext())
            {
                group     = enumerator1.Current;
                mValue    = enumerator2.Current;
                groupName = group.Value.ToString();
                groupName = groupName.Replace("[", "");
                groupName = groupName.Replace("]", "");
                curValue  = mValue.Value.ToString();
                if (prevGroup != groupName && prevGroup != "")
                {
                    valueList.Sort();
                    keyValueList.Add(new KeyValuePair <string, ArrayList>(prevGroup, valueList));
                    valueList = new ArrayList();
                }
                valueList.Add(curValue);
                prevGroup = groupName;
            }
            valueList.Sort();
            keyValueList.Add(new KeyValuePair <string, ArrayList>(prevGroup, valueList));

            //foreach (var entry in keyValueList)
            //{
            //    System.Diagnostics.Debug.WriteLine("\n\tKey: " + entry.Key);
            //    foreach (var mes in entry.Value)
            //        System.Diagnostics.Debug.WriteLine("\t" + mes);
            //}

            return(keyValueList);
        }
        private static double GetTemperature(IEnumerable <XElement> actual)
        {
            //all mins for day
            var minT = actual.Descendants("t").Descendants("min").Select(n => Convert.ToDouble(n.Value));
            //all maxes for day
            var maxT = actual.Descendants("t").Descendants("max").Select(n => Convert.ToDouble(n.Value)).ToList();

            maxT.AddRange(minT);
            return(maxT.Sum() / maxT.Count);
        }
示例#6
0
 public static IEnumerable <XElement> Descendants(this IEnumerable <XContainer> container, XName name, bool ignoreNamespace)
 {
     if (ignoreNamespace)
     {
         return(container.Descendants().Where(e => e.Name.LocalName == name.LocalName));
     }
     else
     {
         return(container.Descendants(name));
     }
 }
示例#7
0
        static void Listing8_12()
        {
            Console.WriteLine("{0} : Begin", new StackTrace(0, true).GetFrame(0).GetMethod().Name);

            XDocument xDocument = new XDocument(
                new XElement("BookParticipants",
                             new XElement("BookParticipant",
                                          new XAttribute("type", "Author"),
                                          new XComment("This is a new author."),
                                          new XElement("FirstName", "Joe"),
                                          new XElement("LastName", "Rattz")),
                             new XElement("BookParticipant",
                                          new XAttribute("type", "Editor"),
                                          new XElement("FirstName", "Ewan"),
                                          new XElement("LastName", "Buckingham"))));

            IEnumerable <XElement> elements =
                xDocument.Element("BookParticipants").Elements("BookParticipant");

            //  First, I will display the source elements.
            foreach (XElement element in elements)
            {
                Console.WriteLine("Source element: {0} : value = {1}",
                                  element.Name, element.Value);
            }

            //  Now, I will display each source element's descendant elements.
            foreach (XElement element in elements.Descendants("LastName"))
            {
                Console.WriteLine("Descendant element: {0}", element);
            }

            Console.WriteLine("{0} : End", new StackTrace(0, true).GetFrame(0).GetMethod().Name);
        }
示例#8
0
        private void LookInModulesSection(String filename, XDocument configFile, out Boolean continueToNextFile)
        {
            // Find files with references in the Modules Section
            continueToNextFile = false;
            IEnumerable <XElement> modulesSectionElement = configFile.Descendants().Where(d => d.Name.LocalName == "ModulesSection");

            foreach (XElement classElement in modulesSectionElement.Descendants().Elements().Where(x => x.Name.LocalName == "Class"))
            {
                XAttribute typeNameAttribute = classElement.Attributes()
                                               .Where(x => x.Name.LocalName == "typeName")
                                               .FirstOrDefault();

                if (IsFrameworkAttribute(typeNameAttribute))
                {
                    AddFileWithFrameworkReferences(filename);
                    continueToNextFile = true;
                    break;
                }

                if (continueToNextFile)
                {
                    break;
                }
            }
        }
示例#9
0
        public static void ProcessTasks(IEnumerable <XElement> section, ILog log)
        {
            log.Info("Processing tasks....");

            foreach (var element in section.Descendants())
            {
                var definition = element.Attribute("definition").Value;

                switch (definition)
                {
                case Constants.Performance.CPUUSAGETOTAL:
                    Performance.GetCpuUsage();
                    break;

                case Constants.Performance.DISKUSUAGETOTAL:
                    Performance.GetDiskUsage();
                    break;

                case Constants.Performance.RAMUSUAGETOTAL:
                    Performance.GetAvailableRam();
                    break;

                default:
                    log.InfoFormat("Task type not implemented ({0}). Check the task list.", definition);
                    break;
                }
            }
        }
示例#10
0
        private static IEnumerable <Ziel> getZiele(IEnumerable <XElement> zielliste)
        {
            List <Ziel> ziele = new List <Ziel>();

            IEnumerable <XElement> de =
                from el in zielliste.Descendants()
                where el.Name.LocalName == "Text"
                select el;

            foreach (XElement el in de)
            {
                ziele.Add(new Ziel(el.Value));
            }



            Console.WriteLine("Ziele gefunden:");

            foreach (Ziel currentziel in ziele)
            {
                Console.WriteLine(currentziel.getName());
            }

            return(ziele);
        }
示例#11
0
        // Return the questions with quizID and quizType
        //QuizType: Multiple Choice, Identification, Enumeration
        public List <string> getQuestions(string quizID, string quizType)
        {
            List <string> questions = new List <string>();

            XDocument xDoc = new XDocument();

            xDoc = XDocument.Load(@"Quizzard.xml");
            XElement root = XElement.Load(@"Quizzard.xml");

            IEnumerable <XElement> address =
                from el in root.Elements("Quiz")
                where (string)el.Attribute("id") == quizID
                where (string)el.Attribute("type") == quizType
                select el;

            foreach (XElement el in address.Descendants("Item").Elements())
            {
                if (el.Name == "Question")
                {
                    questions.Add(el.Value);
                }
            }


            return(questions);
        }
示例#12
0
        //Returns the list of hints for Identification having provided the quizID
        public List <string> getIdentifcationHints(string quizID)
        {
            List <string> answers = new List <string>();

            XDocument xDoc = new XDocument();

            xDoc = XDocument.Load(@"Quizzard.xml");
            XElement root = XElement.Load(@"Quizzard.xml");

            IEnumerable <XElement> address =
                from el in root.Elements("Quiz")
                where (string)el.Attribute("id") == quizID
                where (string)el.Attribute("type") == "Identification"
                select el;

            //Get the Element Item
            foreach (XElement el in address.Descendants("Item").Elements())
            {
                if (el.Name == "Hint")
                {
                    answers.Add(el.Value);
                }
            }

            return(answers);
        }
示例#13
0
        //Returns a list of lists of alternate answers for identification
        public List <List <string> > getIdentificationAlternateAnswers(string quizID)
        {
            List <List <string> > inAnswers  = new List <List <string> >();
            List <string>         outAnswers = new List <string>();


            XDocument xDoc = new XDocument();

            xDoc = XDocument.Load(@"Quizzard.xml");
            XElement root = XElement.Load(@"Quizzard.xml");

            IEnumerable <XElement> address =
                from el in root.Elements("Quiz")
                where (string)el.Attribute("id") == quizID
                where (string)el.Attribute("type") == "Identification"
                select el;

            //Get the Element of Quiz
            foreach (XElement el in address.Descendants("Item"))
            {
                //Get the element of Item
                foreach (XElement val in el.Elements())
                {
                    if (val.Name == "Alternate-Answer")
                    {
                        outAnswers.Add(val.Value);
                    }
                }

                inAnswers.Add(outAnswers);
                outAnswers = new List <string>();
            }

            return(inAnswers);
        }
示例#14
0
        public string parse(string test, string propertyName)
        {
            IEnumerable <XElement> e = from el in doc.Descendants(test) select el;
            string parseStr          = e.Descendants(propertyName).First().Value;

            if (parseStr.Length > 0)
            {
                switch (propertyName)
                {
                case "author":
                    author = parseStr;
                    break;

                case "dateTime":
                    dateTime = parseStr;
                    break;

                case "testDriver":
                    testDriver = parseStr;
                    break;

                default:
                    break;
                }
                return(parseStr);
            }
            return("");
        }
        private bool AddStartListener(XElement extElem)
        {
            Type     runListenerType = typeof(RuntimeAssigneeExecutionListener);
            XElement startListener   = (from x in extElem.Descendants(XName.Get(BpmnXMLConstants.ELEMENT_EXECUTION_LISTENER, BpmnXMLConstants.ACTIVITI_EXTENSIONS_NAMESPACE))
                                        where
                                        BaseExecutionListenerFields.EVENTNAME_START.Equals(x.Attribute(BpmnXMLConstants.ATTRIBUTE_LISTENER_EVENT)?.Value, StringComparison.OrdinalIgnoreCase) &&
                                        (x.Attribute(BpmnXMLConstants.ATTRIBUTE_LISTENER_CLASS)?.Value.Contains(runListenerType.FullName)).GetValueOrDefault()
                                        select x).FirstOrDefault();

            if (startListener != null)
            {
                return(false);
            }

            IEnumerable <XElement> eProps = extElem.Descendants(XName.Get(BpmnXMLConstants.ELEMENT_EXTENSIONS_PROPERTIES, BpmnXMLConstants.ACTIVITI_EXTENSIONS_NAMESPACE));

            XElement assignee = (from x in eProps.Descendants(XName.Get(BpmnXMLConstants.ELEMENT_EXTENSIONS_PROPERTY, BpmnXMLConstants.ACTIVITI_EXTENSIONS_NAMESPACE))
                                 where BpmnXMLConstants.ACTIITI_RUNTIME_ASSIGNEE.Equals(x.Attribute(BpmnXMLConstants.ATTRIBUTE_DATA_NAME)?.Value, StringComparison.OrdinalIgnoreCase)
                                 select x).FirstOrDefault();

            if (assignee != null && bool.TryParse(assignee.Attribute(BpmnXMLConstants.ELEMENT_DATA_VALUE)?.Value, out bool isRuntime) && isRuntime)
            {
                startListener = new XElement(XName.Get(BpmnXMLConstants.ELEMENT_EXECUTION_LISTENER, BpmnXMLConstants.ACTIVITI_EXTENSIONS_NAMESPACE),
                                             new XAttribute(BpmnXMLConstants.ATTRIBUTE_LISTENER_CLASS, $"{runListenerType.FullName},{runListenerType.Assembly.GetName().Name}"),
                                             new XAttribute(BpmnXMLConstants.ATTRIBUTE_LISTENER_EVENT, BaseExecutionListenerFields.EVENTNAME_START));
                extElem.Add(startListener);

                return(true);
            }

            return(false);
        }
        private void Show_Click(object sender, RoutedEventArgs e)
        {
            //02-Jun-18 15:40:53
            DateTime dateTimeStart = DateTime.ParseExact(textBoxStart.Text, "dd-MMM-yy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None);
            DateTime dateTimeEnd   = DateTime.ParseExact(textBoxEnd.Text, "dd-MMM-yy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None);

            string path = "../../../AMS/bin/Debug/Controllers/ams.xml";

            XDocument doc = XDocument.Load(path);
            IEnumerable <XElement> elements = (from el in doc.Descendants("device") where (string)el.Attribute("code").Value == textBoxLD.Text.ToString() select el); //ovde su svi device


            IEnumerable <XElement> values = (from el in elements.Descendants("value") select el); //ovde su sve vrednosti

            foreach (XElement xe in values)
            {
                if (DateTime.ParseExact(xe.FirstAttribute.Value, "dd-MMM-yy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None) >= dateTimeStart && DateTime.ParseExact(xe.FirstAttribute.Value, "dd-MMM-yy HH:mm:ss", new CultureInfo("en-US"), DateTimeStyles.None) <= dateTimeEnd)
                {
                    ListaVrednosti.Add("Value: " + xe.Value + " time: " + xe.FirstAttribute.Value); //ovde ubacujemo one vrednosti koje upadaju u vreme izmedju
                }
            }

            textBoxReport.Text = String.Join(Environment.NewLine, ListaVrednosti);
            ListaVrednosti.Clear();
            doc.Save(path);
        }
示例#17
0
        public XElement[] SortOrdersByDate(IEnumerable <XElement> elements)
        {
            var sortedItems = elements.Descendants("Order")
                              .OrderBy(item => DateTime.Parse(item.Element("OrderDate")?.Value)).ToArray();

            return(sortedItems);
        }
示例#18
0
 /// <summary>
 /// Reads the element and converts it to a integer
 /// </summary>
 /// <param name="x"></param>
 /// <param name="parent"></param>
 /// <param name="element"></param>
 /// <returns></returns>
 private static int ConvertStringIntervalToInteger(ref IEnumerable <XElement> x, string parent, string element)
 {
     return(int.Parse(x.Descendants(parent)
                      .Elements(element)
                      .FirstOrDefault()
                      .Value));
 }
        private static void DoSubStructureInsertAfter(XElement[] structureElementsFound, Saetning saetning,
                                                      IEnumerable <XElement> aendringAktionChange)
        {
            foreach (var xElement in structureElementsFound)
            {
                var punktumPerCharMap = xElement.Descendants("Char")
                                        .Select(charElement => new
                {
                    Char            = charElement,
                    NumberOfPunktum = charElement.Value.Count(c => c == '.')
                });
                int      acc        = 0;
                XElement targetChar = null;
                using (var enumerator = punktumPerCharMap.GetEnumerator())
                {
                    while (acc <= saetning.NummerStrong && enumerator.MoveNext())
                    {
                        acc        = acc + enumerator.Current.NumberOfPunktum;
                        targetChar = enumerator.Current.Char;
                    }
                }
                if (targetChar == null)
                {
                    throw new ApplyAendringerException("No char elemenet is found. Something is wrong.");
                }

                var targetLinea = targetChar.Parent;
                targetLinea.AddAfterSelf(aendringAktionChange.Descendants("Linea"));
            }
        }
        /// <summary>
        /// Прочитать конфиг файл
        /// </summary>
        /// <param name="document">XML документ</param>
        /// <returns>Результат чтения</returns>
        private XmlConfigReadingResult ReadConfigurationFile(XDocument document)
        {
            var readingResult = new XmlConfigReadingResult();

            IEnumerable <XElement> directoryElements = document.Descendants("directory").ToList();

            if (directoryElements.Any())
            {
                String directoryDimensionStr   = directoryElements.First().AttributeSafe("dimension");
                String directorySourceColorStr = directoryElements.First().AttributeSafe("sourceColor");
                String directoryColorStr       = directoryElements.First().AttributeSafe("color");
                String directoryWidthStr       = directoryElements.First().AttributeSafe("width");
                String directoryHightStr       = directoryElements.First().AttributeSafe("height");
                String directoryUnitTypeStr    = directoryElements.First().AttributeSafe("unitType");

                readingResult.ConfigDirectoryInfo = new XmlConfigDirectoryInfo()
                {
                    Dimension    = directoryDimensionStr,
                    SourceColor  = ParseColorStr(directorySourceColorStr),
                    Color        = ParseColorStr(directoryColorStr),
                    Size         = ParseSizeStr(directoryWidthStr, directoryHightStr),
                    SizeUnitType = ParseSizeUnitTypeStr(directoryUnitTypeStr)
                };

                IEnumerable <XElement> fileConfigElements = directoryElements.Descendants("file").ToList();
                foreach (var fileConfigElement in fileConfigElements)
                {
                    String fileNameStr        = fileConfigElement.AttributeSafe("name");
                    String fileDimensionStr   = fileConfigElement.AttributeSafe("dimension");
                    String fileSourceColorStr = fileConfigElement.AttributeSafe("sourceColor");
                    String fileColorStr       = fileConfigElement.AttributeSafe("color");
                    String fileWidthStr       = fileConfigElement.AttributeSafe("width");
                    String fileHightStr       = fileConfigElement.AttributeSafe("height");
                    String fileUnitTypeStr    = fileConfigElement.AttributeSafe("unitType");

                    if (!String.IsNullOrEmpty(fileNameStr))
                    {
                        readingResult.ConfigFileInfoCollection.Add(new XmlConfigFileInfo()
                        {
                            FileName     = fileNameStr,
                            Dimension    = fileDimensionStr,
                            SourceColor  = ParseColorStr(fileSourceColorStr),
                            Color        = ParseColorStr(fileColorStr),
                            Size         = ParseSizeStr(fileWidthStr, fileHightStr),
                            SizeUnitType = ParseSizeUnitTypeStr(fileUnitTypeStr)
                        });
                    }
                    else
                    {
                        readingResult.ConfigErrorCollection.Add(new XmlConfigError(fileConfigElement.ToString(), "Ошибка разбора полей для файла"));
                    }
                }
            }
            else
            {
                readingResult.ConfigErrorCollection.Add(new XmlConfigError(directoryElements.ToString(), "Ошибка разбора полей для директории"));
            }

            return(readingResult);
        }
 private void convertParameterValueCacheElement(IEnumerable <XElement> parameterValueCacheElement)
 {
     foreach (var percentilesListElement in parameterValueCacheElement.Descendants("DoubleList").ToList())
     {
         percentilesListElement.Name = Constants.Serialization.PERCENTILES;
     }
 }
示例#22
0
        static string getListOfValues(IEnumerable <XElement> list, string key, string subTag)
        {
            if (list.Count() == 0)
            {
                return("");
            }

            StringBuilder builder = new StringBuilder();
            var           epcs    = list.Descendants(subTag);

            if (epcs.Count() > 0)
            {
                builder.Append(key + "=");
            }

            int n   = 0;
            int tot = epcs.Count();

            foreach (var epc in epcs)
            {
                builder.Append(ComputeSha256Hash(epc.Value));
                if (n < (tot - 1))
                {
                    builder.Append(",");
                }
                n++;
            }

            return(builder.ToString());
        }
示例#23
0
文件: Map.cs 项目: mkniffen/Roguelike
        public void Load(IEnumerable <XElement> tilesToLoad)
        {
            var availableItems   = AvailableItems.Instance;
            var availableMobiles = AvailableMobiles.Instance;

            Mobile mobile = null;
            Item   item   = null;

            foreach (XElement tile in tilesToLoad.Descendants("Tile"))
            {
                var top        = Int32.Parse(tile.Element("Location").Element("Top").Value);
                var left       = Int32.Parse(tile.Element("Location").Element("Left").Value);
                var tileTypeId = Int32.Parse(tile.Element("TypeId").Value);

                mobile = null;
                if (!string.IsNullOrEmpty(tile.Element("Mobile").Value))
                {
                    mobile = availableMobiles.GetMobileById((Int32.Parse(tile.Element("Mobile").Element("TypeId").Value)));
                    mobile.Load(tile.Element("Mobile"));
                }

                item = null;
                if (!string.IsNullOrEmpty(tile.Element("Item").Value))
                {
                    item = availableItems.GetItemById((Int32.Parse(tile.Element("Item").Element("ItemId").Value)));
                    item.Load(tile.Element("Item"));
                }

                Tiles.Add(new Tile {
                    Location = new Location(left, top), TypeId = tileTypeId, Mobile = mobile, Item = item
                });
            }
        }
示例#24
0
        /// <summary>
        /// This method is used to verify the attributes of the xml file’s root element
        /// </summary>
        /// <returns>If the attributes match up. True or False</returns>
        private bool processHeader()
        {
            bool validated = true;

            try
            {
                long checkSumNumber = 0;

                string today = DateTime.Today.ToShortDateString();

                XDocument xmlFile = XDocument.Load(inputFileName);

                XElement studentUpdate = xmlFile.Element("student_update");

                IEnumerable <XElement> transactions = studentUpdate.Descendants().Where(x => x.Name == "transaction");

                IEnumerable <XElement> studentNumbers = transactions.Descendants().Where(x => x.Name == "student_no");

                foreach (XElement value in studentNumbers)
                {
                    checkSumNumber += long.Parse(value.Value);
                }


                if (studentUpdate.Attributes().Count() != 3)
                {
                    throw new Exception("There is not 3 attributes");
                }


                string   date = studentUpdate.Attribute("date").Value;
                DateTime time = DateTime.Parse(date);

                if (date != today)
                {
                    throw new Exception("The date does not match");
                }

                string xmlAcro = studentUpdate.Attribute("program").Value;

                if (db.Programs.Where(x => x.ProgramAcronym.Equals(xmlAcro)).Count() != 1)
                {
                    throw new Exception("The program acronym does not match");
                }

                string xmlCheckSum = studentUpdate.Attribute("checksum").Value;

                if (long.Parse(xmlCheckSum) != checkSumNumber)
                {
                    throw new Exception("The checksum numbers do not match");
                }
            }
            catch (Exception ex)
            {
                logData  += ex.Message;
                validated = false;
            }

            return(validated);
        }
示例#25
0
        private void saveDataToJsonFile(bool original, string filename, XDocument doc)
        {
            string path = (original) ? (FolderDispatcher.OriginalPath()) : (FolderDispatcher.TranslationPath());

            System.IO.Stream stream;
            stream = File.Open(path + filename, FileMode.Create);
            var jsonWriter = JsonReaderWriterFactory.CreateJsonWriter(stream, Encoding.UTF8, true, true);

            jsonWriter.WriteStartDocument();
            jsonWriter.WriteStartElement("root");
            jsonWriter.WriteAttributeString("type", "object");

            IEnumerable <XElement> elements = doc.Root.Elements().ToList();

            foreach (XElement chapter in elements)
            {
                jsonWriter.WriteStartElement(chapter.Name.ToString());
                jsonWriter.WriteAttributeString("type", "object");
                foreach (XElement element in elements.Descendants())
                {
                    jsonWriter.WriteElementString(element.Name.ToString(), element.GetDefaultNamespace().ToString(), element.Value);
                }
            }
            jsonWriter.WriteEndDocument();
            jsonWriter.Flush();
            stream.Close();
        }
        public static void labelingHospital(IEnumerable <XElement> traces)
        {
            //Labeling Hospital:
            //If Name of any event in trace contains "spoed" (= "urgent") mark as urgent
            foreach (var trace in traces)
            {
                int iTraceIsUrgent = 2;

                var elems_EventName = trace.Elements("event").Elements().Where(x => (string)x.Attribute("key") == "concept:name");

                foreach (var el in elems_EventName)
                {
                    if (el.Attribute("value").Value.Contains("spoed"))
                    {
                        iTraceIsUrgent = 1;
                        break;
                    }
                }
                trace.SetAttributeValue("Label", iTraceIsUrgent.ToString());
            }

            var dateTranslation = traces.Descendants().Where(x => x.Name.LocalName == "date");

            foreach (var dateTr in dateTranslation)
            {
                string val = dateTr.Attribute("value").Value;

                val = val.Substring(0, 23).Replace('T', ' ');
                DateTime myDate = DateTime.ParseExact(val, "yyyy-MM-dd HH:mm:ss.fff",
                                                      System.Globalization.CultureInfo.InvariantCulture);

                dateTr.Attribute("value").Value = myDate.Ticks.ToString();
            }
        }
示例#27
0
        public ObservableCollection <CoreTeams> GetSelectedHomeTeams(string number)
        {
            ObservableCollection <CoreTeams> homeTeams = new ObservableCollection <CoreTeams>();

            try
            {
                XElement root = XDocument.Load("Schedule.xml").Root;

                IEnumerable <XElement> teams = root.Descendants("MatchUps");

                var team = (from xml in teams.Descendants("Match")
                            where xml.Attribute("week").Value.Equals(number)
                            select xml);

                foreach (CoreTeams away in team.
                         Select(t => CurrentSession.Teams.
                                FirstOrDefault(a => a.Tricode.Equals(t.Attribute("homeTeam").Value))))
                {
                    homeTeams.Add(away);
                }

                return(homeTeams);
            }
            catch (Exception e)
            {
                //NotificationManager.Push("Error", "File cannot be found");
                Console.WriteLine(e);
            }

            return(homeTeams);
        }
示例#28
0
        protected void ParseDiscoverSchemaXMLA(XDocument doc)
        {
            XNamespace xmlnsa  = "http://schemas.xmlsoap.org/soap/envelope/";
            XNode      xmlBody = doc.Descendants(xmlnsa + "Body").First().FirstNode;

            doc = XDocument.Parse(xmlBody.ToString());

            xmlnsa  = "urn:schemas-microsoft-com:xml-analysis";
            xmlBody = doc.Descendants(xmlnsa + "DiscoverResponse").First().FirstNode;
            doc     = XDocument.Parse(xmlBody.ToString());
            xmlnsa  = "urn:schemas-microsoft-com:xml-analysis:rowset";

            XElement root = doc.Root;
            IEnumerable <XElement> elements = root.Elements();

            //ArrayList catalogList = new ArrayList();
            catalogList = new ArrayList();
            var list = from item in elements.Descendants(xmlnsa + "CATALOG_NAME") select item;

            SchemaDropDownList.Items.Clear();
            SchemaDropDownList.Items.Add("Choose");
            foreach (var entry in list)
            {
                catalogList.Add(entry.Value.ToString());
                //System.Diagnostics.Debug.WriteLine("\t"+entry.Value);
                SchemaDropDownList.Items.Add(new ListItem(entry.Value.ToString()));
            }
        }
        /// <summary>
        /// Removes all &lt;u [val=...]/&gt; descendant elements from the &lt;rPr [...]/&gt; elements
        /// and places a &lt;pStyle val="CaptionFigure" /&gt; on the &lt;pPr [...]/&gt; elements.
        ///
        /// This method works on the existing <see cref="XElement"/> and returns a reference to it for a fluent syntax.
        /// </summary>
        /// <param name="element">The element to search for descendants.</param>
        /// <returns>A reference to the existing <see cref="XElement"/>. This is returned for use with fluent syntax calls.</returns>
        /// <exception cref="System.ArgumentException"/>
        /// <exception cref="System.ArgumentNullException"/>
        public static XElement ChangeUnderlineToFigureCaption(this XElement element)
        {
            IEnumerable <XElement> paragraphs =
                element.Descendants(W + "u")
                .Select(x => x.Parent)
                .Where(x => x?.Name == W + "rPr")
                .Select(x => x.Parent)
                .Where(x => x?.Name == W + "r")
                .Select(x => x.Parent)
                .Where(x => x?.Name == W + "p")
                .Where(x => (x.Next()?.DescendantsAndSelf().Any(y => y.Name == W + "drawing") ?? false) ||
                       (x.Next()?.Value.Contains('{') ?? false))
                .Distinct()
                .ToArray();

            foreach (XElement item in paragraphs)
            {
                item.AddFigureCaption();
                item.RemoveBy(W + "pStyle");
                if (!item.Elements(W + "pPr").Any())
                {
                    item.AddFirst(new XElement(W + "pPr"));
                }
                else
                {
                    XElement pPr = item.Element(W + "pPr");
                    pPr?.Remove();
                    item.AddFirst(pPr);
                }
                item.Element(W + "pPr")?.AddFirst(new XElement(W + "pStyle", new XAttribute(W + "val", "CaptionFigure")));
            }
            paragraphs.Descendants(W + "u").Distinct().Remove();
            return(element);
        }
示例#30
0
 private void renameChartElementToCurveChart(IEnumerable <XElement> chartContainerElement)
 {
     foreach (var chartElement in chartContainerElement.Descendants("Chart").ToList())
     {
         rename(chartElement, "CurveChart");
     }
 }
示例#31
0
        protected Response GetBasicResponse(IEnumerable<XElement> root)
        {
            //populate the basic info
            // and see if the response is successful
            if (0 == root.Count()) {
                root = _doc.Descendants(_namespace + "ErrorResponse");
            }
            var resultCode = root.Descendants(_namespace + "resultCode").First().Value;
            var response = new Response
                               {
                                   Success = resultCode == "Ok" ? true : false,
                                   Message = root.Descendants(_namespace + "text").First().Value,
                                   Code = root.Descendants(_namespace + "code").First().Value

                               };
            return response;
        }
示例#32
0
        protected XElement FindElementByAttributesFromElements(string attributeName, string attributeValue, IEnumerable<XElement> elements)
        {
            var descendants = elements
                .Descendants();

            var element = descendants
                .Where(x => x.HasAttributes && x.Attribute(attributeName) != null)
                .SingleOrDefault(x => x.Attribute(attributeName).Value == attributeValue);

            return element;
        }
示例#33
0
 public static string GetTableValue(IEnumerable<XElement> rows, string property)
 {
     string value;
         XElement propertyCell = rows.Descendants("td").Where(cell => cell.Value == property).FirstOrDefault();
         if (propertyCell != null)
         {
             var Row = propertyCell.Parent.Descendants("td").ElementAt(1);
             return Row.Value.Trim();
         }
         else
         {
             return string.Empty;
         }
 }
示例#34
0
 private static void CopyComments(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs)
 {
     int number = 0;
     XDocument oldComments = null;
     XDocument newComments = null;
     foreach (XElement comment in paragraphs.Descendants(ns + "commentReference"))
     {
         if (oldComments == null)
             oldComments = oldDoc.MainDocumentPart.WordprocessingCommentsPart.GetXDocument();
         if (newComments == null)
         {
             if (newDoc.MainDocumentPart.WordprocessingCommentsPart != null)
             {
                 newComments = newDoc.MainDocumentPart.WordprocessingCommentsPart.GetXDocument();
                 var ids = newComments.Root.Elements(ns + "comment").Select(f => (int)f.Attribute(ns + "id"));
                 if (ids.Any())
                     number = ids.Max() + 1;
             }
             else
             {
                 newDoc.MainDocumentPart.AddNewPart<WordprocessingCommentsPart>();
                 newComments = newDoc.MainDocumentPart.WordprocessingCommentsPart.GetXDocument();
                 newComments.Add(new XElement(ns + "comments", ns_attrs));
             }
         }
         string id = (string)comment.Attribute(ns + "id");
         XElement element = oldComments.Descendants().Elements(ns + "comment").Where(p => ((string)p.Attribute(ns + "id")) == id).First();
         XElement newElement = new XElement(element);
         newElement.Attribute(ns + "id").Value = number.ToString();
         newComments.Root.Add(newElement);
         comment.Attribute(ns + "id").Value = number.ToString();
         XElement commentRange = paragraphs.Elements(ns + "commentRangeStart").Where(s => ((string)s.Attribute(ns + "id")) == id).FirstOrDefault();
         if (commentRange != null)
             commentRange.Attribute(ns + "id").Value = number.ToString();
         commentRange = paragraphs.Elements(ns + "commentRangeEnd").Where(s => ((string)s.Attribute(ns + "id")) == id).FirstOrDefault();
         if (commentRange != null)
             commentRange.Attribute(ns + "id").Value = number.ToString();
         number++;
     }
 }
示例#35
0
 private static void CopyHyperlinks(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs)
 {
     foreach (XElement hyperlink in paragraphs.Descendants(ns + "hyperlink"))
         if (hyperlink.Attribute(ns_r + "id") != null)
         {
             string relId = hyperlink.Attribute(ns_r + "id").Value;
             HyperlinkRelationship relLink = oldDoc.MainDocumentPart.HyperlinkRelationships.Where(rel => (rel.Id == relId)).FirstOrDefault();
             HyperlinkRelationship newRelLink = newDoc.MainDocumentPart.AddHyperlinkRelationship(relLink.Uri, true);
             hyperlink.Attribute(ns_r + "id").Value = newRelLink.Id;
         }
     foreach (XElement hyperlink in paragraphs.Descendants(ns_v + "imagedata"))
         if (hyperlink.Attribute(ns_r + "href") != null)
         {
             string relId = hyperlink.Attribute(ns_r + "href").Value;
             ExternalRelationship relLink = oldDoc.MainDocumentPart.ExternalRelationships.Where(rel => (rel.Id == relId)).FirstOrDefault();
             ExternalRelationship newRelLink = newDoc.MainDocumentPart.AddExternalRelationship(relLink.RelationshipType, relLink.Uri);
             hyperlink.Attribute(ns_r + "href").Value = newRelLink.Id;
         }
 }
示例#36
0
 private static void CopyEndnotes(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs)
 {
     int number = 0;
     XDocument oldEndnotes = null;
     XDocument newEndnotes = null;
     foreach (XElement endnote in paragraphs.Descendants(ns + "endnoteReference"))
     {
         if (oldEndnotes == null)
             oldEndnotes = oldDoc.MainDocumentPart.EndnotesPart.GetXDocument();
         if (newEndnotes == null)
         {
             if (newDoc.MainDocumentPart.EndnotesPart != null)
             {
                 newEndnotes = newDoc.MainDocumentPart.EndnotesPart.GetXDocument();
                 var ids = newEndnotes.Root.Elements(ns + "endnote").Select(f => (int)f.Attribute(ns + "id"));
                 if (ids.Any())
                     number = ids.Max() + 1;
             }
             else
             {
                 newDoc.MainDocumentPart.AddNewPart<EndnotesPart>();
                 newEndnotes = newDoc.MainDocumentPart.EndnotesPart.GetXDocument();
                 newEndnotes.Add(new XElement(ns + "endnotes", ns_attrs));
             }
         }
         string id = (string)endnote.Attribute(ns + "id");
         XElement element = oldEndnotes.Descendants().Elements(ns + "endnote").Where(p => ((string)p.Attribute(ns + "id")) == id).First();
         XElement newElement = new XElement(element);
         newElement.Attribute(ns + "id").Value = number.ToString();
         newEndnotes.Root.Add(newElement);
         endnote.Attribute(ns + "id").Value = number.ToString();
         number++;
     }
 }
示例#37
0
        private static void AppendDocument(this WordprocessingDocument doc, WordprocessingDocument source, IEnumerable<XElement> contents,
            bool keepSection, bool lastKeepSection, List<ImageData> images)
        {
            FixRanges(source.MainDocumentPart.GetXDocument(), contents);
            CopyReferences(source, doc, contents, images);

            // Append contents
            XDocument mainPart = doc.MainDocumentPart.GetXDocument();
            XElement section = mainPart.Root.Element(ns + "body").Element(ns + "sectPr");
            XElement newSection = contents.Last();
            if (newSection.Name != ns + "sectPr")
                newSection = null;
            if (newSection == null)
                keepSection = false;
            bool newContainsSection = contents.Descendants(ns + "pPr").Descendants(ns + "sectPr").Any();
            if (section != null)
            {
                section.Remove();
                if (lastKeepSection)
                {
                    if (newContainsSection || keepSection)
                    {
                        XElement paragraph = mainPart.Root.Element(ns + "body").Elements(ns + "p").Last();
                        XElement prop = paragraph.Element(ns + "pPr");
                        if (prop == null)
                        {
                            prop = new XElement(ns + "pPr");
                            paragraph.AddFirst(prop);
                        }
                        if (newContainsSection && !keepSection)
                            prop.Add(new XElement(section));
                        else
                            prop.Add(section);
                    }
                }
                else if (keepSection)
                    section = null;
            }
            mainPart.Root.Element(ns + "body").Add(contents);
            if (!keepSection && section != null)
            {
                newSection = mainPart.Root.Element(ns + "body").Element(ns + "sectPr");
                if (newSection != null)
                    newSection.Remove();
                mainPart.Root.Element(ns + "body").Add(section);
            }
        }
示例#38
0
 private static void CopyCharts(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs)
 {
     foreach (XElement chartReference in paragraphs.Descendants(ns_c + "chart"))
     {
         string relId = chartReference.Attribute(ns_r + "id").Value;
         ChartPart oldPart = (ChartPart)oldDoc.MainDocumentPart.GetPartById(relId);
         XDocument oldChart = oldPart.GetXDocument();
         ChartPart newPart = newDoc.MainDocumentPart.AddNewPart<ChartPart>();
         XDocument newChart = newPart.GetXDocument();
         newChart.Add(oldChart.Root);
         chartReference.Attribute(ns_r + "id").Value = newDoc.MainDocumentPart.GetIdOfPart(newPart);
         CopyChartObjects(oldPart, newPart);
     }
 }
示例#39
0
 private static void CopyEmbeddedObjects(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs)
 {
     foreach (XElement oleReference in paragraphs.Descendants(ns_o + "OLEObject"))
     {
         string relId = oleReference.Attribute(ns_r + "id").Value;
         OpenXmlPart oldPart = oldDoc.MainDocumentPart.GetPartById(relId);
         OpenXmlPart newPart = newDoc.MainDocumentPart.AddEmbeddedObjectPart(oldPart.ContentType);
         using (Stream oldObject = oldPart.GetStream(FileMode.Open, FileAccess.Read))
         using (Stream newObject = newPart.GetStream(FileMode.Create, FileAccess.ReadWrite))
         {
             int byteCount;
             byte[] buffer = new byte[65536];
             while ((byteCount = oldObject.Read(buffer, 0, 65536)) != 0)
                 newObject.Write(buffer, 0, byteCount);
         }
         oleReference.Attribute(ns_r + "id").Value = newDoc.MainDocumentPart.GetIdOfPart(newPart);
     }
 }
示例#40
0
        private static void CopyDiagrams(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs)
        {
            foreach (XElement diagramReference in paragraphs.Descendants(ns_dgm + "relIds"))
            {
                // dm attribute
                string relId = diagramReference.Attribute(ns_r + "dm").Value;
                OpenXmlPart oldPart = oldDoc.MainDocumentPart.GetPartById(relId);
                OpenXmlPart newPart = newDoc.MainDocumentPart.AddNewPart<DiagramDataPart>();
                newPart.GetXDocument().Add(oldPart.GetXDocument().Root);
                diagramReference.Attribute(ns_r + "dm").Value = newDoc.MainDocumentPart.GetIdOfPart(newPart);

                // lo attribute
                relId = diagramReference.Attribute(ns_r + "lo").Value;
                oldPart = oldDoc.MainDocumentPart.GetPartById(relId);
                newPart = newDoc.MainDocumentPart.AddNewPart<DiagramLayoutDefinitionPart>();
                newPart.GetXDocument().Add(oldPart.GetXDocument().Root);
                diagramReference.Attribute(ns_r + "lo").Value = newDoc.MainDocumentPart.GetIdOfPart(newPart);

                // qs attribute
                relId = diagramReference.Attribute(ns_r + "qs").Value;
                oldPart = oldDoc.MainDocumentPart.GetPartById(relId);
                newPart = newDoc.MainDocumentPart.AddNewPart<DiagramStylePart>();
                newPart.GetXDocument().Add(oldPart.GetXDocument().Root);
                diagramReference.Attribute(ns_r + "qs").Value = newDoc.MainDocumentPart.GetIdOfPart(newPart);

                // cs attribute
                relId = diagramReference.Attribute(ns_r + "cs").Value;
                oldPart = oldDoc.MainDocumentPart.GetPartById(relId);
                newPart = newDoc.MainDocumentPart.AddNewPart<DiagramColorsPart>();
                newPart.GetXDocument().Add(oldPart.GetXDocument().Root);
                diagramReference.Attribute(ns_r + "cs").Value = newDoc.MainDocumentPart.GetIdOfPart(newPart);
            }
        }
 private static void CopyCustomXml(WordprocessingDocument sourceDocument, WordprocessingDocument newDocument,
     IEnumerable<XElement> newContent)
 {
     List<string> itemList = new List<string>();
     foreach (string itemId in newContent
         .Descendants(W.dataBinding)
         .Select(e => e.Attribute(W.storeItemID).Value))
         if (!itemList.Contains(itemId))
             itemList.Add(itemId);
     foreach (CustomXmlPart customXmlPart in sourceDocument.MainDocumentPart.CustomXmlParts)
     {
         OpenXmlPart propertyPart = customXmlPart
             .Parts
             .Select(p => p.OpenXmlPart)
             .Where(p => p.ContentType == "application/vnd.openxmlformats-officedocument.customXmlProperties+xml")
             .First();
         XDocument propertyPartDoc = propertyPart.GetXDocument();
         if (itemList.Contains(propertyPartDoc.Root.Attribute(DS.itemID).Value))
         {
             CustomXmlPart newPart = newDocument.MainDocumentPart.AddCustomXmlPart(customXmlPart.ContentType);
             newPart.GetXDocument().Add(customXmlPart.GetXDocument().Root);
             foreach (OpenXmlPart propPart in customXmlPart.Parts.Select(p => p.OpenXmlPart))
             {
                 CustomXmlPropertiesPart newPropPart = newPart.AddNewPart<CustomXmlPropertiesPart>();
                 newPropPart.GetXDocument().Add(propPart.GetXDocument().Root);
             }
         }
     }
 }
 /// <summary>
 /// Reads the element and converts it to a integer
 /// </summary>
 /// <param name="x"></param>
 /// <param name="parent"></param>
 /// <param name="element"></param>
 /// <returns></returns>
 private static int ConvertStringIntervalToInteger(ref IEnumerable<XElement> x, string parent, string element)
 {
     return int.Parse(x.Descendants(parent)
                       .Elements(element)
                       .FirstOrDefault()
                       .Value);
 }
示例#43
0
 private static void CopyFooters(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs, List<ImageData> images)
 {
     foreach (XElement footerReference in paragraphs.Descendants(ns + "footerReference"))
     {
         string relId = footerReference.Attribute(ns_r + "id").Value;
         FooterPart oldPart = (FooterPart)oldDoc.MainDocumentPart.GetPartById(relId);
         XDocument oldFooter = oldPart.GetXDocument();
         FooterPart newPart = newDoc.MainDocumentPart.AddNewPart<FooterPart>();
         XDocument newFooter = newPart.GetXDocument();
         newFooter.Add(oldFooter.Root);
         footerReference.Attribute(ns_r + "id").Value = newDoc.MainDocumentPart.GetIdOfPart(newPart);
         CopyFooterShapes(oldPart, newPart, images);
         CopyFooterEmbeddedObjects(oldPart, newPart);
         CopyFooterImages(oldPart, newPart, images);
     }
 }
		public void ResetNumbering(IEnumerable<XElement> elements)
		{
			var numPrs = elements.Descendants(W.numPr).Where(d=>d.Element(W.numId) != null);

			foreach (var numPr in numPrs.GroupBy(e => (int)e.Element(W.numId).Attribute(W.val)))
			{
				var numId = numPr.Key;
				var numIds = numPrs.Elements(W.numId).Attributes(W.val).Where(e => (int)e == numId);
				var ilvl = int.Parse(numPr.First().Element(W.ilvl).Attribute(W.val).Value);

				if (_lastNumIds.ContainsKey(ilvl))
				{

					var numElementPrototype = _numberingPart
					.Descendants(W.num)
					.FirstOrDefault(n => (int)n.Attribute(W.numId) == numId);

					var abstractNumElementPrototype = _numberingPart
						.Descendants(W.abstractNum)
						.FirstOrDefault(e => e.Attribute(W.abstractNumId).Value ==
								numElementPrototype
								.Element(W.abstractNumId)
								.Attribute(W.val).Value);
					var lastNumElement = _numberingPart
						.Descendants(W.num)
						.OrderBy(n => (int)n.Attribute(W.numId))
						.LastOrDefault();
					if (lastNumElement == null) break;

					var nextNumId = (int)lastNumElement.Attribute(W.numId) + 1;

					var lastAbstractNumElement = _numberingPart.Descendants(W.abstractNum).Last();
					var lastAbstractNumId = (int)lastAbstractNumElement.Attribute(W.abstractNumId);

					var newAbstractNumElement = new XElement(abstractNumElementPrototype);
					newAbstractNumElement.Attribute(W.abstractNumId).SetValue(lastAbstractNumId + 1);

					var next = Random.Next(int.MaxValue);
					var nsid = newAbstractNumElement.Element(W.nsid);
					if (nsid != null)
						nsid.Attribute(W.val).SetValue(next.ToString("X"));

					lastAbstractNumElement.AddAfterSelf(newAbstractNumElement);

					var newNumElement = new XElement(numElementPrototype);
					newNumElement.Attribute(W.numId).SetValue(nextNumId);
					newNumElement.Element(W.abstractNumId).Attribute(W.val).SetValue(lastAbstractNumId + 1);
					lastNumElement.AddAfterSelf(newNumElement);

					foreach (var xElement in numIds)
					{
						xElement.SetValue(nextNumId);
					}

					_lastNumIds[ilvl] = nextNumId;
				}
				else
				{
					_lastNumIds.Add(ilvl, numId);
				}
			}
		}
示例#45
0
 /// <summary>
 /// 지정된 컬럼의 값을 반환합니다.
 /// </summary>
 /// <param name="query"></param>
 /// <param name="FieldName"></param>
 /// <returns>double</returns>
 private static IEnumerable<double> GetCoumnValue(IEnumerable<XElement> query, string FieldName)
 {
     var query2 =
                from
                    oColumns in query.Descendants("Column")
                where (string)oColumns.Element("ID") == FieldName &&
                    oColumns.Elements("Value").Any()
                select
                    (double)oColumns.Element("Value");
     return query2;
 }
示例#46
0
        /// <summary>
        /// XElement 형식을 DataTable로 변환합니다. 
        /// </summary>
        /// <param name="x"></param>
        /// <returns></returns>
        private static System.Data.DataTable XElementToDataTable(IEnumerable<XElement> x)
        {
            var all = from p in x.Descendants("Columns") select p;

            XElement table = new XElement("Root");
            foreach (XElement xe in all)
            {

                XElement Row1 = new XElement("Row");

                foreach (XElement xe2 in xe.Descendants("Column"))
                {
                   var row2 = (from p in xe2.Descendants()
                               select
                                   new XElement(xe2.Element("ID").Value, xe2.Element("Value").Value)).First();


                   Row1.Add(row2);
                }

                table.Add(new XElement(Row1));

            }

            System.Data.DataTable dt = ToDataTable(table.ToString());

            return dt;
        }
示例#47
0
        private static void CopyNumbering(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs)
        {
            int number = 1;
            int abstractNumber = 0;
            XDocument oldNumbering = null;
            XDocument newNumbering = null;
            foreach (XElement numReference in paragraphs.Descendants(ns + "numPr"))
            {
                XElement idElement = numReference.Descendants(ns + "numId").FirstOrDefault();
                if (idElement != null)
                {
                    if (oldNumbering == null)
                        oldNumbering = oldDoc.MainDocumentPart.NumberingDefinitionsPart.GetXDocument();
                    if (newNumbering == null)
                    {
                        if (newDoc.MainDocumentPart.NumberingDefinitionsPart != null)
                        {
                            newNumbering = newDoc.MainDocumentPart.NumberingDefinitionsPart.GetXDocument();
                            var numIds = newNumbering.Root.Elements(ns + "num").Select(f => (int)f.Attribute(ns + "numId"));
                            if (numIds.Any())
                                number = numIds.Max() + 1;
                            numIds = newNumbering.Root.Elements(ns + "abstractNum").Select(f => (int)f.Attribute(ns + "abstractNumId"));
                            if (numIds.Any())
                                abstractNumber = numIds.Max() + 1;
                        }
                        else
                        {
                            newDoc.MainDocumentPart.AddNewPart<NumberingDefinitionsPart>();
                            newNumbering = newDoc.MainDocumentPart.NumberingDefinitionsPart.GetXDocument();
                            newNumbering.Add(new XElement(ns + "numbering", ns_attrs));
                        }
                    }
                    string numId = idElement.Attribute(ns + "val").Value;
                    if (numId != "0")
                    {
                        XElement element = oldNumbering.Descendants().Elements(ns + "num").Where(p => ((string)p.Attribute(ns + "numId")) == numId).First();

                        // Copy abstract numbering element, if necessary (use matching NSID)
                        string abstractNumId = element.Elements(ns + "abstractNumId").First().Attribute(ns + "val").Value;
                        XElement abstractElement = oldNumbering.Descendants().Elements(ns + "abstractNum").Where(p => ((string)p.Attribute(ns + "abstractNumId")) == abstractNumId).First();
                        string abstractNSID = abstractElement.Elements(ns + "nsid").First().Attribute(ns + "val").Value;
                        XElement newAbstractElement = newNumbering.Descendants().Elements(ns + "abstractNum").Where(p => ((string)p.Elements(ns + "nsid").First().Attribute(ns + "val")) == abstractNSID).FirstOrDefault();
                        if (newAbstractElement == null)
                        {
                            newAbstractElement = new XElement(abstractElement);
                            newAbstractElement.Attribute(ns + "abstractNumId").Value = abstractNumber.ToString();
                            abstractNumber++;
                            if (newNumbering.Root.Elements(ns + "abstractNum").Any())
                                newNumbering.Root.Elements(ns + "abstractNum").Last().AddAfterSelf(newAbstractElement);
                            else
                                newNumbering.Root.Add(newAbstractElement);
                        }
                        string newAbstractId = newAbstractElement.Attribute(ns + "abstractNumId").Value;

                        // Copy numbering element, if necessary (use matching element with no overrides)
                        XElement newElement = null;
                        if (!element.Elements(ns + "lvlOverride").Any())
                            newElement = newNumbering.Descendants().Elements(ns + "num").Where(p => !p.Elements(ns + "lvlOverride").Any() && ((string)p.Elements(ns + "abstractNumId").First().Attribute(ns + "val")) == newAbstractId).FirstOrDefault();
                        if (newElement == null)
                        {
                            newElement = new XElement(element);
                            newElement.Elements(ns + "abstractNumId").First().Attribute(ns + "val").Value = newAbstractId;
                            newElement.Attribute(ns + "numId").Value = number.ToString();
                            number++;
                            newNumbering.Root.Add(newElement);
                        }
                        idElement.Attribute(ns + "val").Value = newElement.Attribute(ns + "numId").Value;
                    }
                }
            }
        }
示例#48
0
        static void RemoveUnwantedElements(IEnumerable<XElement> members)
        {
            string[] tagsSupportedByIntellisense =
            {
                "summary",
                "param",
                "returns",
                "exception",
            };

            string[] tagsToStrip =
            {
                "a",
                "img",
            };

            RemoveElements(from member in members
                           from element in member.Elements()
                           where !tagsSupportedByIntellisense.Contains(element.Name.LocalName, StringComparer.OrdinalIgnoreCase)
                           select element);

            RemoveElements(from element in members.Descendants()
                           where IsMarkedToSkip(element)
                           select element);

            StripElements(from element in members.Descendants()
                          where tagsToStrip.Contains(element.Name.LocalName, StringComparer.OrdinalIgnoreCase)
                          select element);
        }
示例#49
0
 private static void CopyShapes(WordprocessingDocument oldDoc, WordprocessingDocument newDoc, IEnumerable<XElement> paragraphs, List<ImageData> images)
 {
     foreach (XElement shapeReference in paragraphs.Descendants(ns_v + "imagedata"))
     {
         string relId = shapeReference.Attribute(ns_r + "id").Value;
         ImagePart oldPart = (ImagePart)oldDoc.MainDocumentPart.GetPartById(relId);
         ImageData temp = ManageImageCopy(oldPart, images);
         if (temp.ResourceID == null)
         {
             ImagePart newPart = newDoc.MainDocumentPart.AddImagePart(oldPart.ContentType);
             temp.ResourceID = newDoc.MainDocumentPart.GetIdOfPart(newPart);
             temp.WriteImage(newPart);
         }
         shapeReference.Attribute(ns_r + "id").Value = temp.ResourceID;
     }
 }
示例#50
0
        /// <summary>
        /// 화면에 보이는 메트릭스 구조로 XML 태그를 변환합니다.
        /// </summary>
        /// <param name="x"></param>
        /// <returns></returns>
        private static XElement GetGridConvertToXML(IEnumerable<XElement> x)
        {
            var all = from p in x.Descendants("Cells") select p;

            XElement oXElement = new XElement("Root");
            foreach (XElement xe in all)
            {

                XElement Row1 = new XElement("Row");

                foreach (XElement xe2 in xe.Descendants("Cell"))
                {
                    var row2 = (from p in xe2.Descendants()
                                select
                                    new XElement(xe2.Element("ColumnUid").Value, xe2.Element("Value").Value)).First();


                    Row1.Add(row2);
                }

                oXElement.Add(new XElement(Row1));

            }

            return oXElement;
        }
 private static void UpdateContent(IEnumerable<XElement> newContent, XName elementToModify, string oldRid, string newRid)
 {
     foreach (var attributeName in RelationshipMarkup[elementToModify])
     {
         var elementsToUpdate = newContent
             .Descendants(elementToModify)
             .Where(e => (string)e.Attribute(attributeName) == oldRid);
         foreach (var element in elementsToUpdate)
             element.Attribute(attributeName).Value = newRid;
     }
 }
示例#52
0
文件: Map.cs 项目: mkniffen/Roguelike
        public void Load(IEnumerable<XElement> tilesToLoad)
        {
            var availableItems = AvailableItems.Instance;
            var availableMobiles = AvailableMobiles.Instance;

            Mobile mobile = null;
            Item item = null;

            foreach (XElement tile in tilesToLoad.Descendants("Tile"))
            {
                var top = Int32.Parse(tile.Element("Location").Element("Top").Value);
                var left = Int32.Parse(tile.Element("Location").Element("Left").Value);
                var tileTypeId = Int32.Parse(tile.Element("TypeId").Value);

                mobile = null;
                if (!string.IsNullOrEmpty(tile.Element("Mobile").Value))
                {
                    mobile = availableMobiles.GetMobileById((Int32.Parse(tile.Element("Mobile").Element("TypeId").Value)));
                    mobile.Load(tile.Element("Mobile"));
                }

                item = null;
                if (!string.IsNullOrEmpty(tile.Element("Item").Value))
                {
                    item = availableItems.GetItemById((Int32.Parse(tile.Element("Item").Element("ItemId").Value)));
                    item.Load(tile.Element("Item"));
                }

                Tiles.Add(new Tile {Location = new Location(left, top), TypeId = tileTypeId, Mobile = mobile, Item = item });
            }
        }