private void BindCampusTopicsGrid() { gCampusTopics.DataSource = CampusTopicsState .OrderBy(t => t.TopicType) .ToList(); gCampusTopics.DataBind(); }
/// <summary> /// Handles the onServerValidate event of the cvTopicType control. /// </summary> /// <param name="source"></param> /// <param name="args"></param> protected void cvTopicType_ServerValidate(object source, ServerValidateEventArgs args) { int?topicTypeId = args.Value.AsIntegerOrNull(); var topicInstance = CampusTopicsState.Find(t => t.TopicTypeId == topicTypeId); args.IsValid = topicInstance == null || topicInstance.IsPersisted; }
/// <summary> /// Handles the Delete event of the gCampusTopics control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RowEventArgs"/> instance containing the event data.</param> protected void gCampusTopics_Delete(object sender, RowEventArgs e) { Guid campusTopicGuid = ( Guid )e.RowKeyValue; var item = CampusTopicsState.Find(a => a.Guid.Equals(campusTopicGuid)); if (item != null) { CampusTopicsState.Remove(item); } BindCampusTopicsGrid(); }
protected void dlgTopic_SaveClick(object sender, EventArgs e) { if (!cvTopicType.IsValid) { return; } var campusTopicGuid = hfCampusTopicGuid.Value.AsGuidOrNull(); int topicTypeId = dvpTopicType.SelectedDefinedValueId.Value; var topicType = new DefinedValueService(new RockContext()).Get(topicTypeId); CampusTopicDTO campusTopic = CampusTopicsState.Find(t => t.TopicTypeId == topicTypeId); // If there is an existing campusTopic with the provided topic id just update the existing one, each campus can only // have one instance of a topic type if (campusTopic == null) { if (campusTopicGuid == null || campusTopicGuid == Guid.Empty) { campusTopic = new CampusTopicDTO() { Guid = Guid.NewGuid(), IsPersisted = false }; CampusTopicsState.Add(campusTopic); } else { campusTopic = CampusTopicsState.Find(t => t.Guid.Equals(campusTopicGuid)); } } campusTopic.Email = ebEmail.Text; campusTopic.TopicTypeId = topicTypeId; campusTopic.IsPublic = cbIsPublic.Checked; campusTopic.TopicType = topicType.Value; // Clear controls cbIsPublic.Checked = false; ebEmail.Text = string.Empty; dvpTopicType.ClearSelection(); dlgTopic.Hide(); BindCampusTopicsGrid(); }
private void SaveCampusTopics(Campus campus, RockContext rockContext) { // Remove any CampusTopics that were removed in the UI var selectedTopics = CampusTopicsState.Select(s => s.Guid); var topicsToRemove = campus.CampusTopics.Where(s => !selectedTopics.Contains(s.Guid)).ToList(); foreach (var campusTopic in topicsToRemove) { CampusTopicService campusTopicService = new CampusTopicService(rockContext); campus.CampusTopics.Remove(campusTopic); campusTopicService.Delete(campusTopic); } // Add/Update any CampusTopics that were added or changed in the UI. foreach (var campusTopicState in CampusTopicsState) { var campusTopic = campus.CampusTopics.FirstOrDefault(s => s.Guid == campusTopicState.Guid); if (campusTopic == null) { campusTopic = new CampusTopic() { CampusId = campus.Id, Email = campusTopicState.Email, IsPublic = campusTopicState.IsPublic, TopicTypeValueId = campusTopicState.TopicTypeId, Guid = Guid.NewGuid() }; campus.CampusTopics.Add(campusTopic); } else { campusTopic.Email = campusTopicState.Email; campusTopic.TopicTypeValueId = campusTopicState.TopicTypeId; campusTopic.IsPublic = campusTopicState.IsPublic; } } }
/// <summary> /// Gets the CampusTopic. /// </summary> /// <param name="campusScheduleGuid">The CampusSchedule guid.</param> private CampusTopicDTO GetCampusTopic(Guid campusScheduleGuid) { return(CampusTopicsState.Find(s => s.Guid == campusScheduleGuid)); }