public DataTablesJsonResult(IDataTablesResponse response, string contentType, System.Text.Encoding contentEncoding, bool allowJsonThroughHttpGet) { Data = response; ContentEncoding = contentEncoding ?? System.Text.Encoding.UTF8; ContentType = String.Format(contentType ?? DefaultContentType, contentEncoding.WebName); AllowGet = allowJsonThroughHttpGet; }
public DataTablesJsonResult(IDataTablesResponse response, string contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior jsonRequestBehavior) { Data = response; ContentEncoding = contentEncoding ?? System.Text.Encoding.UTF8; ContentType = String.Format(contentType ?? DefaultContentType, ContentEncoding.WebName); JsonRequestBehavior = jsonRequestBehavior; }
// This test doesn't work, because the DataTables functionality requires a Http context //[Fact(DisplayName = "CreateResponse, request for an item that contains a 'b' should return a response with 1 item.")] public void CreateResponseRequestForItemThatContainsAbShouldReturnAResponseWith1Item() { // arrange var config = new MapperConfiguration(cfg => { cfg.CreateMap <TestModel, TestViewModel>(); }); IMapper mapper = new Mapper(config); var processor = new QueryablesProcessor(mapper); var testItemToBeFound = new TestModel() { IntProp = 1, StringProp = "abc" }; var testItemNotToBeFound = new TestModel() { IntProp = 2, StringProp = "cde" }; var testList = new List <TestModel>() { testItemToBeFound, testItemNotToBeFound }; Func <IQueryable <TestModel> > getTestItems = () => testList.AsQueryable(); var request = InitTestModelDataTablesRequest(); var search = new Mock <ISearch>(); search.Setup(srch => srch.IsRegex).Returns(false); search.Setup(srch => srch.Value).Returns("b"); request.Setup(req => req.Search).Returns(search.Object); // act IDataTablesResponse response = processor.CreateResponse <TestModel, TestViewModel>(request.Object, getTestItems); // assert Assert.Equal(2, response.TotalRecords); Assert.Equal(1, response.TotalRecordsFiltered); Assert.Single(response.Data as IEnumerable <TestModel>); }
public ActionResult GetAvailableUsers(IDataTablesRequest request) { IDataTablesResponse response = null; try { if (request == null) { throw new ArgumentNullException("request"); } var data = userRepository.GetAll().Where(usr => usr.IsVisible && usr.Id != User.Identity.GetUserId()); if (!string.IsNullOrEmpty(request.Search.Value)) { data = data.Where(item => item.FullName.Contains(request.Search.Value) || item.UserName.Contains(request.Search.Value) || item.Email.Contains(request.Search.Value)); } var orderings = request.Columns .Where(c => c.Sort != null) .OrderBy(c => c.Sort.Order) .Select(c => $"{c.Name} {c.Sort.Direction}") .DefaultIfEmpty($"{nameof(ApplicationUser.FullName)} asc") .Aggregate((current, next) => current + ", " + next); var orderedData = data.OrderBy(orderings); var dataPage = orderedData.Skip(request.Start).Take(request.Length).Select(usr => new { username = usr.UserName, fullname = usr.FullName, email = usr.Email }); response = DataTablesResponse.Create(request, data.Count(), orderedData.Count(), dataPage); } catch (Exception ex) { logger.Error(ex, "GetAvailableUsers"); } return(new DataTablesJsonResult(response ?? DataTablesResponse.Create(request, "No data available."), JsonRequestBehavior.AllowGet)); }
public ActionResult GetMyMessages(IDataTablesRequest request) { IDataTablesResponse response = null; try { if (request == null) { throw new ArgumentNullException("request"); } var d = messageRepository.GetMessagesByUserId(User.Identity.GetUserId()); var data = Mapper.Map <IEnumerable <MessageViewModel> >(d); if (!string.IsNullOrEmpty(request.Search.Value)) { data = data.Where(itm => itm.Sender.Contains(request.Search.Value) || itm.Sent.ToString().Contains(request.Search.Value)); } var orderings = request.Columns .Where(c => c.Sort != null) .OrderBy(c => c.Sort.Order) .Select(c => $"{c.Name} {c.Sort.Direction}") .DefaultIfEmpty($"{nameof(BaseMessage.Sent)} asc") .Aggregate((current, next) => current + ", " + next); var orderedData = data.OrderBy(orderings); var dataPage = orderedData.Skip(request.Start).Take(request.Length); response = DataTablesResponse.Create(request, data.Count(), orderedData.Count(), dataPage); } catch (Exception ex) { logger.Error(ex, "GetMyMessages"); } return(new DataTablesJsonResult(response ?? DataTablesResponse.Create(request, "No data available."), JsonRequestBehavior.AllowGet)); }
public DataTablesJsonResult(IDataTablesResponse response, bool allowJsonThroughHttpGet) : this(response, DefaultContentType, DefaultContentEncoding, allowJsonThroughHttpGet) { }
public DataTablesJsonResult(IDataTablesResponse response, JsonRequestBehavior jsonRequestBehavior) : this(response, DefaultContentType, DefaultContentEncoding, jsonRequestBehavior) { }