/// <summary> /// Get the enum value from the drop down list /// </summary> /// <typeparam name="T"></typeparam> /// <param name="ddl"></param> /// <returns></returns> private T?GetEnumSelected <T>(DataDropDownList ddl) where T : struct { var asString = ddl.SelectedValue; T asEnum; var success = Enum.TryParse(asString, out asEnum); return(success ? asEnum : ( T? )null); }
/// <summary> /// Binds the streak structure type to drop down list. /// </summary> /// <param name="ddl">The dropdown list.</param> /// <param name="includeBlank">if set to <c>true</c> [include blank].</param> /// <param name="blankText">The blank text.</param> private void BindStreakStructureTypeToDropDownList(DataDropDownList ddl, bool includeBlank, string blankText = "") { if (includeBlank) { ddl.Items.Add(new ListItem(blankText, string.Empty)); } var itemValues = Enum.GetValues(typeof(StreakStructureType)); var itemNames = GetStreakStructureTypeDisplayValues(); for (var i = 0; i < itemNames.Count(); i++) { ddl.Items.Add(new ListItem(itemNames.ElementAt(i), itemValues.GetValue(i).ToString())); } }
/// <summary> /// Take an enum type and bind it's options to the drop down list /// </summary> /// <param name="enumType"></param> /// <param name="ddl"></param> private void BindDropDownListToEnum(Type enumType, DataDropDownList ddl, bool includeBlank, string blankText = "") { if (includeBlank) { ddl.Items.Add(new ListItem(blankText, string.Empty)); } var itemValues = Enum.GetValues(enumType); var itemNames = Enum.GetNames(enumType); for (var i = 0; i < itemNames.Length; i++) { ddl.Items.Add(new ListItem(itemNames[i].SplitCase(), itemValues.GetValue(i).ToString())); } }
/// <summary> /// Save RSVP response data from grid (to Attendance records). /// </summary> protected bool SaveRSVPData() { var attendees = new List <RSVPAttendee>(); foreach (GridViewRow row in gAttendees.Rows) { if (row.RowType == DataControlRowType.DataRow) { RockCheckBox rcbAccept = row.FindControl("rcbAccept") as RockCheckBox; RockCheckBox rcbDecline = row.FindControl("rcbDecline") as RockCheckBox; DataDropDownList rddlDeclineReason = row.FindControl("rddlDeclineReason") as DataDropDownList; RockTextBox tbDeclineNote = row.FindControl("tbDeclineNote") as RockTextBox; int declineReason = int.Parse(rddlDeclineReason.SelectedValue); string declineNote = tbDeclineNote.Text; attendees.Add( new RSVPAttendee() { Accept = rcbAccept.Checked, Decline = rcbDecline.Checked, DeclineNote = declineNote, DeclineReason = declineReason, PersonId = ( int )gAttendees.DataKeys[row.RowIndex].Value } ); } } using (var rockContext = new RockContext()) { var occurrenceService = new AttendanceOccurrenceService(rockContext); var attendanceService = new AttendanceService(rockContext); var personAliasService = new PersonAliasService(rockContext); AttendanceOccurrence occurrence = null; int?groupId = PageParameter(PageParameterKey.GroupId).AsIntegerOrNull(); int?occurrenceId = PageParameter(PageParameterKey.OccurrenceId).AsIntegerOrNull(); if ((occurrenceId == null) || (occurrenceId == 0)) { occurrenceId = hfNewOccurrenceId.Value.AsIntegerOrNull(); if ((occurrenceId == null) || (occurrenceId == 0)) { throw new Exception("The AttendanceOccurrence does not exist."); } } occurrence = occurrenceService.Get(occurrenceId.Value); var existingAttendees = occurrence.Attendees.ToList(); foreach (var attendee in attendees) { var attendance = existingAttendees .Where(a => a.PersonAlias.PersonId == attendee.PersonId) .FirstOrDefault(); if (attendance == null) { int?personAliasId = personAliasService.GetPrimaryAliasId(attendee.PersonId); if (personAliasId.HasValue) { attendance = new Attendance(); attendance.PersonAliasId = personAliasId; attendance.StartDateTime = occurrence.Schedule != null && occurrence.Schedule.HasSchedule() ? occurrence.OccurrenceDate.Date.Add(occurrence.Schedule.StartTimeOfDay) : occurrence.OccurrenceDate; occurrence.Attendees.Add(attendance); } } if (attendance != null) { if (attendee.Accept) { var groupMember = occurrence.Group.Members.Where(gm => gm.PersonId == attendee.PersonId).FirstOrDefault(); if (groupMember == null) { groupMember = new GroupMember(); groupMember.PersonId = attendee.PersonId; groupMember.GroupId = occurrence.Group.Id; groupMember.GroupRoleId = occurrence.Group.GroupType.DefaultGroupRoleId ?? 0; new GroupMemberService(rockContext).Add(groupMember); rockContext.SaveChanges(); } // only set the RSVP and Date if the value is changing if (attendance.RSVP != Rock.Model.RSVP.Yes) { attendance.RSVPDateTime = DateTime.Now; attendance.RSVP = Rock.Model.RSVP.Yes; } attendance.Note = string.Empty; attendance.DeclineReasonValueId = null; } else if (attendee.Decline) { // only set the RSVP and Date if the value is changing if (attendance.RSVP != Rock.Model.RSVP.No) { attendance.RSVPDateTime = DateTime.Now; attendance.RSVP = Rock.Model.RSVP.No; } attendance.Note = attendee.DeclineNote; if (attendee.DeclineReason != 0) { attendance.DeclineReasonValueId = attendee.DeclineReason; } } else { attendance.RSVPDateTime = null; attendance.RSVP = Rock.Model.RSVP.Unknown; attendance.Note = string.Empty; attendance.DeclineReasonValueId = null; } } } rockContext.SaveChanges(); if (occurrence.LocationId.HasValue) { Rock.CheckIn.KioskLocationAttendance.Remove(occurrence.LocationId.Value); } } return(true); }