private static void FillAvailableLanguages(DocPageViewModel viewModel, DocumentationPage_WithVersionsAndLanguages.Result article, string currentVersion) { if (article.Languages.ContainsKey(currentVersion)) { viewModel.AvailableLanguages.AddRange(article.Languages[currentVersion]); } }
private void FillAvailableVersions(DocPageViewModel viewModel, DocumentationPage_WithVersionsAndLanguages.Result article, Language currentLanguage, string currentVersion) { var currentVersionAsFloat = float.Parse(currentVersion); foreach (var v in DocsVersion.AllVersionsAsFloat) { if (currentVersionAsFloat == v) { continue; } DocumentationMapping map; if (currentVersionAsFloat < v) { map = article.Page.Mappings .Where(x => x.Version > currentVersionAsFloat && x.Version <= v) .OrderBy(x => x.Version) .FirstOrDefault(); } else { map = article.Page.Mappings .Where(x => x.Version < currentVersionAsFloat && x.Version <= v) .OrderBy(x => x.Version) .LastOrDefault(); } if (map == null) { continue; } if (article.Languages.Any(versionWithLangs => float.Parse(versionWithLangs.Key) == v)) { continue; } viewModel.AvailableVersions[v] = map.Key; } foreach (var version in FilterVersions(article.Languages, currentLanguage, currentVersion)) { viewModel.AvailableVersions[float.Parse(version)] = article.Page.Key; } }