public IActionResult Index(HeaderSearchVM searchModel) { if (ModelState.IsValid) { return(View(_headerService.Search(HttpContext.User, searchModel))); } return(Redirect(this.Action <HomeController>(nameof(Index), new { headerCode = searchModel.HeaderCode, categoryCode = searchModel.CategoryCode, pageNumber = searchModel.PageNumber }))); }
public PostHeaderListVM Search(ClaimsPrincipal contextUser, HeaderSearchVM searchModel) { var user = _userService.GetUserWithRoles(contextUser); var model = new PostHeaderListVM(); var query = _headerRepository.Where(x => x.Title.Contains(searchModel.SearchText) && !user.BlockedUserIds.Contains(x.UserId), new List <string> { "Category", "Posts", "User" }); if (searchModel.StartDate.HasValue) { query = query.Where(x => x.CreateDate >= searchModel.StartDate.Value); } if (searchModel.EndDate.HasValue) { query = query.Where(x => x.CreateDate <= searchModel.EndDate.Value); } if (searchModel.InvertOrder) { query = query.OrderByDescending(x => x.Title); } else { query = query.OrderBy(x => x.Title); } if (!user.IsAdmin) { query = query.OrderByDescending(x => x.IsAdminOnly == false); } query.ToList().ForEach(x => { var header = new PostHeaderVM() { HeaderCode = x.IdCode, CategoryCode = x.Category.IdCode, ClickCount = x.ClickCount, HeaderTitle = x.Title, UserId = x.UserId, Username = x.User.UserName, HeaderDate = x.UpdateDate ?? x.CreateDate }; model.Headers.Add(header); }); return(model); }