예제 #1
0
        /// <summary>
        /// Binds the grid.
        /// </summary>
        private void BindGrid()
        {
            CampusCache campus = GetCampusFromContext();

            var selectedScheduleIds = lbSchedules.SelectedValues.AsIntegerList().Where(a => a > 0).ToList();

            List <int> selectedGroupIds = GetSelectedGroupIds();

            var rockContext = new RockContext();

            var customSettings = CheckinManagerHelper.GetCheckinManagerConfigurationFromCookie().CustomSettings;

            customSettings.AddOrReplace(CustomSettingKey.EnRouteScheduleIdsFilter, selectedScheduleIds.AsDelimited(","));
            customSettings.AddOrReplace(CustomSettingKey.EnRoutePickedGroupIdsFilter, gpGroups.SelectedIds.ToList().AsDelimited(","));
            customSettings.AddOrReplace(CustomSettingKey.EnRouteIncludeChildGroupsFilter, cbIncludeChildGroups.Checked.ToTrueFalse());

            CheckinManagerHelper.SaveCustomSettingsToCookie(customSettings);

            IList <RosterAttendee> attendees = null;

            attendees = GetAttendees(rockContext);

            // sort by Name, and also by PersonGuid (so they stay in a consistent order in cases where Names are identical
            var attendeesSorted = attendees
                                  .OrderBy(a => a.NickName)
                                  .ThenBy(a => a.LastName)
                                  .ThenBy(a => a.PersonGuid)
                                  .ToList();

            _showOnlyParentGroup = this.GetAttributeValue(AttributeKey.ShowOnlyParentGroup).AsBoolean();

            gAttendees.DataSource = attendeesSorted;
            gAttendees.DataBind();
        }
예제 #2
0
        /// <summary>
        /// Shows the filters.
        /// </summary>
        private void BindFilter()
        {
            ScheduleService scheduleService = new ScheduleService(new RockContext());

            var selectedScheduleIds = CheckinManagerHelper.GetCheckinManagerConfigurationFromCookie().RoomListScheduleIdsFilter;

            // Limit Schedules to ones that are Active, have a CheckInStartOffsetMinutes, and are Named schedules.
            var scheduleQry = scheduleService.Queryable().Where(a => a.IsActive && a.CheckInStartOffsetMinutes != null && a.Name != null && a.Name != string.Empty);

            var scheduleList = scheduleQry.ToList().OrderBy(a => a.Name).ToList();

            var sortedScheduleList = scheduleList.OrderByOrderAndNextScheduledDateTime();

            lbSchedules.Items.Clear();

            foreach (var schedule in sortedScheduleList)
            {
                var listItem = new ListItem();
                if (schedule.Name.IsNotNullOrWhiteSpace())
                {
                    listItem.Text = schedule.Name;
                }
                else
                {
                    listItem.Text = schedule.FriendlyScheduleText;
                }

                listItem.Value    = schedule.Id.ToString();
                listItem.Selected = selectedScheduleIds.Contains(schedule.Id);
                lbSchedules.Items.Add(listItem);
            }
        }
