private void BindCampusSchedulesGrid() { gCampusSchedules.DataSource = CampusSchedulesState .OrderBy(s => s.Order) .ThenBy(s => s.Schedule) .ToList(); gCampusSchedules.DataBind(); }
/// <summary> /// Removes the schedule. /// </summary> /// <param name="campusScheduleGuid">The CampusSchedule guid.</param> private void RemoveScheduleState(Guid campusScheduleGuid) { var item = CampusSchedulesState.FirstOrDefault(a => a.Guid.Equals(campusScheduleGuid)); if (item != null) { CampusSchedulesState.Remove(item); } }
/// <summary> /// Handles the SaveClick event of the dlgSchedule control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected void dlgSchedule_SaveClick(object sender, EventArgs e) { var campusScheduleGuid = hfCampusScheduleGuid.Value.AsGuidOrNull(); CampusScheduleDTO campusSchedule; int scheduleId = spCampusSchedule.SelectedValueAsId().Value; int scheduleTypeId = dvpScheduleType.SelectedValueAsId().Value; Schedule schedule; DefinedValue scheduleType; using (var rockContext = new RockContext()) { schedule = new ScheduleService(rockContext).Get(scheduleId); scheduleType = new DefinedValueService(rockContext).Get(scheduleTypeId); } if (campusScheduleGuid == null || campusScheduleGuid == Guid.Empty) { campusSchedule = new CampusScheduleDTO() { Guid = Guid.NewGuid(), Order = CampusSchedulesState.Any() ? CampusSchedulesState.Max(s => s.Order) + 1 : 0 }; CampusSchedulesState.Add(campusSchedule); } else { campusSchedule = CampusSchedulesState.FirstOrDefault(s => s.Guid.Equals(campusScheduleGuid)); } campusSchedule.ScheduleId = scheduleId; campusSchedule.Schedule = schedule.Name; campusSchedule.ScheduleTypeId = scheduleTypeId; campusSchedule.ScheduleType = scheduleType.Value; dlgSchedule.Hide(); BindCampusSchedulesGrid(); }
/// <summary> /// Gets the CampusSchedule. /// </summary> /// <param name="campusScheduleGuid">The CampusSchedule guid.</param> private CampusScheduleDTO GetCampusSchedule(Guid campusScheduleGuid) { return(CampusSchedulesState.Where(s => s.Guid == campusScheduleGuid).FirstOrDefault()); }
/// <summary> /// Handles the Click event of the btnSave control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param> protected void btnSave_Click(object sender, EventArgs e) { if (!ValidateCampus()) { // Error messaging handled by ValidateCampus return; } if (!IsFormValid()) { return; } Campus campus; var rockContext = new RockContext(); var campusService = new CampusService(rockContext); var locationService = new LocationService(rockContext); int campusId = HiddenCampusId; if (campusId == 0) { campus = new Campus(); campusService.Add(campus); var orders = campusService.Queryable() .AsNoTracking() .Select(t => t.Order) .ToList(); campus.Order = orders.Any() ? orders.Max(t => t) + 1 : 0; } else { campus = campusService.Get(campusId); } campus.Name = tbCampusName.Text; campus.IsActive = cbIsActive.Checked; campus.Description = tbDescription.Text; campus.CampusStatusValueId = dvpCampusStatus.SelectedValueAsInt(); campus.CampusTypeValueId = dvpCampusType.SelectedValueAsInt(); campus.Url = urlCampus.Text; campus.PhoneNumber = pnbPhoneNumber.Number; campus.LocationId = lpLocation.Location.Id; campus.ShortCode = tbCampusCode.Text; campus.TimeZoneId = ddlTimeZone.SelectedValue; var personService = new PersonService(rockContext); var leaderPerson = personService.GetNoTracking(ppCampusLeader.SelectedValue ?? 0); campus.LeaderPersonAliasId = leaderPerson != null ? leaderPerson.PrimaryAliasId : null; campus.ServiceTimes = kvlServiceTimes.Value; // Remove any CampusSchedules that were removed in the UI var selectedSchedules = CampusSchedulesState.Select(s => s.Guid); var locationsToRemove = campus.CampusSchedules.Where(s => !selectedSchedules.Contains(s.Guid)).ToList(); CampusScheduleService campusScheduleService = null; foreach (var campusSchedule in locationsToRemove) { campusScheduleService = campusScheduleService ?? new CampusScheduleService(rockContext); campus.CampusSchedules.Remove(campusSchedule); campusScheduleService.Delete(campusSchedule); } // Add/Update any CampusSchedules that were added or changed in the UI. foreach (var campusScheduleState in CampusSchedulesState) { var campusSchedule = campus.CampusSchedules.Where(s => s.Guid == campusScheduleState.Guid).FirstOrDefault(); if (campusSchedule == null) { campusSchedule = new CampusSchedule() { CampusId = campus.Id, ScheduleId = campusScheduleState.ScheduleId, ScheduleTypeValueId = campusScheduleState.ScheduleTypeId, Order = campusScheduleState.Order, Guid = Guid.NewGuid() }; campus.CampusSchedules.Add(campusSchedule); } else { campusSchedule.ScheduleId = campusScheduleState.ScheduleId; campusSchedule.ScheduleTypeValueId = campusScheduleState.ScheduleTypeId; } } SaveCampusTopics(campus, rockContext); avcAttributes.GetEditValues(campus); if (!campus.IsValid && campus.Location.IsValid) { // Controls will render the error messages return; } rockContext.WrapTransaction(() => { rockContext.SaveChanges(); campus.SaveAttributeValues(rockContext); }); NavigateToCurrentPage(new Dictionary <string, string> { { "CampusId", campus.Id.ToString() } }); }