public ActionResult TableAjax(Models.jQueryDataTableParamModel param) { var result = new List <Models.BrowserTableModel>(); //var filteredresult = new List<Models.BrowserTableModel>(); IEnumerable <Models.BrowserTableModel> filteredresult; result = db.TrackSet.Select(a => new Models.BrowserTableModel() { id = a.Id, album = a.album, artist = a.artist, title = a.title, genre = a.genre }).ToList(); if (param.sSearch != null) { filteredresult = db.TrackSet.Where(a => a.album.Contains(param.sSearch) || a.artist.Contains(param.sSearch) || a.title.Contains(param.sSearch) || a.genre.Contains(param.sSearch)).Select(a => new Models.BrowserTableModel() { id = a.Id, album = a.album, artist = a.artist, title = a.title, genre = a.genre }).ToList(); } else { filteredresult = result; } var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]); Func <Models.BrowserTableModel, string> orderingFunction = (a => sortColumnIndex == 0 ? a.artist : sortColumnIndex == 1 ? a.title : sortColumnIndex == 2 ? a.album : a.genre); var sortDirection = Request["sSortDir_0"]; if (sortDirection == "asc") { filteredresult = filteredresult.OrderBy(orderingFunction); } else { filteredresult = filteredresult.OrderByDescending(orderingFunction); } var displayedresult = filteredresult.Skip(param.iDisplayStart).Take(param.iDisplayLength); List <string[]> resultarray = new List <string[]>(); string controlcolumn = ""; if (displayedresult != null) { foreach (var item in displayedresult) { if (User.Identity.IsAuthenticated) { var suppstatus = db.SupplementalPlaylistSet.Where(b => b.TrackId.Equals(item.id)).Select(b => b.Owner).ToList(); var corestatus = db.PlaylistView.Where(c => c.Id.Equals(item.id)).Select(c => c.owner).ToList(); if (suppstatus.Count() > 0) { if (suppstatus[0].ToString() == User.Identity.Name) { // Delete button controlcolumn = "<button id=\"" + item.id + "\" class=\"btn btn-danger removeButton\">Remove</button>"; } else { // Already added button controlcolumn = "<button id=\"" + item.id + "\" class=\"btn btn-default alreadyButton\">Already Added</button>"; } } else { // Add button controlcolumn = "<button id=\"" + item.id + "\"class=\"btn btn-primary addButton\">Add</button>"; } if (corestatus.Count() > 0) { if (corestatus[0].ToString() == User.Identity.Name) { controlcolumn += "<button id=\"core" + item.id + "\" class=\"btn btn-danger removeCoreButton\">Remove from core</button>"; } else { controlcolumn += "<button id=\"core" + item.id + "\" class=\"btn btn-danger removeCoreButton\">Already in core</button>"; } } else { controlcolumn += "<button id=\"core" + item.id + "\"class=\"btn btn-primary addCoreButton\">Add to core</button>"; } } resultarray.Add(new string[] { item.artist, item.title, item.album, item.genre, controlcolumn }); } } return(Json(new { sEcho = param.sEcho, iTotalRecords = result.Count(), iTotalDisplayRecords = filteredresult.Count(), aaData = resultarray }, JsonRequestBehavior.AllowGet)); }
public JsonResult IndexDataTable(Models.jQueryDataTableParamModel model) { var data = Repo.HomeCareEntitledPeriods.Select.Include(f => f.User).Where(f => f.ClientId == model.ClientId); bool sortDesc = HttpContext.Request["sSortDir_0"] == "desc"; switch (HttpContext.Request["iSortCol_0"]) { case "0": if (sortDesc) { data = data.OrderByDescending(f => f.StartDate); } else { data = data.OrderBy(f => f.StartDate); } break; case "1": if (sortDesc) { data = data.OrderByDescending(f => f.EndDate); } else { data = data.OrderBy(f => f.EndDate); } break; case "2": if (sortDesc) { data = data.OrderByDescending(f => f.User.UserName); } else { data = data.OrderBy(f => f.User.UserName); } break; case "3": if (sortDesc) { data = data.OrderByDescending(f => f.UpdatedAt); } else { data = data.OrderBy(f => f.UpdatedAt); } break; default: data = data.OrderByDescending(f => f.StartDate); break; } var result = data.Skip(model.iDisplayStart).Take(model.iDisplayLength); return(this.MyJsonResult(new { sEcho = Request["sEcho"], iTotalRecords = data.Count(), iTotalDisplayRecords = data.Count(), aaData = result.AsEnumerable().Select(f => new { Id = f.Id, StartDate = f.StartDate.ToShortDateString(), //The end date is inclusive - substract 1 for the display value EndDate = f.EndDate.HasValue ? f.EndDate.Value.AddDays(-1).ToShortDateString() : "", UpdatedAt = f.UpdatedAt.HasValue ? f.UpdatedAt.Value.ToShortDateString() : "", UpdatedBy = f.User == null ? "" : f.User.UserName }) }, JsonRequestBehavior.AllowGet)); }
public ActionResult GetQueuedTable(Models.jQueryDataTableParamModel param) { var result = db.QueueHistory.Select(a => new Models.QueueTableModel() { id = a.Id, addtime = a.addtime, artist = a.artist, title = a.title, source = a.source }).ToList(); IEnumerable <Models.QueueTableModel> filteredresult; if (param.sSearch != null) { filteredresult = db.QueueHistory.Where(a => a.Id.ToString().Contains(param.sSearch) || a.addtime.ToString().Contains(param.sSearch) || a.artist.Contains(param.sSearch) || a.title.Contains(param.sSearch) || a.source.Contains(param.sSearch)).Select(a => new Models.QueueTableModel() { id = a.Id, addtime = a.addtime, artist = a.artist, title = a.title, source = a.source }).ToList(); } else { filteredresult = result; } var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]); Func <Models.QueueTableModel, string> orderingFunction = (a => sortColumnIndex == 0 ? a.id.ToString() : sortColumnIndex == 1 ? a.addtime.ToString() : sortColumnIndex == 2 ? a.artist : sortColumnIndex == 3 ? a.title : a.source); var sortDirection = Request["sSortDir_0"]; if (sortDirection == "asc") { switch (sortColumnIndex) { case 0: filteredresult = filteredresult.OrderBy(a => a.id); break; case 1: filteredresult = filteredresult.OrderBy(a => a.addtime); break; default: filteredresult = filteredresult.OrderBy(orderingFunction); break; } } else { switch (sortColumnIndex) { case 0: filteredresult = filteredresult.OrderByDescending(a => a.id); break; case 1: filteredresult = filteredresult.OrderByDescending(a => a.addtime); break; default: filteredresult = filteredresult.OrderByDescending(orderingFunction); break; } } var displayedresult = filteredresult.Skip(param.iDisplayStart).Take(param.iDisplayLength); List <string[]> resultarray = new List <string[]>(); string controlcolumn = ""; if (displayedresult != null) { foreach (var item in displayedresult) { resultarray.Add(new string[] { item.id.ToString(), item.addtime.ToString(), item.artist, item.title, item.source, controlcolumn }); } } return(Json(new { sEcho = param.sEcho, iTotalRecords = result.Count(), iTotalDisplayRecords = filteredresult.Count(), aaData = resultarray }, JsonRequestBehavior.AllowGet)); }