Exemplo n.º 1
0
        /// <summary>
        /// Gets the selection.
        /// </summary>
        /// <param name="controls">The controls.</param>
        /// <returns></returns>
        public override string GetSelection(System.Web.UI.Control[] controls)
        {
            var cblNoteTypes           = controls.GetByName <RockListBox>(_CtlNoteTypes);
            var slidingDateRangePicker = controls.GetByName <SlidingDateRangePicker>(_CtlSlidingDateRangePicker);

            var settings = new CreatedNotesCountSelectSettings();

            settings.NoteTypeIds.AddRange(cblNoteTypes.SelectedValuesAsInt);
            settings.DelimitedValues = slidingDateRangePicker.DelimitedValues;

            return(settings.ToSelectionString());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Sets the selection.
        /// </summary>
        /// <param name="controls">The controls.</param>
        /// <param name="selection">The selection.</param>
        public override void SetSelection(System.Web.UI.Control[] controls, string selection)
        {
            var cblNoteTypes           = controls.GetByName <RockListBox>(_CtlNoteTypes);
            var slidingDateRangePicker = controls.GetByName <SlidingDateRangePicker>(_CtlSlidingDateRangePicker);

            var settings = new CreatedNotesCountSelectSettings(selection);

            if (!settings.IsValid)
            {
                return;
            }

            cblNoteTypes.SetValues(settings.NoteTypeIds);
            slidingDateRangePicker.DelimitedValues = settings.DelimitedValues.ToStringSafe();
        }
Exemplo n.º 3
0
        /// <summary>
        /// Gets the expression.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="entityIdProperty">The entity identifier property.</param>
        /// <param name="selection">The selection.</param>
        /// <returns></returns>
        public override Expression GetExpression(RockContext context, MemberExpression entityIdProperty, string selection)
        {
            var settings = new CreatedNotesCountSelectSettings(selection);

            if (settings != null)
            {
                var noteQry = new NoteService(context).Queryable().Where(x => x.CreatedByPersonAliasId.HasValue);

                if (settings.NoteTypeIds != null && settings.NoteTypeIds.Any())
                {
                    noteQry = noteQry.Where(xx => settings.NoteTypeIds.Contains(xx.NoteTypeId));
                }

                if (settings.DelimitedValues.IsNotNullOrWhiteSpace())
                {
                    var dateRange = SlidingDateRangePicker.CalculateDateRangeFromDelimitedValues(settings.DelimitedValues);

                    if (dateRange.Start.HasValue)
                    {
                        noteQry = noteQry.Where(i => i.CreatedDateTime >= dateRange.Start.Value);
                    }

                    if (dateRange.End.HasValue)
                    {
                        noteQry = noteQry.Where(i => i.CreatedDateTime <= dateRange.End.Value);
                    }
                }

                var qry = new PersonService(context).Queryable()
                          .Select(p => noteQry.Where(l => l.CreatedByPersonAlias.PersonId == p.Id).Count());

                var selectExpression = SelectExpressionExtractor.Extract(qry, entityIdProperty, "p");

                return(selectExpression);
            }

            return(null);
        }