// GET: eEventSpeaker/EventSpeaker public async Task <ActionResult> List() { var filter = new FilterEventSpeakerModel(); filter.UserIds = new SelectList(await GetUsers(), "Id", "Name", 0); return(View(new ListEventSpeakerModel { Filter = filter })); }
public async Task <ActionResult> List(FilterEventSpeakerModel filter) { var response = await WepApiMethod.SendApiAsync <DataTableResponse>(HttpVerbs.Post, $"eEvent/EventSpeaker/GetSpeakerList", filter); return(Content(JsonConvert.SerializeObject(response.Data), "application/json")); }
public IHttpActionResult Post(FilterEventSpeakerModel request) { var query = db.EventSpeaker.Where(u => u.Display); var totalCount = query.Count(); //advance search query = query.Where(s => (request.UserId == null || s.UserId == request.UserId) && (request.SpeakerType == null || s.SpeakerType == request.SpeakerType) && (request.Email == null || s.User.Email.Contains(request.Email)) ); //quick search if (!string.IsNullOrEmpty(request.search.value)) { var value = request.search.value.Trim(); query = query.Where(p => p.User.Name.Contains(value) || p.SpeakerType.GetDisplayName().Contains(value) || p.User.Email.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 "UserId": if (sortAscending) { query = query.OrderBy(o => o.User.Name); } else { query = query.OrderByDescending(o => o.User.Name); } break; case "SpeakerType": if (sortAscending) { query = query.OrderBy(o => o.SpeakerType); } else { query = query.OrderByDescending(o => o.SpeakerType); } break; case "SpeakerStatus": if (sortAscending) { query = query.OrderBy(o => o.SpeakerStatus); } else { query = query.OrderByDescending(o => o.SpeakerStatus); } break; default: query = query.OrderByDescending(o => o.UserId); break; } } else { query = query.OrderByDescending(o => o.UserId); } var data = query.Skip(request.start).Take(request.length) .Select(i => new EventSpeakerModel { Id = i.Id, UserId = i.UserId, UserName = i.User.Name, SpeakerStatus = i.SpeakerStatus, SpeakerType = i.SpeakerType, }).ToList(); data.ForEach(s => s.SpeakerTypeDesc = s.SpeakerType.GetDisplayName()); data.ForEach(s => s.SpeakerStatusDesc = s.SpeakerStatus.GetDisplayName()); return(Ok(new DataTableResponse { draw = request.draw, recordsTotal = totalCount, recordsFiltered = filteredCount, data = data.ToArray() })); }