public IHttpActionResult Post(FilterEventExternalExhibitorModel request)
        {
            var query = db.EventExternalExhibitor.Where(u => u.Display);

            var totalCount = query.Count();

            //advance search
            query = query.Where(s => (request.Name == null || s.Name.Contains(request.Name)) &&
                                (request.PhoneNo == null || s.PhoneNo == (request.PhoneNo)) &&
                                (request.Email == null || s.Email.Contains(request.Email))
                                );

            //quick search
            if (!string.IsNullOrEmpty(request.search.value))
            {
                var value = request.search.value.Trim();

                query = query.Where(p => p.Name.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 "Name":

                    if (sortAscending)
                    {
                        query = query.OrderBy(o => o.Name);
                    }
                    else
                    {
                        query = query.OrderByDescending(o => o.Name);
                    }

                    break;

                case "PhoneNo":

                    if (sortAscending)
                    {
                        query = query.OrderBy(o => o.PhoneNo);
                    }
                    else
                    {
                        query = query.OrderByDescending(o => o.PhoneNo);
                    }

                    break;

                case "Email":

                    if (sortAscending)
                    {
                        query = query.OrderBy(o => o.Email);
                    }
                    else
                    {
                        query = query.OrderByDescending(o => o.Email);
                    }

                    break;

                default:
                    query = query.OrderByDescending(o => o.Name);
                    break;
                }
            }
            else
            {
                query = query.OrderByDescending(o => o.Name);
            }


            var data = query.Skip(request.start).Take(request.length)
                       .Select(i => new EventExternalExhibitorModel
            {
                Id      = i.Id,
                Name    = i.Name,
                Email   = i.Email,
                PhoneNo = i.PhoneNo,
                Remark  = i.Remark,
            }).ToList();

            return(Ok(new DataTableResponse
            {
                draw = request.draw,
                recordsTotal = totalCount,
                recordsFiltered = filteredCount,
                data = data.ToArray()
            }));
        }
        public async Task <ActionResult> List(FilterEventExternalExhibitorModel filter)
        {
            var response = await WepApiMethod.SendApiAsync <DataTableResponse>(HttpVerbs.Post, $"eEvent/EventExternalExhibitor/GetExternalExhibitorList", filter);

            return(Content(JsonConvert.SerializeObject(response.Data), "application/json"));
        }