Exemple #1
0
        protected virtual void SetVisibleColumns()
        {
            try {
                _blockLookup.Clear();

                //// filter out unnecessary appointment columns and blocks
                DateTime startTime;
                DateTime endTime;
                switch (TimeView)
                {
                case TimePeriodType.Monthly:
                    startTime = TimePeriodStart.ToBeginningOfMonth();
                    endTime   = TimePeriodStart.ToEndOfMonth();
                    break;

                case TimePeriodType.DailyHourly:
                case TimePeriodType.DailyHalfHourly:
                case TimePeriodType.DailyQuaterHourly:
                default:
                    startTime = TimePeriodStart.ToMidnight();
                    endTime   = TimePeriodStart.To1159PM();
                    break;
                }


                switch (ColumnFilter)
                {
                case AppointmentBookViewModelFilter.All:
                    _visibleColumns = _allColumns;
                    break;

                case AppointmentBookViewModelFilter.ExcludeEmptyColumns:
                    _visibleColumns = (
                        from appointment in _allColumns
                        where appointment.Appointments.Any(block => block.VisibleStartTime <endTime && block.VisibleEndTime> startTime)
                        select appointment
                        ).ToArray();
                    break;

                case AppointmentBookViewModelFilter.ShowOnlyEmptyColumns:
                    _visibleColumns = (
                        from appointment in _allColumns
                        where !appointment.Appointments.Any(block => block.VisibleStartTime <= endTime && block.VisibleEndTime >= startTime)
                        select appointment
                        ).ToArray();;
                    break;
                }

                RecreateCellDisplays();
            } catch (Exception error) {
                SystemLog.Exception(error);
                ExceptionDialog.Show(error);
            }
        }