コード例 #1
0
        private XElement AddChildElement(XContainer parent, string name)
        {
            var element = new XElement(name);

            parent?.Add(element);
            return(element);
        }
コード例 #2
0
        /// <summary>
        /// Updates the method element.
        /// </summary>
        /// <param name="method">The method.</param>
        /// <param name="elementPosition">The element position.</param>
        /// <param name="fileId">The file id.</param>
        private static void UpdateMethodElement(XContainer method, SourceElementPosition elementPosition, string fileId)
        {
            for (int i = elementPosition.Start; i <= elementPosition.End; i++)
            {
                var seqpnt = new XElement(
                    "pt",
                    new XAttribute("visit", "0"),
                    new XAttribute("fid", fileId),
                    new XAttribute("sl", i));

                method.Add(seqpnt);
            }
        }
コード例 #3
0
        internal static void AddIndented(XContainer container, XContainer content)
        {
            var oneIndentLevel = ComputeOneLevelOfIndentation(container);

            var leadingText  = container.PreviousNode as XText;
            var parentIndent = leadingText != null ? leadingText.Value : Environment.NewLine;

            IndentChildrenElements(content, parentIndent + oneIndentLevel, oneIndentLevel);

            AddLeadingIndentation(container, parentIndent, oneIndentLevel);
            container.Add(content);
            AddTrailingIndentation(container, parentIndent);
        }
コード例 #4
0
        private static void SaveThreeState(XContainer xRoot, string containerName, MultiCheckboxState state)
        {
            if (state == MultiCheckboxState.Partial)
            {
                return;
            }

            var xContainerElement = new XElement(containerName);

            xRoot.Add(xContainerElement);

            xContainerElement.Add(new XElement(StateNode, state.ToString()));
        }
コード例 #5
0
        public void SavePresetInfo(XContainer xRootElement)
        {
            var xInfoElement = new XElement(InfoNode);

            xRootElement.Add(xInfoElement);

            xInfoElement.Add(new XElement(PresetVersionNode, PresetVersion));
            xInfoElement.Add(new XElement(PresetAuthorNode, Author));
            xInfoElement.Add(new XElement(PresetTemplateNode, false));
            xInfoElement.Add(new XElement(PresetDescriptionNode,
                                          string.IsNullOrEmpty(Description) ? "None" : Description));
            //xInfoElement.Add(new XElement(PresetDateNode, DateTime.Now));
        }
コード例 #6
0
        public static void AddAttribute(this XContainer parent, params XAttribute[] attributes)
        {
            if (attributes == null || parent == null)
            {
                return;
            }
            if (attributes.Length < 1)
            {
                return;
            }

            parent.Add(attributes);
        }
コード例 #7
0
        /// <summary>
        /// Adds a new source code file to the report.
        /// </summary>
        /// <param name="filesContainer">The files container.</param>
        /// <param name="fileId">The file id.</param>
        /// <param name="file">The file path.</param>
        protected override void AddNewFile(XContainer filesContainer, string fileId, string file)
        {
            XDocument document = filesContainer as XDocument;

            if (document != null)
            {
                document.Root.Add(new XElement("File", new XAttribute("id", fileId), new XAttribute("url", file)));
            }
            else
            {
                filesContainer.Add(new XElement("File", new XAttribute("id", fileId), new XAttribute("url", file)));
            }
        }
コード例 #8
0
ファイル: ProcessNuPropsTask.cs プロジェクト: adamecr/Commons
        /// <summary>
        /// Get the element. The element is created first when doesn't exist
        /// </summary>
        /// <param name="container">Element's container (parent)</param>
        /// <param name="name">Name of the element (tag)</param>
        /// <param name="ns">Namespace info</param>
        /// <returns>Element</returns>
        private static XElement GetOrCreateElement(XContainer container, string name, XNamespace ns)
        {
            var element = container.Element(ns + name);

            if (element != null)
            {
                return(element);
            }

            element = new XElement(ns + name);
            container.Add(element);
            return(element);
        }
コード例 #9
0
        public static void AddChild(this XContainer parent, params XElement[] childrens)
        {
            if (childrens == null || parent == null)
            {
                return;
            }
            if (childrens.Length < 1)
            {
                return;
            }

            parent.Add(childrens);
        }
コード例 #10
0
        public static void AddFetchXmlFilterCondition(this XContainer filter, string attribute, string operatorName,
                                                      string value)
        {
            filter.ThrowOnNull("filter");

            var condition = new XElement("condition");

            condition.SetAttributeValue("attribute", attribute);
            condition.SetAttributeValue("operator", operatorName);
            condition.SetAttributeValue("value", value);

            filter.Add(condition);
        }
