/// <summary> /// Binds the grid. /// </summary> private void BindGrid() { RockContext rockContext = new RockContext(); CoursePageService coursePageService = new CoursePageService(rockContext); var chapterId = PageParameter(PageParameterKey.ChapterId).AsInteger(); var qry = coursePageService.Queryable() .Where(c => c.ChapterId == chapterId) .OrderBy(c => c.Order) .ToList(); var pages = new List <CoursePageDisplay>(); foreach (var item in qry) { pages.Add(new CoursePageDisplay { Id = item.Id, Name = item.Name, //Type = ( ( CoursePageComponent ) CoursePageContainer.Instance.Dictionary // .Where( c => c.Value.Value.EntityType.Id == item.EntityTypeId ) // .Select( c => c.Value.Value ) // .FirstOrDefault() ) // .Name }); } gList.DataSource = pages; gList.DataBind(); }
private void GList_GridReorder(object sender, GridReorderEventArgs e) { var rockContext = new RockContext(); CoursePageService coursePageService = new CoursePageService(rockContext); var chapterId = PageParameter(PageParameterKey.ChapterId).AsInteger(); var items = coursePageService.Queryable().Where(p => p.ChapterId == chapterId).OrderBy(i => i.Order).ToList(); coursePageService.Reorder(items, e.OldIndex, e.NewIndex); rockContext.SaveChanges(); BindGrid(); }
protected void btnSavePage_Click(object sender, EventArgs e) { RockContext rockContext = new RockContext(); CoursePageService coursePageService = new CoursePageService(rockContext); var coursePage = GetCoursePage(coursePageService); var pageCourseComponent = GetCoursePageComponent(coursePage); if (coursePage.Id == 0) { var chapterId = PageParameter(PageParameterKey.ChapterId).AsInteger(); var coursePages = coursePageService .Queryable() .Where(p => p.ChapterId == chapterId) .OrderBy(cc => cc.Order).ToList(); int order = 0; if (coursePages.Any()) { order = coursePages.Last().Order + 1; } if (!EntityGuid.HasValue) { EntityGuid = Guid.NewGuid(); } coursePage = new CoursePage { ChapterId = chapterId, EntityTypeId = pageCourseComponent.TypeId, Guid = EntityGuid.Value, Order = order }; coursePageService.Add(coursePage); } coursePage.Name = tbName.Text; pageCourseComponent.ConfigureCoursePage(coursePage, controls); rockContext.SaveChanges(); var queryString = new Dictionary <string, string> { { PageParameterKey.ChapterId, coursePage.ChapterId.ToString() } }; ClientNavigate(queryString); }
private CoursePage GetCoursePage(CoursePageService coursePageService) { var coursePageId = PageParameter(PageParameterKey.CoursePageId).AsIntegerOrNull(); if (!coursePageId.HasValue) //if there is no page parameter for the page the user doesn't want it { return(null); } var coursePage = coursePageService.Get(coursePageId.Value); if (coursePage == null) { var chapterId = PageParameter(PageParameterKey.ChapterId).AsInteger(); var coursePages = coursePageService .Queryable() .Where(p => p.ChapterId == chapterId) .OrderBy(cc => cc.Order).ToList(); int order = 0; if (coursePages.Any()) { order = coursePages.Last().Order + 1; } if (!EntityGuid.HasValue) { EntityGuid = Guid.NewGuid(); } var pageCourseComponent = GetCoursePageComponent(coursePage); coursePage = new CoursePage { ChapterId = chapterId, EntityTypeId = PageComponentId ?? 0, Guid = EntityGuid.Value, Order = order, Configuration = string.Empty }; } return(coursePage); }