/// <summary> /// Slims an AF SDK AFAttributeTemplate /// </summary> /// <param name="attributeTemplate">The template to be slimmed</param> /// <param name="attributeInstance">Optional attribute instance to provide data reference information if not set on the template</param> /// <returns></returns> public static AFAttributeTemplateSlim ToSlim(this AFAttributeTemplateDTO attributeTemplate, AFAttributeDTO attributeInstance = null) { string pathRelativeToElement = attributeTemplate.GetPathRelativeToElement(); AFAttributeTemplateSlim slim = new AFAttributeTemplateSlim() { Id = attributeTemplate.Id, FullName = pathRelativeToElement, Name = attributeTemplate.Name, Description = attributeTemplate.Description, IsTopLevel = !pathRelativeToElement.Contains('|'), TypeName = attributeTemplate.Type, TypeQualifier = attributeTemplate.TypeQualifier, IsHidden = attributeTemplate.IsHidden, IsStatic = string.IsNullOrWhiteSpace(attributeTemplate.DataReferencePlugIn) && string.IsNullOrWhiteSpace(attributeInstance.DataReferencePlugIn), HasChildren = attributeTemplate.HasChildren, CategoryNames = attributeTemplate.CategoryNames }; return(slim); }
private async Task <List <AFAttributeTemplateDTO> > GetAllAttributeTemplateDTOs(AFAttributeTemplateDTO attributeTemplateDTO) { List <AFAttributeTemplateDTO> selfAndChildren = new List <AFAttributeTemplateDTO>() { attributeTemplateDTO }; if (attributeTemplateDTO.HasChildren) { List <AFAttributeTemplateDTO> children = await GetImmediateChildAttributeTemplateDTOsAsync(attributeTemplateDTO.WebId); foreach (AFAttributeTemplateDTO child in children) { List <AFAttributeTemplateDTO> childAndAllDescendants = await GetAllAttributeTemplateDTOs(child); selfAndChildren.AddRange(childAndAllDescendants); } } return(selfAndChildren); }