@@ -14,53 +14,58 @@ public class LogsController : Controller
1414 {
1515 private static readonly string Scripts ;
1616 private static readonly string Styles ;
17- private static readonly IEnumerable < SelectListItem > SelectListItems ;
17+ private static readonly IEnumerable < SelectListItem > LogCountSelectListItems ;
18+ private static readonly IEnumerable < SelectListItem > LogLevelSelectListItems ;
1819 private readonly IDataProvider _dataProvider ;
1920
2021 static LogsController ( )
2122 {
2223 Styles = SetResource ( "Serilog.Ui.Web.wwwroot.css.main.css" ) ;
2324 Scripts = SetResource ( "Serilog.Ui.Web.wwwroot.js.main.js" ) ;
24- SelectListItems = new List < SelectListItem >
25+ LogCountSelectListItems = new List < SelectListItem >
2526 {
2627 new SelectListItem { Text = "10" , Value = "10" , Selected = true } ,
2728 new SelectListItem { Text = "25" , Value = "25" } ,
2829 new SelectListItem { Text = "50" , Value = "50" } ,
2930 new SelectListItem { Text = "100" , Value = "100" }
3031 } ;
32+ LogLevelSelectListItems = new List < SelectListItem >
33+ {
34+ new SelectListItem { Text = "---" , Value = "" , Selected = true } ,
35+ new SelectListItem { Text = "Verbose" , Value = "Verbose" } ,
36+ new SelectListItem { Text = "Debug" , Value = "Debug" } ,
37+ new SelectListItem { Text = "Information" , Value = "Information" } ,
38+ new SelectListItem { Text = "Warning" , Value = "Warning" } ,
39+ new SelectListItem { Text = "Error" , Value = "Error" }
40+ } ;
3141 }
3242
3343 public LogsController ( IDataProvider dataProvider )
3444 {
3545 _dataProvider = dataProvider ;
3646 }
3747
38- public async Task < IActionResult > Index ( int page = 1 , int count = 10 )
48+ public async Task < IActionResult > Index ( int page = 1 , int count = 10 , string level = null )
3949 {
4050 if ( page < 1 )
4151 page = 1 ;
4252
4353 if ( count > 100 )
4454 count = 100 ;
4555
46- if ( SelectListItems . First ( i => i . Selected ) . Value != count . ToString ( ) )
47- {
48- SelectListItems . First ( i => i . Selected ) . Selected = false ;
49- var x = SelectListItems . FirstOrDefault ( i => i . Value == count . ToString ( ) ) ;
50- if ( x != null )
51- x . Selected = true ;
52- else
53- SelectListItems . First ( ) . Selected = true ;
54- } ;
56+ SetLogCountSelectListItem ( count ) ;
57+
58+ SetLogLevelSelectListItem ( level ) ;
5559
56- var ( logs , logCount ) = await _dataProvider . FetchDataAsync ( page , count ) ;
60+ var ( logs , logCount ) = await _dataProvider . FetchDataAsync ( page , count , level ) ;
5761 var viewModel = new LogViewModel
5862 {
5963 LogCount = logCount ,
6064 Logs = logs ,
6165 Page = page ,
6266 Count = count ,
63- CountSelectListItems = SelectListItems
67+ LogCountSelectListItems = LogCountSelectListItems ,
68+ LogLevelSelectListItems = LogLevelSelectListItems
6469 } ;
6570
6671 ViewData [ "Styles" ] = Styles ;
@@ -69,6 +74,36 @@ public async Task<IActionResult> Index(int page = 1, int count = 10)
6974 return View ( viewModel ) ;
7075 }
7176
77+ private static void SetLogLevelSelectListItem ( string level )
78+ {
79+ if ( LogLevelSelectListItems . First ( i => i . Selected ) . Value != level )
80+ {
81+ LogLevelSelectListItems . First ( i => i . Selected ) . Selected = false ;
82+ var x = LogLevelSelectListItems . FirstOrDefault ( i => i . Value == level ) ;
83+ if ( x != null )
84+ x . Selected = true ;
85+ else
86+ LogLevelSelectListItems . First ( ) . Selected = true ;
87+ }
88+
89+ ;
90+ }
91+
92+ private static void SetLogCountSelectListItem ( int count )
93+ {
94+ if ( LogCountSelectListItems . First ( i => i . Selected ) . Value != count . ToString ( ) )
95+ {
96+ LogCountSelectListItems . First ( i => i . Selected ) . Selected = false ;
97+ var x = LogCountSelectListItems . FirstOrDefault ( i => i . Value == count . ToString ( ) ) ;
98+ if ( x != null )
99+ x . Selected = true ;
100+ else
101+ LogCountSelectListItems . First ( ) . Selected = true ;
102+ }
103+
104+ ;
105+ }
106+
72107 private static string SetResource ( string resourceName )
73108 {
74109 var resourceStream = typeof ( LogsController ) . Assembly . GetManifestResourceStream ( resourceName ) ;
0 commit comments