예제 #1
0
        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));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }