예제 #1
0
        /// <summary>
        /// Sets the value.
        /// </summary>
        /// <param name="control">The control.</param>
        /// <param name="configurationValues">The configuration values.</param>
        /// <param name="value">The value.</param>
        public override void SetEditValue(Control control, Dictionary <string, ConfigurationValue> configurationValues, string value)
        {
            if (value != null)
            {
                var picker = control as MetricCategoryPicker;

                if (picker != null)
                {
                    List <MetricCategory> metricCategories = new List <MetricCategory>();
                    var guidPairs = Rock.Attribute.MetricCategoriesFieldAttribute.GetValueAsGuidPairs(value);
                    MetricCategoryService metricCategoryService = new MetricCategoryService(new RockContext());

                    foreach (var guidPair in guidPairs)
                    {
                        // first try to get each metric from the category that it was selected from
                        var metricCategory = metricCategoryService.Queryable().Where(a => a.Metric.Guid == guidPair.MetricGuid && a.Category.Guid == guidPair.CategoryGuid).FirstOrDefault();
                        if (metricCategory == null)
                        {
                            // if the metric isn't found in the original category, just the first one, ignoring category
                            metricCategory = metricCategoryService.Queryable().Where(a => a.Metric.Guid == guidPair.MetricGuid).FirstOrDefault();
                        }

                        if (metricCategory != null)
                        {
                            metricCategories.Add(metricCategory);
                        }
                    }

                    picker.SetValues(metricCategories);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Sets the value.
        /// </summary>
        /// <param name="control">The control.</param>
        /// <param name="configurationValues">The configuration values.</param>
        /// <param name="value">The value.</param>
        public override void SetEditValue( Control control, Dictionary<string, ConfigurationValue> configurationValues, string value )
        {
            if ( value != null )
            {
                var picker = control as MetricCategoryPicker;

                if ( picker != null )
                {
                    List<MetricCategory> metricCategories = new List<MetricCategory>();
                    var guidPairs = Rock.Attribute.MetricCategoriesFieldAttribute.GetValueAsGuidPairs( value );
                    MetricCategoryService metricCategoryService = new MetricCategoryService( new RockContext() );

                    foreach (var guidPair in guidPairs)
                    {
                        // first try to get each metric from the category that it was selected from
                        var metricCategory = metricCategoryService.Queryable().Where( a => a.Metric.Guid == guidPair.MetricGuid && a.Category.Guid == guidPair.CategoryGuid ).FirstOrDefault();
                        if (metricCategory == null)
                        {
                            // if the metric isn't found in the original category, just the first one, ignoring category
                            metricCategory = metricCategoryService.Queryable().Where( a => a.Metric.Guid == guidPair.MetricGuid ).FirstOrDefault();
                        }

                        if (metricCategory != null)
                        {
                            metricCategories.Add( metricCategory );
                        }
                    }

                    picker.SetValues( metricCategories );
                }
            }
        }
        /// <summary>
        /// Shows the settings.
        /// </summary>
        protected void ShowSettings()
        {
            flotChart.Visible = false;
            pnlEditModel.Visible = true;

            var rockContext = new RockContext();
            var metricCategoryService = new MetricCategoryService( rockContext );
            MetricCategory metricCategory = null;
            if ( this.MetricId.HasValue )
            {
                metricCategory = metricCategoryService.Queryable().Where( a => a.MetricId == this.MetricId ).FirstOrDefault();
                mpMetricCategoryPicker.SetValue( metricCategory );
            }

            if ( this.GetEntityFromContextEnabled )
            {
                rblSelectOrContext.SetValue( "1" );
            }
            else
            {
                rblSelectOrContext.SetValue( "0" );
            }

            cbCombineValues.Checked = this.CombineValues;

            rblSelectOrContext_SelectedIndexChanged( null, null );

            if ( metricCategory != null )
            {
                var entityTypeEntityIds = ( GetAttributeValue( "MetricEntityTypeEntityIds" ) ?? string.Empty ).Split( ',' ).Select( a => a.Split( '|' ) ).Where( a => a.Length == 2 ).Select( a => new
                {
                    EntityTypeId = a[0].AsIntegerOrNull(),
                    EntityId = a[1].AsIntegerOrNull()
                } ).ToList();

                int position = 0;
                foreach ( var metricPartition in metricCategory.Metric.MetricPartitions.OrderBy( a => a.Order ) )
                {
                    var metricPartitionEntityType = EntityTypeCache.Read( metricPartition.EntityTypeId ?? 0 );
                    var controlId = string.Format( "metricPartition{0}_entityTypeEditControl", metricPartition.Id );
                    Control entityTypeEditControl = phMetricValuePartitions.FindControl( controlId );

                    if ( entityTypeEntityIds.Count() > position )
                    {
                        var entry = entityTypeEntityIds[position];

                        if ( metricPartitionEntityType != null && metricPartitionEntityType.SingleValueFieldType != null && metricPartitionEntityType.SingleValueFieldType.Field is IEntityFieldType )
                        {
                            if ( entry != null && entry.EntityTypeId == metricPartitionEntityType.Id)
                            {
                                ( metricPartitionEntityType.SingleValueFieldType.Field as IEntityFieldType ).SetEditValueFromEntityId( entityTypeEditControl, new Dictionary<string, ConfigurationValue>(), entry.EntityId );
                            }
                        }
                    }

                    position++;
                }
            }

            drpSlidingDateRange.DelimitedValues = GetAttributeValue( "SlidingDateRange" );

            mdEdit.Show();
        }
예제 #4
0
        /// <summary>
        /// Shows the settings.
        /// </summary>
        protected void ShowSettings()
        {
            flotChart.Visible    = false;
            pnlEditModel.Visible = true;

            var            rockContext           = new RockContext();
            var            metricCategoryService = new MetricCategoryService(rockContext);
            MetricCategory metricCategory        = null;

            if (this.MetricId.HasValue)
            {
                metricCategory = metricCategoryService.Queryable().Where(a => a.MetricId == this.MetricId).FirstOrDefault();
                mpMetricCategoryPicker.SetValue(metricCategory);
            }

            if (this.GetEntityFromContextEnabled)
            {
                rblSelectOrContext.SetValue("1");
            }
            else
            {
                rblSelectOrContext.SetValue("0");
            }

            cbCombineValues.Checked = this.CombineValues;

            rblSelectOrContext_SelectedIndexChanged(null, null);

            if (metricCategory != null)
            {
                var entityTypeEntityIds = (GetAttributeValue("MetricEntityTypeEntityIds") ?? string.Empty).Split(',').Select(a => a.Split('|')).Where(a => a.Length == 2).Select(a => new
                {
                    EntityTypeId = a[0].AsIntegerOrNull(),
                    EntityId     = a[1].AsIntegerOrNull()
                }).ToList();

                int position = 0;
                foreach (var metricPartition in metricCategory.Metric.MetricPartitions.OrderBy(a => a.Order))
                {
                    var     metricPartitionEntityType = EntityTypeCache.Get(metricPartition.EntityTypeId ?? 0);
                    var     controlId             = string.Format("metricPartition{0}_entityTypeEditControl", metricPartition.Id);
                    Control entityTypeEditControl = phMetricValuePartitions.FindControl(controlId);

                    if (entityTypeEntityIds.Count() > position)
                    {
                        var entry = entityTypeEntityIds[position];

                        if (metricPartitionEntityType != null && metricPartitionEntityType.SingleValueFieldType != null && metricPartitionEntityType.SingleValueFieldType.Field is IEntityFieldType)
                        {
                            if (entry != null && entry.EntityTypeId == metricPartitionEntityType.Id)
                            {
                                (metricPartitionEntityType.SingleValueFieldType.Field as IEntityFieldType).SetEditValueFromEntityId(entityTypeEditControl, new Dictionary <string, ConfigurationValue>(), entry.EntityId);
                            }
                        }
                    }

                    position++;
                }
            }

            drpSlidingDateRange.DelimitedValues = GetAttributeValue("SlidingDateRange");

            mdEdit.Show();
        }