diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index 2289781a..d651f706 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -663,8 +663,8 @@ namespace TIAM.Database.DataLayers.Admins #region Logs - public Task> GetLogItemsAsync(int takeCount = 500) => SessionAsync(ctx => ctx.LogItems.Take(takeCount).ToList()); - public Task> GetLogItemsByFilterAsync(CriteriaOperator criteriaOperator, int takeCount = 500) => SessionAsync(ctx => (ctx.LogItems.AppendWhere(new CriteriaToExpressionConverter(), criteriaOperator).Take(takeCount) as IQueryable)!.ToList()); + public Task> GetLogItemsAsync(int takeCount, DateTime utcFromDate, DateTime utcToDate) => SessionAsync(ctx => ctx.LogItems.Where(x => x.TimeStampUtc.Date >= utcFromDate.Date && x.TimeStampUtc.Date <= utcToDate.Date).Take(takeCount).ToList()); + public Task> GetLogItemsByFilterAsync(CriteriaOperator criteriaOperator, int takeCount, DateTime utcFromDate, DateTime utcToDate) => SessionAsync(ctx => (ctx.LogItems.Where(x => x.TimeStampUtc.Date >= utcFromDate.Date && x.TimeStampUtc.Date <= utcToDate.Date).AppendWhere(new CriteriaToExpressionConverter(), criteriaOperator).Take(takeCount) as IQueryable)!.ToList()); #endregion } diff --git a/TIAMSharedUI/Pages/User/ServiceProvider.razor b/TIAMSharedUI/Pages/User/ServiceProvider.razor index a63e8369..4e145205 100644 --- a/TIAMSharedUI/Pages/User/ServiceProvider.razor +++ b/TIAMSharedUI/Pages/User/ServiceProvider.razor @@ -29,7 +29,7 @@
LogWriters @@ -27,6 +29,7 @@ @* VirtualScrollingEnabled="true" *@ @($"{a.CategoryName}->{a.CallerName}")
-
@($"{a.Text}")

+

@($"{a.Text}")

Exception:
-
@a.Exception
+

@a.Exception

-
- -
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -73,6 +120,13 @@ [Parameter] public GridDetailExpandButtonDisplayMode DetailExpandButtonDisplayMode { get; set; } = GridDetailExpandButtonDisplayMode.Never; private LogViewerGrid _logViewerGrid; + + private static DateTime _fromDate = DateTime.Today.AddDays(-2); + private static DateTime _toDate = DateTime.Today; + + private static int _takeCount = 250; + private object[] _contextParams = new object[3] { _takeCount, _fromDate, _toDate }; + private LoggerClient _logger; private static List _selectedLogLevels = [LogLevel.Error, LogLevel.Warning, LogLevel.Suggest]; private static string _filterText = GetFilterText(_selectedLogLevels); @@ -104,6 +158,39 @@ _logViewerGrid.SetFieldFilterCriteria(nameof(LogLevel), filterCriteria); } + private async Task OnValueChangedTakeCount(int value) + { + if (_takeCount == value) return; + + _takeCount = value; + _contextParams[0] = _takeCount; + await _logViewerGrid.LoadDataSourceAsync(); + } + + private async Task OnValueChangedStartDate(DateTime value) + { + if (_fromDate == value) return; + + _fromDate = value; + if (_fromDate.Date > DateTime.Today.Date) _fromDate = DateTime.Today; + + _contextParams[1] = _fromDate; + + if (_fromDate.Date > _toDate.Date) return; + await _logViewerGrid.LoadDataSourceAsync(); + } + + private async Task OnValueChangedEndDate(DateTime value) + { + if (_toDate == value) return; + + _toDate = value; + _contextParams[2] = _toDate; + + if (_fromDate.Date > _toDate.Date) return; + await _logViewerGrid.LoadDataSourceAsync(); + } + void Grid_CustomizeElement(GridCustomizeElementEventArgs e) { if (e.ElementType != GridElementType.DataRow) return; diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ServiceProviderGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/ServiceProviderGridComponent.razor index cca7bb45..dc432bbd 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ServiceProviderGridComponent.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ServiceProviderGridComponent.razor @@ -18,7 +18,7 @@ > GetAllLogItems(string? criteriaOperatorText) //(int takeCount, string filterText) + public async Task> GetAllLogItems(int takeCount, DateTime fromDate, DateTime toDate, string? criteriaOperatorText) //(int takeCount, string filterText) { - //public Task> GetTransfersByFilterAsync(CriteriaOperator criteriaOperator) => SessionAsync(ctx => (ctx.GetTransfers().AppendWhere(new CriteriaToExpressionConverter(), criteriaOperator) as IQueryable)!.ToList()); + logger.Debug($"GetAllLogItems; takeCount: {takeCount}; fromDate: {fromDate}; toDate: {toDate}; criteriaOperatorText: {criteriaOperatorText}"); List logItemList; - if (criteriaOperatorText.IsNullOrWhiteSpace()) logItemList = await adminDal.GetLogItemsAsync(1000); - else logItemList = await adminDal.GetLogItemsByFilterAsync(CriteriaOperator.Parse(criteriaOperatorText),1000); + if (criteriaOperatorText.IsNullOrWhiteSpace()) logItemList = await adminDal.GetLogItemsAsync(takeCount, fromDate, toDate); + else logItemList = await adminDal.GetLogItemsByFilterAsync(CriteriaOperator.Parse(criteriaOperatorText), takeCount, fromDate, toDate); var resultList = new List(logItemList.Count); //logItemList[0].ToModelDto(); diff --git a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs index 020d3e7b..e5ff3710 100644 --- a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs +++ b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs @@ -162,7 +162,7 @@ public class DevAdminSignalRHub : Hub, IAcSignalRHubServe paramValues = new object[methodInfoModel.ParamInfos.Length]; var firstParamType = methodInfoModel.ParamInfos[0].ParameterType; - if (methodInfoModel.ParamInfos.Length > 1 || firstParamType == typeof(string) || firstParamType.IsEnum || firstParamType.IsValueType) + if (methodInfoModel.ParamInfos.Length > 1 || firstParamType == typeof(string) || firstParamType.IsEnum || firstParamType.IsValueType || firstParamType == typeof(DateTime)) { var msg = message!.MessagePackTo>(); diff --git a/TIAMWebApp/Shared/Utility/SignalRDataSource.cs b/TIAMWebApp/Shared/Utility/SignalRDataSource.cs index 3a2eb0fc..b3a5e755 100644 --- a/TIAMWebApp/Shared/Utility/SignalRDataSource.cs +++ b/TIAMWebApp/Shared/Utility/SignalRDataSource.cs @@ -17,6 +17,6 @@ namespace TIAMWebApp.Shared.Application.Utility { [Serializable] [DebuggerDisplay("Count = {Count}")] - public class SignalRDataSource(AcSignalRClientBase signalRClient, SignalRCrudTags signalRCrudTags, params Guid[]? contextIds) + public class SignalRDataSource(AcSignalRClientBase signalRClient, SignalRCrudTags signalRCrudTags, params object[]? contextIds) : AcSignalRDataSource(signalRClient, signalRCrudTags, contextIds) where T : class, IId; }