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)); }
internal static MasterDataDto Create(EpcisMasterData masterdata) { return(new MasterDataDto { Type = masterdata.Type, Id = masterdata.Id }); }
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; })); }
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); }
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));
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; })); }