public IActionResult GetLessonCommentList(int id, DataTableParametersViewData gridData) { UserSessionContext userContext = new UserSessionContext(this.HttpContext); int pageIndex = (gridData.iDisplayStart / gridData.iDisplayLength) + 1; pageIndex = pageIndex <= 0 ? 0 : pageIndex - 1; var pageSize = gridData.iDisplayLength; int totalCount; LessonBusiness lessonBusinessManager = new LessonBusiness(DbContext); var comments = lessonBusinessManager.GetLessonComments(id, userContext.CurrentUser, userContext.CurrentUser.RoleId == (int)Enumerations.Role.Administrator, out totalCount); if (comments == null) { return(Json(null)); } List <object> result = new List <object>(); foreach (var comment in comments) { Dictionary <string, string> commentData = new Dictionary <string, string>(); commentData.Add("Enabled", comment.Enabled.ToString()); commentData.Add("Id", comment.Id.ToString()); commentData.Add("Date", comment.CreateDate.ToDisplayDate()); commentData.Add("User", HttpUtility.HtmlEncode(comment.CreateUser)); commentData.Add("Type", comment.CommentType.Name + (comment.Enabled == true ? "" : " (Deleted)")); commentData.Add("Comment", HttpUtility.HtmlEncode(comment.Content)); //@Url.Action("Delete", "Lesson", new { id = Model.Id }, "http") string buttonHtml = userContext.CurrentUser.RoleId == (int)Enumerations.Role.Administrator ? string.Format("<div><a href='#' class='{0}delete-comment float-left' data-url='{1}' data-commentType='{2}'><span class='float-left web-sprite sprite-{3}'></span> {0}Delete</a><div class='clear'></div></div>", comment.Enabled == true ? "" : "Un-", Url.Action((comment.Enabled == true ? "" : "Un") + "DeleteComment", "Lesson", new { id = comment.Id, lessonId = id }, "http"), comment.CommentType.Name, comment.Enabled == true ? "delete16" : "arrow-undo") : ""; commentData.Add("Actions", buttonHtml); var rawCommentData = (from c in commentData select c.Value).ToArray(); result.Add(rawCommentData); } return(Json( new { eEcho = gridData.sEcho, iTotalRecords = totalCount, iTotalDisplayRecords = totalCount, aaData = result })); }
public IActionResult GetLessonList(DataTableParametersViewData gridData) { UserSessionContext userContext = new UserSessionContext(this.HttpContext); //Ensure iDisplayLength never causes a divide by zero exception gridData.iDisplayLength = (gridData.iDisplayLength == 0) ? 10 : gridData.iDisplayLength; int pageIndex = (gridData.iDisplayStart / gridData.iDisplayLength) + 1; pageIndex = pageIndex <= 0 ? 0 : pageIndex - 1; var pageSize = gridData.iDisplayLength; int totalCount = 0; LessonBusiness lessonBusinessManager = new LessonBusiness(DbContext); string gridMessage = ""; switch (gridData.NavigationPage) { case Enumerations.NavigationPage.Review: case Enumerations.NavigationPage.Edit: case Enumerations.NavigationPage.Validate: gridMessage = "Lessons Requiring Action"; break; case Enumerations.NavigationPage.MyLessons: gridMessage = "My Lessons"; //if (gridData.SearchModel.Status.HasValue)//TODO: Add logic for multiple options //{ // gridMessage = "My " + Utility.StringValue((Enumerations.LessonStatus)gridData.SearchModel.Status.Value) + " Lessons"; //} if (gridData.SearchModel.SelectedStatus != null && gridData.SearchModel.SelectedStatus.Count > 0) //TODO: Add logic for multiple options { string StatusList = ""; foreach (int StatusID in gridData.SearchModel.SelectedStatus) { StatusList += Utility.StringValue((Enumerations.LessonStatus)StatusID); StatusList += ", "; } gridMessage = "My " + StatusList + " Lessons"; } break; case Enumerations.NavigationPage.Search: gridMessage = "Filtered Search Results"; break; case Enumerations.NavigationPage.Submit: gridMessage = "My Draft Lessons"; break; } List <Lesson> lessons = null; if (!gridData.SearchModel.Blank) { List <SortColumn> sortColumns = null; if (gridData.iSortingCols > 0) { sortColumns = new List <SortColumn>(); if (gridData.iSortingCols > 5) { sortColumns.Add(new SortColumn { Column = (Enumerations.LessonListSortColumn)gridData.iSortCol_5, Direction = gridData.sSortDir_5 == "asc" ? Enumerations.SortDirection.Ascending : Enumerations.SortDirection.Descending, SortOrder = 6 }); } if (gridData.iSortingCols > 4) { sortColumns.Add(new SortColumn { Column = (Enumerations.LessonListSortColumn)gridData.iSortCol_4, Direction = gridData.sSortDir_4 == "asc" ? Enumerations.SortDirection.Ascending : Enumerations.SortDirection.Descending, SortOrder = 5 }); } if (gridData.iSortingCols > 3) { sortColumns.Add(new SortColumn { Column = (Enumerations.LessonListSortColumn)gridData.iSortCol_3, Direction = gridData.sSortDir_3 == "asc" ? Enumerations.SortDirection.Ascending : Enumerations.SortDirection.Descending, SortOrder = 4 }); } if (gridData.iSortingCols > 2) { sortColumns.Add(new SortColumn { Column = (Enumerations.LessonListSortColumn)gridData.iSortCol_2, Direction = gridData.sSortDir_2 == "asc" ? Enumerations.SortDirection.Ascending : Enumerations.SortDirection.Descending, SortOrder = 3 }); } if (gridData.iSortingCols > 1) { sortColumns.Add(new SortColumn { Column = (Enumerations.LessonListSortColumn)gridData.iSortCol_1, Direction = gridData.sSortDir_1 == "asc" ? Enumerations.SortDirection.Ascending : Enumerations.SortDirection.Descending, SortOrder = 2 }); } sortColumns.Add(new SortColumn { Column = (Enumerations.LessonListSortColumn)gridData.iSortCol_0, Direction = gridData.sSortDir_0 == "asc" ? Enumerations.SortDirection.Ascending : Enumerations.SortDirection.Descending, SortOrder = 1 }); } lessons = lessonBusinessManager.GetLessonsPaged(sortColumns, userContext.CurrentUser, gridData.SearchModel, false, true, pageIndex, pageSize, out totalCount); } userContext.LastSearchResults = lessons; List <object> result = new List <object>(); if (lessons != null) { foreach (var lesson in lessons) { Dictionary <string, string> lessonData = new Dictionary <string, string>(); lessonData.Add("Enabled", lesson.Enabled.ToString()); lessonData.Add("Selected", false.ToString()); lessonData.Add("Id", lesson.Id.ToString()); lessonData.Add("Status", lesson.Status.Name + (lesson.Enabled == true ? "" : " (Deleted)")); lessonData.Add("Title", HttpUtility.HtmlEncode(lesson.Title)); lessonData.Add("Discipline", lesson.Discipline == null ? "" : HttpUtility.HtmlEncode(lesson.Discipline.Name)); lessonData.Add("SubmitDate", lesson.SubmittedDate.HasValue ? lesson.SubmittedDate.Value.ToShortDateString() : ""); lessonData.Add("Contact", HttpUtility.HtmlEncode(Utility.ContactToDisplayString(lesson.ContactLastName, lesson.ContactFirstName))); string buttonHtml = Utils.RenderPartialViewToString(this, "GridButton", LessonViewModel.ToViewModel(this.HttpContext, lesson)); lessonData.Add("Actions", buttonHtml); lessonData.Add("LessonId", lesson.Id.ToString()); lessonData.Add("StatusId", lesson.StatusId.ToString()); var rawLessonData = (from l in lessonData select l.Value).ToArray(); result.Add(rawLessonData); } } return(Json( new { eEcho = gridData.sEcho, iTotalRecords = totalCount, iTotalDisplayRecords = totalCount, aaData = result, gridMessage = gridMessage })); }