コード例 #1
0
 private static void FillAvailableLanguages(DocPageViewModel viewModel, DocumentationPage_WithVersionsAndLanguages.Result article, string currentVersion)
 {
     if (article.Languages.ContainsKey(currentVersion))
     {
         viewModel.AvailableLanguages.AddRange(article.Languages[currentVersion]);
     }
 }
コード例 #2
0
        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;
            }
        }