public IHttpActionResult Post(FilterCarouselModel request) { var query = db.Carousel.Where(p => !p.IsDeleted); //TODO: all!! var totalCount = query.Count(); //advance search //bool isconvertible = false; //int myType = 0; //isconvertible = int.TryParse(request.Type, out myType); /* * query = query.Where(p => (request.Type == null || p.Category.Name.Contains(request.Type)) * && (request.Author == null || p.Author.Contains(request.Author)) * && (request.Title == null || p.Title.Contains(request.Title)) * && (request.ISBN == null || p.ISBN.Contains(request.ISBN)) * ); */ query = query.Where(p => (request.Title == null || p.Title.Contains(request.Title)) && (request.Description == null || p.Description.Contains(request.Description)) ); //quick search if (!string.IsNullOrEmpty(request.search.value)) { var value = request.search.value.Trim(); query = query.Where(p => p.Title.Contains(value) || p.Description.Contains(value) ); } var filteredCount = query.Count(); //order if (request.order != null) { string sortBy = request.columns[request.order[0].column].data; bool sortAscending = request.order[0].dir.ToLower() == "asc"; switch (sortBy) { case "Title": if (sortAscending) { query = query.OrderBy(o => o.Title); } else { query = query.OrderByDescending(o => o.Title); } break; case "Description": if (sortAscending) { query = query.OrderBy(o => o.Description); } else { query = query.OrderByDescending(o => o.Description); } break; default: query = query.OrderBy(o => o.Id).OrderBy(o => o.Title); break; } } else { query = query.OrderBy(o => o.Id).OrderBy(o => o.Title); } var data = query.Skip(request.start).Take(request.length) .Select(s => new CreateCarouselModel { Id = s.Id, Title = s.Title, Description = s.Description, Sequence = s.Sequence }).ToList(); foreach (var d in data) { var crsimages = db.CarouselImages.Where(i => i.CarouselID == d.Id).Select(s => new CarouselImagesModel { ID = s.ID, CarouselID = s.CarouselID, CoverPicture = s.CoverPicture }).FirstOrDefault(); if (crsimages != null) { if ((crsimages.CoverPicture != null) && (crsimages.CoverPicture != "")) { d.CarouselImage = crsimages.CoverPicture.Substring(crsimages.CoverPicture.LastIndexOf('\\') + 1); } } } return(Ok(new DataTableResponse { draw = request.draw, recordsTotal = totalCount, recordsFiltered = filteredCount, data = data.ToArray() })); }
public async Task <ActionResult> List(FilterCarouselModel filter) { var response = await WepApiMethod.SendApiAsync <DataTableResponse>(HttpVerbs.Post, $"Carousels/Carousel/GetAll", filter); return(Content(JsonConvert.SerializeObject(response.Data), "application/json")); }