private IEnumerable GetMetadataInfo()

in code/src/CoreTemplateStudio/CoreTemplateStudio.Core/Templates/TemplatesRepository.cs [523:569]


        private IEnumerable<MetadataInfo> GetMetadataInfo(string type)
        {
            if (Sync?.CurrentContent != null)
            {
                var folderName = Path.Combine(Sync?.CurrentContent.Path, CurrentPlatform, Catalog);

                if (Directory.Exists(folderName))
                {
                    var metadataFile = Path.Combine(folderName, $"{type}.json");
                    var metadataFileLocalized = Path.Combine(folderName, $"{CultureInfo.CurrentUICulture.IetfLanguageTag}.{type}.json");
                    if (File.Exists(metadataFile))
                    {
                        var metadata = JsonConvert.DeserializeObject<List<MetadataInfo>>(File.ReadAllText(metadataFile));

                        if (metadata.Any(m => m.Languages != null))
                        {
                            metadata.RemoveAll(m => !m.Languages.Contains(CurrentLanguage));
                        }

                        if (File.Exists(metadataFileLocalized))
                        {
                            var metadataLocalized = JsonConvert.DeserializeObject<List<MetadataLocalizedInfo>>(File.ReadAllText(metadataFileLocalized));
                            metadataLocalized.ForEach(ml =>
                            {
                                MetadataInfo cm = metadata.FirstOrDefault(m => m.Name == ml.Name);

                                if (cm != null)
                                {
                                    cm.DisplayName = ml.DisplayName;
                                    cm.Summary = ml.Summary;
                                }
                            });
                        }

                        metadata.ForEach(m => SetMetadataDescription(m, folderName, type));
                        metadata.ForEach(m => SetMetadataIcon(m, folderName, type));
                        metadata.ForEach(m => m.MetadataType = type == "projectTypes" ? MetadataType.ProjectType : MetadataType.Framework);
                        metadata.ForEach(m => SetLicenseTerms(m));
                        metadata.ForEach(m => SetDefaultTags(m));

                        return metadata.OrderBy(m => m.Order);
                    }
                }
            }

            return Enumerable.Empty<MetadataInfo>();
        }