コード例 #11
0
        public static void AddOrReplace(this XContainer @this, XElement element)
        {
            var oldElement = @this.Element(element.Name);

            if (oldElement != null)
            {
                oldElement.ReplaceWith(element);
            }
            else
            {
                @this.Add(element);
            }
        }
コード例 #12
0
        private static void SortAlphabetically(XContainer packageReferenceItemGroup)
        {
            // Remove and re-add the elements in alphabetical order
            var packageReferenceElements = packageReferenceItemGroup
                                           .Elements()
                                           .OrderBy(x => x.Attributes("Include").Single().Value);

            foreach (var packageReferenceElement in packageReferenceElements)
            {
                packageReferenceElement.Remove();
                packageReferenceItemGroup.Add(packageReferenceElement);
            }
        }
コード例 #13
0
        public static void AddIndented(this XContainer container, XContainer content)
        {
            string oneIndentLevel = container.ComputeOneLevelOfIndentation();

            XText  leadingText  = container.PreviousNode as XText;
            string parentIndent = leadingText != null ? leadingText.Value : Environment.NewLine;

            content.IndentChildrenElements(parentIndent + oneIndentLevel, oneIndentLevel);

            AddLeadingIndentation(container, parentIndent, oneIndentLevel);
            container.Add(content);
            AddTrailingIndentation(container, parentIndent);
        }
コード例 #14
0
ファイル: Converter.cs プロジェクト: sockRa/MediaIntegrator
 /// <summary>
 ///     Add generic product data to an xml file
 ///     Code inspired from http://getcodesnippet.com/2014/05/15/how-to-convert-csv-file-to-xml-file-in-c/
 /// </summary>
 /// <param name="xElement"></param>
 /// <param name="columns"></param>
 private static void AddGenericXmlData(XContainer xElement, IReadOnlyList <string> columns)
 {
     xElement.Add(new XElement("Item",
                               new XElement("Name", columns[(int)CsvProductItems.Name]),
                               new XElement("Count", columns[(int)CsvProductItems.Quantity]),
                               new XElement("Price", columns[(int)CsvProductItems.Price]),
                               new XElement("Comment", columns[(int)CsvProductItems.Description]),
                               new XElement("ProductID", columns[(int)CsvProductItems.Id]),
                               new XElement("Type", columns[(int)CsvProductItems.Type]),
                               new XElement("Sales", columns[(int)CsvProductItems.Sales]),
                               new XElement("Publisher", CsvItemStatus.NotAvailable),
                               new XElement("Genre", CsvItemStatus.NotAvailable),
                               new XElement("Year", (int)CsvItemStatus.NotAvailable)));
 }
コード例 #15
0
    private static void AddApi(XContainer parent, ApiEntry api)
    {
        var apiElement = new XElement("api",
                                      new XAttribute("fingerprint", api.Fingerprint.ToString("N")),
                                      new XAttribute("kind", (int)api.Kind),
                                      new XAttribute("name", api.Name !));

        parent.Add(apiElement);

        if (api.Parent != null)
        {
            apiElement.Add(new XAttribute("parent", api.Parent.Fingerprint.ToString("N")));
        }
    }
コード例 #16
0
        public static XElement GetOrAddElement(this XContainer container, XName name)
        {
            DebugCheck.NotNull(container);

            var child = container.Element(name);

            if (child == null)
            {
                child = new XElement(name);
                container.Add(child);
            }

            return(child);
        }
コード例 #17
0
        private void CreateComment(IQuickXmlItem item, XContainer document = null)
        {
            var comment       = new XComment(item.Value);
            var parentElement = _elementLookup.LastOrDefault(i => i.Key < item.Depth).Value;

            if (parentElement != null)
            {
                parentElement.Add(comment);
            }
            else if (document != null)
            {
                document.Add(comment);
            }
        }
コード例 #18
0
        /// <summary>
        /// Uses recursion to serialize a complex type
        /// </summary>
        /// <param name="objectGraph">The root object graph.</param>
        /// <param name="property">The current property</param>
        /// <param name="propertyValue">The current properties value</param>
        private static void SerializeComplexType(XContainer objectGraph, PropertyInfo property, object propertyValue)
        {
            //create new child element
            XElement nestedType = new XElement(CleanName(property.Name));

            //serialize the child elements properties
            SerializeProperties(property.PropertyType.GetProperties(), propertyValue, nestedType);

            //add it to the objectGraph if the child has at least one child
            if (nestedType.HasElements)
            {
                objectGraph.Add(nestedType);
            }
        }
