public IActionResult AuditLogTablePartialView(string name             = "", string type = "", string message = "",
                                                      int page                = 1,
                                                      int pageSize            = 20, FilterByDate filterOption = FilterByDate.All, string from = null, string to = null,
                                                      SortByColumn sortOption = SortByColumn.CreationDate, bool descending = true)
        {
            ViewBag.FilterOption = filterOption;
            ViewBag.FromDate     = from;
            ViewBag.ToDate       = to;
            ViewBag.SortOption   = sortOption;
            ViewBag.IdDescending = descending;
            ViewBag.Name         = name;
            ViewBag.Type         = type;
            ViewBag.Message      = message;

            var auditLogs = getAllAuditLogFactory.Create().Invoke();

            auditLogs = FilterLogs(name, type, message, auditLogs);
            if (filterOption != FilterByDate.All)
            {
                auditLogs = FilterByDateAuditLogs(auditLogs, filterOption, from, to);
            }

            ViewBag.TotalRows   = auditLogs.Count();
            ViewBag.UsersCount  = auditLogs.Count() / pageSize;
            ViewBag.Page        = page;
            ViewBag.RowsPerPage = pageSize;

            auditLogs = SortAuditLogs(auditLogs, sortOption, descending).Skip(pageSize * (page - 1)).Take(pageSize);

            return(PartialView("Partials/AuditLogTable", auditLogs));
        }
        public IOrderedEnumerable <ProductEntity> Sort(SortByColumn sortBy, Func <ProductEntity, object> sort)
        {
            if ((int)sortBy % 2 == 0)
            {
                return(_dbContext.ProductSet.OrderBy(sort));
            }

            return(_dbContext.ProductSet.OrderByDescending(sort));
        }
Пример #3
0
        /// <summary>
        /// Sort ascending clicked.
        /// </summary>
        void sortAscendingDescending_Click(object sender, EventArgs e)
        {
            bool ascending = sender == this._mnuSortAscending;

            if (this._sortOrder != null && this._sortOrder._col == this._clickedColumn && this._sortOrder._ascending == ascending)
            {
                this._sortOrder = null;
            }
            else
            {
                this._sortOrder = new SortByColumn(this._clickedColumn, ascending);
            }

            this.Rebuild(EListInvalids.Sorted);
        }
        public static IEnumerable <Student> SearchByRequest(IEnumerable <Student> students, int page, int perPage, SortByColumn sortBy, Func <Student, object> sort)
        {
            if ((int)sortBy % 2 == 0)
            {
                return(students.OrderBy(sort)
                       .Skip(page * perPage)
                       .Take(perPage).ToList());
            }

            return(students.OrderByDescending(sort)
                   .Skip(page * perPage)
                   .Take(perPage).ToList());
        }
        private IEnumerable <AuditLogModel> SortAuditLogs(IEnumerable <AuditLogModel> auditLogs, SortByColumn sortOption,
                                                          bool descending)
        {
            switch (sortOption)
            {
            case SortByColumn.Name:
                return(descending
                        ? auditLogs.OrderByDescending(m => m.UserName)
                        : auditLogs.OrderBy(m => m.UserName));

            case SortByColumn.CreationDate:
                return(descending
                        ? auditLogs.OrderByDescending(m => m.CreationDate)
                        : auditLogs.OrderBy(m => m.CreationDate));

            case SortByColumn.EventMessage:
                return(descending
                        ? auditLogs.OrderByDescending(m => m.EventMessage)
                        : auditLogs.OrderBy(m => m.EventMessage));

            case SortByColumn.EventType:
                return(descending
                        ? auditLogs.OrderByDescending(m => m.EventType)
                        : auditLogs.OrderBy(m => m.EventType));

            default:
                return(null);
            }
        }