public IPagedList <LogEntity> SeachLog(LogsSearchSettings logsSearchSettings) { using (IUnitOfWork uow = _UnitFactory.GetUnit(this)) { uow.BeginTransaction(); IEnumerable <LogEntity> query = uow.Query <LogEntity>().Where(x => logsSearchSettings.Applications.Contains(x.ApplictionId)); if (!String.IsNullOrWhiteSpace(logsSearchSettings.SerchMessage)) { query = query.Where(p => (logsSearchSettings.SerchMessage != null && p.Message != null && p.Message.ToLower().Contains(logsSearchSettings.SerchMessage))); } if (logsSearchSettings.SortBy == SortDirection.ASC) { switch (logsSearchSettings.OrderBy) { case LogsFields.SourceDate: query = query.OrderBy(l => l.SourceDate); break; case LogsFields.Message: query = query.OrderBy(l => l.Message); break; case LogsFields.Level: query = query.OrderBy(l => l.Level); break; } } else { switch (logsSearchSettings.OrderBy) { case LogsFields.SourceDate: query = query.OrderByDescending(l => l.SourceDate); break; case LogsFields.Message: query = query.OrderByDescending(l => l.Message); break; case LogsFields.Level: query = query.OrderByDescending(l => l.Level); break; } } query = query.Skip((logsSearchSettings.PageNumber - 1) * logsSearchSettings.PageSize); query = query.Take(logsSearchSettings.PageSize); IPagedList <LogEntity> result = new StaticPagedList <LogEntity>(query, logsSearchSettings.PageNumber, logsSearchSettings.PageSize, 1000); return(result); } }
public ActionResult Index() { string username = Membership.GetUser().UserName; List <Guid> apps = UserHelper.GetAppsIdsForUser(username); LogsSearchSettings logSearch = new LogsSearchSettings() { Applications = apps, PageNumber = 1, PageSize = 10 }; IPagedList <LogEntity> lastestLog = RepositoryContext.Current.Logs.SeachLog(logSearch); DashboardModel dm = new DashboardModel(); dm.ErrorCount = RepositoryContext.Current.Logs.CountByLevel(StandardLogLevels.ERROR); dm.InfoCount = RepositoryContext.Current.Logs.CountByLevel(StandardLogLevels.ERROR); dm.LogCount = RepositoryContext.Current.Logs.CountByLevel(StandardLogLevels.ALL_LEVELS); dm.WarnCount = RepositoryContext.Current.Logs.CountByLevel(StandardLogLevels.WARNING); dm.LastTen = ConversionHelper.ConvertLogEntityToMessage(lastestLog.ToList()); dm.QueueLoad = LogQueue.Current.QueueLoad; dm.AppLastTen = new List <MessagesListModel>(); IPagedList <LogEntity> logOfCurrentApp; foreach (ApplicationEntity app in UserHelper.GetAppsForUser(username)) { logSearch = new LogsSearchSettings() { PageNumber = 1, PageSize = 10 }; logSearch.Applications.Add(app.IdApplication); logOfCurrentApp = RepositoryContext.Current.Logs.SeachLog(logSearch); MessagesListModel list = new MessagesListModel(); list.ApplicationName = app.ApplicationName; list.IdApplication = app.IdApplication; list.Messages = ConversionHelper.ConvertLogEntityToMessage(logOfCurrentApp.ToList()); dm.AppLastTen.Add(list); } return(View(dm)); }
public static IPagedList <LogEntity> GetLogs(Guid?applicationId, string sortOrder, string sortBy, string serchMessage, int pageSize, int pageNumber) { List <Guid> alloweApps = UserHelper.GetAppsIdsForUser(Membership.GetUser().UserName); if (applicationId.HasValue) { if (alloweApps.Contains(applicationId.Value)) { alloweApps.Clear(); alloweApps.Add(applicationId.Value); } } LogsSearchSettings settings = new LogsSearchSettings() { Applications = alloweApps, SerchMessage = serchMessage, PageNumber = pageNumber, PageSize = pageSize }; if (!string.IsNullOrEmpty(sortBy)) { switch (sortBy.ToLower()) { case "asc": settings.SortBy = Library.BLL.Enums.SortDirection.ASC; break; case "dsc": settings.SortBy = Library.BLL.Enums.SortDirection.DESC; break; } } if (!string.IsNullOrEmpty(sortOrder)) { switch (sortOrder.ToLower()) { case "date": settings.OrderBy = Library.BLL.Enums.LogsFields.SourceDate; break; case "level": settings.OrderBy = Library.BLL.Enums.LogsFields.Level; break; case "message": settings.OrderBy = Library.BLL.Enums.LogsFields.Message; break; } } return(RepositoryContext.Current.Logs.SeachLog(settings)); }