33using System ;
44using System . Collections . Generic ;
55using System . Linq ;
6+ using System . Text ;
67
78namespace Simplify . Web . Modules . Data . Html ;
89
@@ -21,12 +22,14 @@ public sealed class ListsGenerator(IStringTable stringTable) : IListsGenerator
2122 /// <param name="displayNotSelectedMessage">Display not selected message in list or not.</param>
2223 public string GenerateNumbersList ( int length , int ? selectedNumber = 0 , int startNumber = 0 , bool displayNotSelectedMessage = false )
2324 {
24- var data = displayNotSelectedMessage ? GenerateDefaultListItem ( selectedNumber == null ) : "" ;
25+ var builder = new StringBuilder ( ) ;
26+
27+ builder . Append ( displayNotSelectedMessage ? GenerateDefaultListItem ( selectedNumber == null ) : "" ) ;
2528
2629 for ( var i = startNumber ; i < startNumber + length ; i ++ )
27- data += $ "<option value='{ i } '{ ( i == selectedNumber ? " selected='selected'" : "" ) } >{ i } </option>";
30+ builder . Append ( $ "<option value='{ i } '{ ( i == selectedNumber ? " selected='selected'" : "" ) } >{ i } </option>") ;
2831
29- return data ;
32+ return builder . ToString ( ) ;
3033 }
3134
3235 /// <summary>
@@ -36,12 +39,14 @@ public string GenerateNumbersList(int length, int? selectedNumber = 0, int start
3639 /// <param name="displayNotSelectedMessage">Display not selected message in list or not.</param>
3740 public string GenerateHoursList ( int selectedHour = - 1 , bool displayNotSelectedMessage = false )
3841 {
39- var data = displayNotSelectedMessage ? GenerateDefaultListItem ( selectedHour == - 1 ) : "" ;
42+ var builder = new StringBuilder ( ) ;
43+
44+ builder . Append ( displayNotSelectedMessage ? GenerateDefaultListItem ( selectedHour == - 1 ) : "" ) ;
4045
4146 for ( var i = 0 ; i < 24 ; i ++ )
42- data += $ "<option value='{ i } '{ ( i == selectedHour ? " selected='selected'" : "" ) } >{ i : 00} </option>";
47+ builder . Append ( $ "<option value='{ i } '{ ( i == selectedHour ? " selected='selected'" : "" ) } >{ i : 00} </option>") ;
4348
44- return data ;
49+ return builder . ToString ( ) ;
4550 }
4651
4752 /// <summary>
@@ -51,12 +56,14 @@ public string GenerateHoursList(int selectedHour = -1, bool displayNotSelectedMe
5156 /// <param name="displayNotSelectedMessage">Display not selected message in list or not.</param>
5257 public string GenerateMinutesList ( int selectedMinute = - 1 , bool displayNotSelectedMessage = false )
5358 {
54- var data = displayNotSelectedMessage ? GenerateDefaultListItem ( selectedMinute == - 1 ) : "" ;
59+ var builder = new StringBuilder ( ) ;
60+
61+ builder . Append ( displayNotSelectedMessage ? GenerateDefaultListItem ( selectedMinute == - 1 ) : "" ) ;
5562
5663 for ( var i = 0 ; i < 60 ; i ++ )
57- data += $ "<option value='{ i } '{ ( i == selectedMinute ? " selected='selected'" : "" ) } >{ i : 00} </option>";
64+ builder . Append ( $ "<option value='{ i } '{ ( i == selectedMinute ? " selected='selected'" : "" ) } >{ i : 00} </option>") ;
5865
59- return data ;
66+ return builder . ToString ( ) ;
6067 }
6168
6269 /// <summary>
@@ -66,12 +73,14 @@ public string GenerateMinutesList(int selectedMinute = -1, bool displayNotSelect
6673 /// <param name="displayNotSelectedMessage">Display not selected message in list or not.</param>
6774 public string GenerateDaysList ( int selectedDay = - 1 , bool displayNotSelectedMessage = true )
6875 {
69- var data = displayNotSelectedMessage ? GenerateDefaultListItem ( selectedDay == - 1 ) : "" ;
76+ var builder = new StringBuilder ( ) ;
77+
78+ builder . Append ( displayNotSelectedMessage ? GenerateDefaultListItem ( selectedDay == - 1 ) : "" ) ;
7079
7180 for ( var i = 1 ; i < 32 ; i ++ )
72- data += $ "<option value='{ i } ' { ( i == selectedDay ? "selected='selected'" : "" ) } >{ i : 00} </option>";
81+ builder . Append ( $ "<option value='{ i } ' { ( i == selectedDay ? "selected='selected'" : "" ) } >{ i : 00} </option>") ;
7382
74- return data ;
83+ return builder . ToString ( ) ;
7584 }
7685
7786 /// <summary>
@@ -81,14 +90,16 @@ public string GenerateDaysList(int selectedDay = -1, bool displayNotSelectedMess
8190 /// <param name="displayNotSelectedMessage">Display not selected message in list or not.</param>
8291 public string GenerateMonthsList ( int selectedMonth = - 1 , bool displayNotSelectedMessage = true )
8392 {
84- var data = displayNotSelectedMessage ? GenerateDefaultListItem ( selectedMonth == - 1 ) : "" ;
93+ var builder = new StringBuilder ( ) ;
94+
95+ builder . Append ( displayNotSelectedMessage ? GenerateDefaultListItem ( selectedMonth == - 1 ) : "" ) ;
8596
8697 var month = Convert . ToDateTime ( "1/1/2010" ) ;
8798
8899 for ( var i = 0 ; i < 12 ; i ++ )
89- data += $ "<option value='{ i } ' { ( i == selectedMonth ? "selected='selected'" : "" ) } >{ month . AddMonths ( i ) : MMMM} </option>";
100+ builder . Append ( $ "<option value='{ i } ' { ( i == selectedMonth ? "selected='selected'" : "" ) } >{ month . AddMonths ( i ) : MMMM} </option>") ;
90101
91- return data ;
102+ return builder . ToString ( ) ;
92103 }
93104
94105 /// <summary>
@@ -98,14 +109,16 @@ public string GenerateMonthsList(int selectedMonth = -1, bool displayNotSelected
98109 /// <param name="displayNotSelectedMessage">Display not selected message in list or not.</param>
99110 public string GenerateMonthsListFrom1 ( int selectedMonth = - 1 , bool displayNotSelectedMessage = true )
100111 {
101- var data = displayNotSelectedMessage ? GenerateDefaultListItem ( selectedMonth == - 1 ) : "" ;
112+ var builder = new StringBuilder ( ) ;
113+
114+ builder . Append ( displayNotSelectedMessage ? GenerateDefaultListItem ( selectedMonth == - 1 ) : "" ) ;
102115
103116 var month = Convert . ToDateTime ( "1/1/2010" ) ;
104117
105118 for ( var i = 0 ; i < 12 ; i ++ )
106- data += $ "<option value='{ i + 1 } ' { ( i + 1 == selectedMonth ? "selected='selected'" : "" ) } >{ month . AddMonths ( i ) : MMMM} </option>";
119+ builder . Append ( $ "<option value='{ i + 1 } ' { ( i + 1 == selectedMonth ? "selected='selected'" : "" ) } >{ month . AddMonths ( i ) : MMMM} </option>") ;
107120
108- return data ;
121+ return builder . ToString ( ) ;
109122 }
110123
111124 /// <summary>
@@ -117,13 +130,15 @@ public string GenerateMonthsListFrom1(int selectedMonth = -1, bool displayNotSel
117130 /// <param name="currentYear">The current year.</param>
118131 public string GenerateYearsListToPast ( int numberOfYears , int selectedYear = - 1 , bool displayNotSelectedMessage = true , int ? currentYear = null )
119132 {
120- var data = displayNotSelectedMessage ? GenerateDefaultListItem ( selectedYear == - 1 ) : "" ;
133+ var builder = new StringBuilder ( ) ;
121134 var year = currentYear ?? DateTime . Now . Year ;
122135
136+ builder . Append ( displayNotSelectedMessage ? GenerateDefaultListItem ( selectedYear == - 1 ) : "" ) ;
137+
123138 for ( var i = year ; i >= year - numberOfYears ; i -- )
124- data += $ "<option value='{ i } ' { ( i == selectedYear ? "selected='selected'" : "" ) } >{ i } </option>";
139+ builder . Append ( $ "<option value='{ i } ' { ( i == selectedYear ? "selected='selected'" : "" ) } >{ i } </option>") ;
125140
126- return data ;
141+ return builder . ToString ( ) ;
127142 }
128143
129144 /// <summary>
@@ -133,13 +148,13 @@ public string GenerateYearsListToPast(int numberOfYears, int selectedYear = -1,
133148 /// <param name="currentYear">The current year.</param>
134149 public string GenerateYearsListToFuture ( int numberOfYears , int ? currentYear = null )
135150 {
136- var data = "" ;
151+ var builder = new StringBuilder ( ) ;
137152 var year = currentYear ?? DateTime . Now . Year ;
138153
139154 for ( var i = year ; i <= year + numberOfYears ; i ++ )
140- data += $ "<option value='{ i } '>{ i } </option>";
155+ builder . Append ( $ "<option value='{ i } '>{ i } </option>") ;
141156
142- return data ;
157+ return builder . ToString ( ) ;
143158 }
144159
145160 /// <summary>
@@ -169,7 +184,10 @@ public string GenerateList<T>(IList<T> items, Func<T, string> id, Func<T, string
169184 /// <typeparam name="T">Enum type.</typeparam>
170185 /// <param name="selectedItem">Selected enum item.</param>
171186 /// <param name="displayNotSelectedMessage">Display not selected message in list or not.</param>
187+ #pragma warning disable S1006 // Method overrides should not change parameter defaults
188+
172189 public string GenerateListFromEnum < T > ( T selectedItem = default , bool displayNotSelectedMessage = true )
190+ #pragma warning restore S1006 // Method overrides should not change parameter defaults
173191 where T : struct
174192 {
175193 var data = displayNotSelectedMessage ? GenerateDefaultListItem ( false ) : "" ;
0 commit comments