コード例 #19
0
        private static void AddLeadingIndentation(XContainer container, string containerIndent, string oneIndentLevel)
        {
            var containerIsSelfClosed = !container.Nodes().Any();
            var lastChildText         = container.LastNode as XText;

            if (containerIsSelfClosed || lastChildText == null)
            {
                container.Add(new XText(containerIndent + oneIndentLevel));
            }
            else
            {
                lastChildText.Value += oneIndentLevel;
            }
        }
コード例 #20
0
    private static void SortXml(XContainer parent)
    {
        var elements = parent.Elements()
                       .OrderBy(e => e.Name.LocalName)
                       .ToArray();

        Array.ForEach(elements, e => e.Remove());

        foreach (var element in elements)
        {
            parent.Add(element);
            SortXml(element);
        }
    }
コード例 #21
0
        public static XElement GetOrAddElement(this XContainer parent, XName name)
        {
            Contract.Requires <ArgumentNullException>(parent != null);
            Contract.Requires <ArgumentNullException>(name != null);

            var element = parent.Element(name);

            if (element == null)
            {
                element = new XElement(name);
                parent.Add(element);
            }
            return(element);
        }
コード例 #22
0
        private static void IndentChildrenElements(this XContainer container, string containerIndent, string oneIndentLevel)
        {
            string str = containerIndent + oneIndentLevel;

            foreach (XElement local1 in container.Elements())
            {
                local1.AddBeforeSelf(new XText(str));
                local1.IndentChildrenElements(str + oneIndentLevel, oneIndentLevel);
            }
            if (container.Elements().Any <XElement>())
            {
                container.Add(new XText(containerIndent));
            }
        }
コード例 #23
0
    public static XElement GetOrAddElement(this XContainer container, XName name)
    {
        if (container == null || name == null)
        {
            throw new ArgumentNullException();
        }
        var element = container.Element(name);

        if (element == null)
        {
            container.Add(element = new XElement(name));
        }
        return(element);
    }
コード例 #24
0
        public void WriteDetail(XContainer container, Type810Detail[] details)
        {
            if (!details.Any())
            {
                return;
            }

            var loopElement = new XElement("DetailLoop");

            container.Add(loopElement);

            foreach (var detail in details)
            {
                if (!detail.DetailKey.HasValue)
                {
                    continue;
                }

                var element = new XElement("Detail",
                                           new XElement("DetailKey", detail.DetailKey),
                                           new XElement("HeaderKey", detail.HeaderKey));

                element.TryAddElement("AssignedId", detail.AssignedId);
                element.TryAddElement("ServiceTypeCode", detail.ServiceTypeCode);
                element.TryAddElement("ServiceType", detail.ServiceType);
                element.TryAddElement("ServiceClassCode", detail.ServiceClassCode);
                element.TryAddElement("ServiceClass", detail.ServiceClass);
                element.TryAddElement("RateClass", detail.RateClass);
                element.TryAddElement("RateSubClass", detail.RateSubClass);
                element.TryAddElement("ServicePeriodStartDate", detail.ServicePeriodStartDate);
                element.TryAddElement("ServicePeriodEndDate", detail.ServicePeriodEndDate);
                element.TryAddElement("MeterNumber", detail.MeterNumber);
                element.TryAddElement("BillCycle", detail.BillCycle);
                element.TryAddElement("GasPoolId", detail.GasPoolId);
                element.TryAddElement("ServiceAgreement", detail.ServiceAgreement);
                element.TryAddElement("RateCode", detail.RateCode);
                element.TryAddElement("SupplierContractID", detail.SupplierContractId);
                element.TryAddElement("UtilityContractID", detail.UtilityContractId);

                loopElement.Add(element);
                logger.TraceFormat("Added 810 \"Detail\" XML element for Header {0}", detail.HeaderKey);

                var detailItems = exportDataAccess.ListDetailItems(detail.DetailKey.Value);
                WriteDetailItem(element, detailItems);

                var detailTaxes = exportDataAccess.ListDetailTaxes(detail.DetailKey.Value);
                WriteDetailTax(element, detailTaxes);
            }
        }
