11@using String = NuGetGallery .Strings ;
22@using NuGetGallery .Frameworks ;
3+
34@model PackageFrameworkCompatibilityBadges
45@{
56 var eventName = " search-selection" ;
1819 itemIndex = parsedItemIndex ;
1920 }
2021}
22+
2123@functions
2224{
2325 public enum FrameworkContext
3133 public string GetBadgeTooltip (FrameworkContext context , PackageFrameworkCompatibilityData tfmCompatibilityData )
3234 {
3335 var badgeVersion = tfmCompatibilityData .Framework .GetBadgeVersion ();
34- string tfmType ;
35- switch (context )
36- {
37- case FrameworkContext .Net :
38- tfmType = " .NET" ;
39- break ;
40- case FrameworkContext .NetCore :
41- tfmType = " .NET Core" ;
42- break ;
43- case FrameworkContext .NetStandard :
44- tfmType = " .NET Standard" ;
45- break ;
46- case FrameworkContext .NetFramework :
47- tfmType = " .NET Framework" ;
48- break ;
49- default :
50- tfmType = " " ;
51- break ;
52- }
36+ string tfmType = GetFrameworkProductName (context );
5337
5438 if (badgeVersion .IsEmpty ())
5539 {
6549
6650 return toolTip ;
6751 }
52+
53+ public string GetBadgeDisplayName (FrameworkContext context , PackageFrameworkCompatibilityData tfmCompatibilityData )
54+ {
55+ var badgeVersion = tfmCompatibilityData .Framework .GetBadgeVersion ();
56+ string displayName = GetFrameworkProductName (context );
57+
58+ if (badgeVersion .IsEmpty ())
59+ {
60+ return displayName ;
61+ }
62+
63+ return displayName + " " + badgeVersion ;
64+ }
65+
66+ public string GetFrameworkProductName (FrameworkContext context )
67+ {
68+ switch (context )
69+ {
70+ case FrameworkContext .Net :
71+ return " .NET" ;
72+ case FrameworkContext .NetCore :
73+ return " .NET Core" ;
74+ case FrameworkContext .NetStandard :
75+ return " .NET Standard" ;
76+ case FrameworkContext .NetFramework :
77+ return " .NET Framework" ;
78+ default :
79+ return " " ;
80+ }
81+ }
82+ }
83+
84+ @helper DisplayFrameworkBadge(PackageFrameworkCompatibilityData tfmCompatibilityData, FrameworkContext context, int? itemIndex, string eventName)
85+ {
86+ <a href =@Url.FrameworksTab(Model.PackageId, Model.PackageVersion)
87+ @if (itemIndex.HasValue)
88+ {
89+ @: data-track =" @eventName" data-track-value =" @itemIndex" data-click-source =" FrameworkBadge"
90+ @: data-package-id =" @Model.PackageId" data-package-version =" @Model.PackageVersion"
91+ @: data-badge-framework =" @tfmCompatibilityData.Framework.GetShortFolderName()" data-badge-is-computed =" @tfmCompatibilityData.IsComputed"
92+ } >
93+ <span class =@(tfmCompatibilityData.IsComputed ? " framework-badge-computed" : " framework-badge-asset" ) aria-label =" @GetBadgeTooltip(context, tfmCompatibilityData)" data-content =" @GetBadgeTooltip(context, tfmCompatibilityData)" >
94+ @GetBadgeDisplayName(context , tfmCompatibilityData )
95+ </span >
96+ </a >
6897}
6998
7099<div class =" framework framework-badges" >
71100 @if (Model .Net != null )
72101 {
73- <!-- .NET cannot be an empty version since the lowest version for this framework is "net5.0", if the package contains just "net" framework it will fall into .NET Framework badge instead.' -->
74- <a href =@Url.FrameworksTab(Model.PackageId, Model.PackageVersion)
75- @if (itemIndex.HasValue)
76- {
77- @:data-track =" @eventName" data-track-value =" @itemIndex" data-click-source =" FrameworkBadge"
78- @:data-package-id =" @Model.PackageId" data-package-version =" @Model.PackageVersion"
79- @:data-badge-framework =" @Model.Net.Framework.GetShortFolderName()" data-badge-is-computed =" @Model.Net.IsComputed"
80- } >
81- <span class =@(Model.Net.IsComputed ? " framework-badge-computed" : " framework-badge-asset" ) aria-label =" @GetBadgeTooltip(FrameworkContext.Net, Model.Net)" data-content =" @GetBadgeTooltip(FrameworkContext.Net, Model.Net)" >
82- .NET @Model.Net.Framework.GetBadgeVersion()
83- </span >
84- </a >
102+ @DisplayFrameworkBadge(Model.Net , FrameworkContext .Net , itemIndex , eventName )
85103 }
86104 @if (Model .NetCore != null )
87105 {
88- <a href =@Url.FrameworksTab(Model.PackageId, Model.PackageVersion)
89- @if (itemIndex.HasValue)
90- {
91- @:data-track =" @eventName" data-track-value =" @itemIndex" data-click-source =" FrameworkBadge"
92- @:data-package-id =" @Model.PackageId" data-package-version =" @Model.PackageVersion"
93- @:data-badge-framework =" @Model.NetCore.Framework.GetShortFolderName()" data-badge-is-computed =" @Model.NetCore.IsComputed"
94- } >
95- <span class =@(Model.NetCore.IsComputed ? " framework-badge-computed" : " framework-badge-asset" ) aria-label =" @GetBadgeTooltip(FrameworkContext.NetCore, Model.NetCore)" data-content =" @GetBadgeTooltip(FrameworkContext.NetCore, Model.NetCore)" >
96- @if (Model .NetCore .Framework .GetBadgeVersion ().IsEmpty ())
97- {
98- @: .NET Core
99- }
100- else
101- {
102- @: .NET Core @Model.NetCore.Framework.GetBadgeVersion()
103- }
104- </span >
105- </a >
106+ @DisplayFrameworkBadge(Model.NetCore , FrameworkContext .NetCore , itemIndex , eventName )
106107 }
107108 @if (Model .NetStandard != null )
108109 {
109- <a href =@Url.FrameworksTab(Model.PackageId, Model.PackageVersion)
110- @if (itemIndex.HasValue)
111- {
112- @:data-track =" @eventName" data-track-value =" @itemIndex" data-click-source =" FrameworkBadge"
113- @:data-package-id =" @Model.PackageId" data-package-version =" @Model.PackageVersion"
114- @:data-badge-framework =" @Model.NetStandard.Framework.GetShortFolderName()" data-badge-is-computed =" @Model.NetStandard.IsComputed"
115- } >
116- <span class =@(Model.NetStandard.IsComputed ? " framework-badge-computed" : " framework-badge-asset" ) aria-label =" @GetBadgeTooltip(FrameworkContext.NetStandard, Model.NetStandard)" data-content =" @GetBadgeTooltip(FrameworkContext.NetStandard, Model.NetStandard)" >
117- @if (Model .NetStandard .Framework .GetBadgeVersion ().IsEmpty ())
118- {
119- @: .NET Standard
120- }
121- else
122- {
123- @: .NET Standard @Model.NetStandard.Framework.GetBadgeVersion()
124- }
125- </span >
126- </a >
110+ @DisplayFrameworkBadge(Model.NetStandard , FrameworkContext .NetStandard , itemIndex , eventName )
127111 }
128112 @if (Model .NetFramework != null )
129113 {
130- <a href =@Url.FrameworksTab(Model.PackageId, Model.PackageVersion)
131- @if (itemIndex.HasValue)
132- {
133- @:data-track =" @eventName" data-track-value =" @itemIndex" data-click-source =" FrameworkBadge"
134- @:data-package-id =" @Model.PackageId" data-package-version =" @Model.PackageVersion"
135- @:data-badge-framework =" @Model.NetFramework.Framework.GetShortFolderName()" data-badge-is-computed =" @Model.NetFramework.IsComputed"
136- } >
137- <span class =@(Model.NetFramework.IsComputed ? " framework-badge-computed" : " framework-badge-asset" ) aria-label =" @GetBadgeTooltip(FrameworkContext.NetFramework, Model.NetFramework)" data-content =" @GetBadgeTooltip(FrameworkContext.NetFramework, Model.NetFramework)" >
138- @if (Model .NetFramework .Framework .GetBadgeVersion ().IsEmpty ())
139- {
140- @: .NET Framework
141- }
142- else
143- {
144- @: .NET Framework @Model.NetFramework.Framework.GetBadgeVersion()
145- }
146- </span >
147- </a >
114+ @DisplayFrameworkBadge(Model.NetFramework , FrameworkContext .NetFramework , itemIndex , eventName )
148115 }
149116</div >
0 commit comments