예제 #1
0
        private static XElement FormatVocabulary(EpcisMasterData masterData)
        {
            var attributes = masterData.Attributes.Select(Format);
            var children   = FormatChildren(masterData.Children);

            return(new XElement("VocabularyElement", new XAttribute("id", masterData.Id), attributes, children));
        }
예제 #2
0
 internal static MasterDataDto Create(EpcisMasterData masterdata)
 {
     return(new MasterDataDto
     {
         Type = masterdata.Type,
         Id = masterdata.Id
     });
 }
예제 #3
0
 private static IEnumerable <EpcisMasterData> ParseVocabularyElements(string type, IEnumerable <XElement> elements)
 {
     return(elements.Select(e =>
     {
         var masterData = new EpcisMasterData {
             Id = e.Attribute("id").Value, Type = type
         };
         masterData.Attributes = ParseAttributes(e.Elements("attribute"), masterData).ToList();
         masterData.Children = ParseHierarchy(e.Element("children")?.Elements("id")).ToList();
         return masterData;
     }));
 }
예제 #4
0
        private static EpcisMasterData ParseVocabularyElement(XElement element, string type)
        {
            var masterdata = new EpcisMasterData
            {
                Type = type,
                Id   = element.Attribute("id").Value
            };

            masterdata.Attributes.AddRange(element.Elements("attribute").Select(ParseAttribute));
            masterdata.Children.AddRange(ParseChildren(element.Element("children")));

            return(masterdata);
        }
예제 #5
0
        public void AddMasterdata(EpcisMasterData masterdata)
        {
            MasterDataDtos.Add(MasterDataDto.Create(masterdata));

            foreach (var attribute in masterdata.Attributes)
            {
                var attributeDto = MasterDataAttributeDto.Create(attribute, masterdata.Id, masterdata.Type);

                AttributeDtos.Add(attributeDto);
                FieldDtos.AddRange(attribute.Fields.ToFlattenedDtos(attributeDto));
            }

            HierarchyDtos.AddRange(masterdata.Children.Select(x => MasterDataHierarchyDto.Create(x, masterdata.Id, masterdata.Type)));
        }
 public static XElement Format(EpcisMasterData masterData) => new XElement("VocabularyElement", new XAttribute("id", masterData.Id), masterData.Attributes.Select(Format), Format(masterData.Children));
예제 #7
0
        private static IEnumerable <MasterDataAttribute> ParseAttributes(IEnumerable <XElement> elements, EpcisMasterData masterData)
        {
            return(elements.Select(element =>
            {
                var attr = new MasterDataAttribute
                {
                    ParentId = masterData.Id,
                    ParentType = masterData.Type,
                    Id = element.Attribute("id").Value,
                    Value = element.Value
                };

                ParseField(element.Elements(), attr.Fields, attr);

                return attr;
            }));
        }