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 IEnumerable <MasterDataFieldDto> ToFlattenedDtos(this IEnumerable <MasterDataField> fields, MasterDataAttributeDto attribute) { var list = new List <MasterDataFieldDto>(); foreach (var field in fields) { list.AddRange(CreateFieldDto(field, (short)list.Count, attribute, null)); } return(list); }
private static IEnumerable <MasterDataFieldDto> CreateFieldDto(MasterDataField field, short fieldId, MasterDataAttributeDto attribute, short?parentId) { var list = new List <MasterDataFieldDto> { MasterDataFieldDto.Create(field, attribute, fieldId, parentId) }; foreach (var children in field.Children) { list.AddRange(CreateFieldDto(children, (short)(fieldId + list.Count), attribute, fieldId)); } return(list); }