コード例 #25
0
        public void WriteName(XContainer container, Type814Name[] names)
        {
            var loopElement = new XElement("NameLoop");

            container.Add(loopElement);

            if (names == null || names.Length == 0)
            {
                return;
            }

            foreach (var name in names)
            {
                if (!name.NameKey.HasValue)
                {
                    continue;
                }

                var element = new XElement("Name",
                                           new XElement("NameKey", name.NameKey),
                                           new XElement("HeaderKey", name.HeaderKey),
                                           new XElement("EntityIdType", name.EntityIdType),
                                           new XElement("EntityName", name.EntityName));

                element.TryAddElement("EntityName2", name.EntityName2);
                element.TryAddElement("EntityName3", name.EntityName3);
                element.TryAddElement("EntityDuns", name.EntityDuns);
                element.TryAddElement("EntityIdCode", name.EntityIdCode);
                element.TryAddElement("Address1", name.Address1);
                element.TryAddElement("Address2", name.Address2);
                element.TryAddElement("City", name.City);
                element.TryAddElement("State", name.State);
                element.TryAddElement("PostalCode", name.PostalCode);
                element.TryAddElement("CountryCode", name.CountryCode);
                element.TryAddElement("County", name.County);
                element.TryAddElement("ContactCode", name.ContactCode);
                element.TryAddElement("ContactName", name.ContactName);
                element.TryAddElement("ContactPhoneNbr1", name.ContactPhoneNbr1);
                element.TryAddElement("ContactPhoneNbr2", name.ContactPhoneNbr2);
                element.TryAddElement("ContactPhoneNbr3", name.ContactPhoneNbr3);
                element.TryAddElement("EntityFirstName", name.EntityFirstName);
                element.TryAddElement("EntityLastName", name.EntityLastName);
                element.TryAddElement("CustType", name.CustType);
                element.TryAddElement("TaxingDistrict", name.TaxingDistrict);
                element.TryAddElement("EntityMiddleName", name.EntityMiddleName);
                loopElement.Add(element);
                logger.TraceFormat("Added 814 \"Name\" XML element for Header {0}", name.HeaderKey);
            }
        }
コード例 #26
0
        public static XElement GetOrCreateElement(
            this XContainer container, string elementName, params XAttribute[] attributes)
        {
            DebugCheck.NotNull(container);
            DebugCheck.NotEmpty(elementName);

            var element = container.Element(elementName);

            if (element == null)
            {
                element = new XElement(elementName, attributes);
                container.Add(element);
            }
            return(element);
        }
コード例 #27
0
ファイル: Preset.cs プロジェクト: AzureFox4/PrepareLanding
        private static void SaveUsableFromList <T>(XContainer xRoot, string elementName, UsableFromList <T> item)
            where T : struct, IConvertible
        {
            if (!item.Use)
            {
                return;
            }

            var xElement = new XElement(elementName);

            xRoot.Add(xElement);

            xElement.Add(new XElement(UseNode, item.Use));
            xElement.Add(new XElement(SelectedNode, item.Selected));
        }
コード例 #28
0
ファイル: Preset.cs プロジェクト: AzureFox4/PrepareLanding
        private static void SaveMostLeastItem(XContainer xRoot, string elementName, MostLeastItem item)
        {
            if (item.IsInDefaultState)
            {
                return;
            }

            var xElement = new XElement(elementName);

            xRoot.Add(xElement);

            xElement.Add(new XElement(MostLeastItemFeatureNode, item.Characteristic.ToString()));
            xElement.Add(new XElement(MostLeastItemFeatureTypeNode, item.CharacteristicType.ToString()));
            xElement.Add(new XElement(MostLeastItemNumberOfItemsNode, item.NumberOfItems));
        }
コード例 #29
0
        private static void IndentChildrenElements(XContainer container, string containerIndent, string oneIndentLevel)
        {
            var childIndent = containerIndent + oneIndentLevel;

            foreach (var element in container.Elements())
            {
                element.AddBeforeSelf(new XText(childIndent));
                IndentChildrenElements(element, childIndent + oneIndentLevel, oneIndentLevel);
            }

            if (container.Elements().Any())
            {
                container.Add(new XText(containerIndent));
            }
        }
コード例 #30
0
        private void AddStoryInNewsSiteMap(HttpContextBase context, XContainer target, IStory story, SiteMapUpdatePriority priority, string dateFormat)
        {
            XElement url = CreateEntry(context, Settings.RootUrl, "Detail", new { name = story.UniqueName }, story.LastActivityAt, SiteMapChangeFrequency.Daily, priority, false);

            string keyWords = story.BelongsTo.Name;

            if (story.HasTags())
            {
                keyWords += ", " + string.Join(", ", story.Tags.Select(t => t.Name).ToArray());
            }

            url.Add(new XElement(_googleNews + "news", new XElement(_googleNews + "publication_date", story.PublishedAt.Value.ToString(dateFormat, Constants.CurrentCulture)), new XElement(_googleNews + "keywords", keyWords)));

            target.Add(url);
        }