Ejemplo n.º 1
0
        /// <summary>
        /// Converte o widget para uma instância de Field.
        /// </summary>
        public Field ToMediaField()
        {
            var field = new Field();

            field.CopyFrom(this);
            field.Properties = new FieldProperties();
            field.Properties.CopyFrom(this);

            // Verificando se o widget da suporte à interface IHasOptions<TOption>
            var options = field.Get <IEnumerable>("Options");

            if (options != null)
            {
                var values = field.Get <object[]>("Value");
                if (values == null)
                {
                    var value = field.Get("Value");
                    values = value.AsSingle().NonNull().ToArray();
                }

                var fieldValues = new FieldValueCollection();
                foreach (Option option in options)
                {
                    var fieldValue = new FieldValue();
                    fieldValue.CopyFrom(options);
                    fieldValue.Selected = values.Contains(option.Value);
                }
                field.Value = fieldValues;
            }

            return(field);
        }