public List <WearableItem> GetWearableItems() { if (wearables == null || wearables.Count == 0) { return(null); } List <WearableItem> result = new List <WearableItem>(); foreach (var wearableData in wearables) { // Populate new WearableItem with fetched data WearableItem wearable = new WearableItem() { id = wearableData.id, baseUrl = WEARABLES_CONTENT_BASE_URL, thumbnail = wearableData.thumbnail, rarity = wearableData.rarity, description = wearableData.description, i18n = wearableData.i18n, data = new WearableItem.Data() { category = wearableData.data.category, tags = wearableData.data.tags } }; List <WearableItem.Representation> wearableRepresentations = new List <WearableItem.Representation>(); foreach (var wearableDataRepresentation in wearableData.data.representations) { WearableItem.Representation wearableRepresentation = new WearableItem.Representation() { bodyShapes = wearableDataRepresentation.bodyShapes, overrideHides = wearableDataRepresentation.overrideHides, overrideReplaces = wearableDataRepresentation.overrideReplaces, mainFile = wearableDataRepresentation.mainFile }; List <WearableItem.MappingPair> contentMappingPairs = new List <WearableItem.MappingPair>(); foreach (var content in wearableDataRepresentation.contents) { contentMappingPairs.Add(new WearableItem.MappingPair() { key = content.key, hash = content.url.Substring(content.url.LastIndexOf("/") + 1) }); } wearableRepresentation.contents = contentMappingPairs.ToArray(); wearableRepresentations.Add(wearableRepresentation); } wearable.data.representations = wearableRepresentations.ToArray(); result.Add(wearable); } return(result); }
public List <WearableItem> GetWearableItemsList() { if (deployments == null || deployments.Count == 0) { return(null); } List <WearableItem> result = new List <WearableItem>(); foreach (var wearableData in deployments) { // Populate new WearableItem with fetched data WearableItem wearable = new WearableItem() { id = wearableData.metadata.id, category = wearableData.metadata.data.category, tags = wearableData.metadata.data.tags, baseUrl = WEARABLES_CONTENT_BASE_URL, thumbnail = wearableData.metadata.thumbnail, hides = wearableData.metadata.data.hides, replaces = wearableData.metadata.data.replaces, rarity = wearableData.metadata.rarity, description = wearableData.metadata.description, i18n = wearableData.metadata.i18n }; List <WearableItem.Representation> wearableRepresentations = new List <WearableItem.Representation>(); foreach (var wearableDataRepresentation in wearableData.metadata.data.representations) { WearableItem.Representation wearableRepresentation = new WearableItem.Representation() { bodyShapes = wearableDataRepresentation.bodyShapes, overrideHides = wearableDataRepresentation.overrideHides, overrideReplaces = wearableDataRepresentation.overrideReplaces, mainFile = wearableDataRepresentation.mainFile }; List <ContentServerUtils.MappingPair> contentMappingPairs = new List <ContentServerUtils.MappingPair>(); foreach (var contentFileName in wearableDataRepresentation.contents) { var contentData = wearableData.content.FirstOrDefault((x) => x.key == contentFileName); if (contentData == null) { log.Error($"Missing related content mapping pair info from fetched Wearable {wearableData.metadata.id}"); continue; } contentMappingPairs.Add(new ContentServerUtils.MappingPair() { file = contentData.key, hash = contentData.hash }); } wearableRepresentation.contents = contentMappingPairs.ToArray(); wearableRepresentations.Add(wearableRepresentation); } wearable.representations = wearableRepresentations.ToArray(); result.Add(wearable); } return(result); }