示例#1
0
        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);
            }
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }