Пример #1
0
        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()
            }));
        }
Пример #2
0
        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"));
        }