protected override SyncAttempt <XElement> SerializeCore(IMemberType item, SyncSerializerOptions options) { var node = SerializeBase(item); var info = SerializeInfo(item); var parent = item.ContentTypeComposition.FirstOrDefault(x => x.Id == item.ParentId); if (parent != null) { info.Add(new XElement("Parent", parent.Alias, new XAttribute("Key", parent.Key))); } else if (item.Level != 1) { // in a folder var folderNode = GetFolderNode(memberTypeService.GetContainers(item)); if (folderNode != null) { info.Add(folderNode); } } info.Add(SerializeCompostions((ContentTypeCompositionBase)item)); node.Add(info); node.Add(SerializeProperties(item)); node.Add(SerializeStructure(item)); node.Add(SerializeTabs(item)); return(SyncAttempt <XElement> .Succeed(item.Name, node, typeof(IMediaType), ChangeType.Export)); }