public PagedResults <FileView> GetFiles(PagedRequest request = null) { var query = _database.Files.Where(x => !x.IsDeleted); request = request ?? new PagedRequest(); request.Cleanup(); if (!string.IsNullOrWhiteSpace(request.Filter)) { query = request.FilterValues?.Any() == true ? query.Where(request.Filter, request.FilterValues) : query.Where(request.Filter); } query = query.OrderBy(string.IsNullOrWhiteSpace(request.Order) ? "Name" : request.Order); return(GetPagedResults(query, request, x => new FileView { Id = x.Id, ModifiedOn = x.ModifiedOn, Name = x.Name, NameForLink = PageView.ConvertTitleForLink(x.Name), Size = x.Size / 1024 + " kb", Type = x.Type })); }
public PagedResults <TagView> GetTags(PagedRequest request = null) { request = request ?? new PagedRequest(); request.Cleanup(); var query = GetCurrentPagesQuery() .Select(x => new { x.Title, x.Tags }) .ToList() .SelectMany(x => x.Tags.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) .GroupBy(x => x) .AsQueryable(); query = query.OrderBy(string.IsNullOrWhiteSpace(request.Order) ? "Key" : request.Order); return(GetPagedResults(query, request, x => TagView.Create(x.Key, x.Count()))); }
public PagedResults <PageView> GetPages(PagedRequest request = null) { var query = GetCurrentPagesQuery(x => x.CreatedBy); request = request ?? new PagedRequest(); request.Cleanup(); if (!string.IsNullOrWhiteSpace(request.Filter)) { query = request.FilterValues?.Any() == true ? query.Where(request.Filter, request.FilterValues.ToArray()) : query.Where(request.Filter); } query = query.OrderBy(string.IsNullOrWhiteSpace(request.Order) ? "Title" : request.Order); return(GetPagedResults(query, request, x => x.ToView(Converter, request.Including.Contains("details", StringComparer.OrdinalIgnoreCase)))); }
public PagedResults <UserView> GetUsers(PagedRequest request = null) { if (_user == null || !_user.InRole("Administrator")) { throw new UnauthorizedAccessException("You do not have the permission to be access users."); } var query = _database.Users.OrderBy(x => x.DisplayName).AsQueryable(); request = request ?? new PagedRequest(); request.Cleanup(); if (!string.IsNullOrWhiteSpace(request.Filter)) { query = request.FilterValues?.Any() == true ? query.Where(request.Filter, request.FilterValues) : query.Where(request.Filter); } query = query.OrderBy(string.IsNullOrWhiteSpace(request.Order) ? "UserName" : request.Order); return(GetPagedResults(query, request, x => x.ToView())); }