예제 #3
0
        /// <summary>
        /// Shows the filters.
        /// </summary>
        private void BindFilter()
        {
            ScheduleService scheduleService = new ScheduleService(new RockContext());
            var             customSettings  = CheckinManagerHelper.GetCheckinManagerConfigurationFromCookie().CustomSettings;

            var scheduleIdsFilter        = customSettings.GetValueOrNull(CustomSettingKey.EnRouteScheduleIdsFilter);
            var pickedGroupIdsFilter     = customSettings.GetValueOrNull(CustomSettingKey.EnRoutePickedGroupIdsFilter);
            var includeChildGroupsFilter = customSettings.GetValueOrNull(CustomSettingKey.EnRouteIncludeChildGroupsFilter);

            var selectedScheduleIds = scheduleIdsFilter.SplitDelimitedValues().AsIntegerList();

            // limit Schedules to ones that are Active, have a CheckInStartOffsetMinutes, and are Named schedules
            var scheduleQry = scheduleService.Queryable().Where(a => a.IsActive && a.CheckInStartOffsetMinutes != null && a.Name != null && a.Name != string.Empty);

            var scheduleList = scheduleQry.ToList().OrderBy(a => a.Name).ToList();

            var sortedScheduleList = scheduleList.OrderByOrderAndNextScheduledDateTime();

            lbSchedules.Items.Clear();

            foreach (var schedule in sortedScheduleList)
            {
                var listItem = new ListItem();
                if (schedule.Name.IsNotNullOrWhiteSpace())
                {
                    listItem.Text = schedule.Name;
                }
                else
                {
                    listItem.Text = schedule.FriendlyScheduleText;
                }

                listItem.Value    = schedule.Id.ToString();
                listItem.Selected = selectedScheduleIds.Contains(schedule.Id);
                lbSchedules.Items.Add(listItem);
            }

            IEnumerable <CheckinAreaPath> checkinAreasPaths;
            var checkinAreaFilter = CheckinManagerHelper.GetCheckinAreaFilter(this);

            if (checkinAreaFilter != null)
            {
                checkinAreasPaths = new GroupTypeService(new RockContext()).GetCheckinAreaDescendantsPath(checkinAreaFilter.Id);
            }
            else
            {
                checkinAreasPaths = new GroupTypeService(new RockContext()).GetAllCheckinAreaPaths();
            }

            var checkinGroupTypeIdsToShow = checkinAreasPaths.Select(a => a.GroupTypeId).Distinct().ToList();

            gpGroups.IncludedGroupTypeIds = checkinGroupTypeIdsToShow;

            var selectedGroupIds = pickedGroupIdsFilter.SplitDelimitedValues().AsIntegerList();

            gpGroups.SetValues(selectedGroupIds);

            if (GetAttributeValue(AttributeKey.AlwaysShowChildGroups).AsBoolean())
            {
                cbIncludeChildGroups.Visible  = false;
                lblIncludeChildGroups.Visible = true;
                cbIncludeChildGroups.Checked  = true;
            }
            else
            {
                cbIncludeChildGroups.Visible  = true;
                lblIncludeChildGroups.Visible = false;
                cbIncludeChildGroups.Checked  = includeChildGroupsFilter.AsBoolean();
            }
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnReprintLabels_Click(object sender, EventArgs e)
        {
            nbReprintMessage.Visible = false;

            Guid personGuid = GetPersonGuid();

            if (personGuid == Guid.Empty)
            {
                maNoLabelsFound.Show("No person was found.", ModalAlertType.Alert);
                return;
            }

            if (string.IsNullOrEmpty(hfCurrentAttendanceIds.Value))
            {
                maNoLabelsFound.Show("No labels were found for re-printing.", ModalAlertType.Alert);
                return;
            }

            var rockContext = new RockContext();

            var attendanceIds = hfCurrentAttendanceIds.Value.SplitDelimitedValues().AsIntegerList();

            // Get the person Id from the PersonId page parameter, or look it up based on the Person Guid page parameter.
            int?personIdParam = PageParameter(PageParameterKey.PersonId).AsIntegerOrNull();
            int personId      = personIdParam.HasValue
                ? personIdParam.Value
                : new PersonService(rockContext).GetId(personGuid).GetValueOrDefault();

            hfPersonId.Value = personId.ToString();

            var possibleLabels = ZebraPrint.GetLabelTypesForPerson(personId, attendanceIds);

            if (possibleLabels != null && possibleLabels.Count != 0)
            {
                cblLabels.DataSource = possibleLabels;
                cblLabels.DataBind();
            }
            else
            {
                maNoLabelsFound.Show("No labels were found for re-printing.", ModalAlertType.Alert);
                return;
            }

            cblLabels.DataSource = ZebraPrint.GetLabelTypesForPerson(personId, attendanceIds).OrderBy(l => l.Name);
            cblLabels.DataBind();

            // Get the printers list.
            var printerList = new DeviceService(rockContext)
                              .GetByDeviceTypeGuid(new Guid(Rock.SystemGuid.DefinedValue.DEVICE_TYPE_PRINTER))
                              .OrderBy(d => d.Name)
                              .Select(a => new { a.Name, a.Guid })
                              .ToList();

            ddlPrinter.Items.Clear();
            ddlPrinter.Items.Add(new ListItem());

            if (hfHasClientPrinter.Value.AsBoolean())
            {
                ddlPrinter.Items.Add(new ListItem("local printer", Guid.Empty.ToString()));
            }

            foreach (var printer in printerList)
            {
                ddlPrinter.Items.Add(new ListItem(printer.Name, printer.Guid.ToString()));
            }

            var labelPrinterGuid = CheckinManagerHelper.GetCheckinManagerConfigurationFromCookie().LabelPrinterGuid;

            ddlPrinter.SetValue(labelPrinterGuid);

            nbReprintLabelMessages.Text = string.Empty;
            mdReprintLabels.Show();
        }