private void AddMultiSelectControl(MultiSelectFormControlSettingsDescriptor setting, string name)
 {
     if (setting.MultiSelectTemplate.TemplateName == nameof(QuestionTemplateSelector.MultiSelectTemplate))
     {
         properties.Add(CreateMultiSelectValidatableObject(setting, name));
     }
     else
     {
         throw new ArgumentException($"{nameof(setting.DropDownTemplate.TemplateName)}: 880DF2E6-97E8-49F2-B88C-FE8DB4F01C63");
     }
 }
Ejemplo n.º 2
0
 public MultiSelectValidatableObject(string name, MultiSelectFormControlSettingsDescriptor setting, IHttpService httpService, IEnumerable <IValidationRule> validations, UiNotificationService uiNotificationService)
     : base(name, setting.MultiSelectTemplate.TemplateName, validations, uiNotificationService)
 {
     this.Title = setting.Title;
     this._multiSelectFormControlSettingsDescriptor = setting;
     this._multiSelectTemplate = setting.MultiSelectTemplate;
     this.httpService          = httpService;
     itemComparer  = new MultiSelectItemComparer <E>(_multiSelectFormControlSettingsDescriptor.KeyFields);
     SelectedItems = new ObservableCollection <object>();
     GetItemSource();
 }
Ejemplo n.º 3
0
 public MultiSelectValidatableObject(string name, MultiSelectFormControlSettingsDescriptor setting, IEnumerable <IValidationRule> validations, IContextProvider contextProvider)
     : base(name, setting.MultiSelectTemplate.TemplateName, validations, contextProvider.UiNotificationService)
 {
     this._multiSelectFormControlSettingsDescriptor = setting;
     this._multiSelectTemplate = setting.MultiSelectTemplate;
     this.Title       = this._multiSelectTemplate.LoadingIndicatorText;
     this.httpService = contextProvider.HttpService;
     itemComparer     = new MultiSelectItemComparer <E>(_multiSelectFormControlSettingsDescriptor.KeyFields);
     SelectedItems    = new ObservableCollection <object>();
     this.canExecute  = false;
     this.Placeholder = this._multiSelectTemplate.LoadingIndicatorText;
     GetItemSource();
 }
Ejemplo n.º 4
0
        private void AddMultiSelectControl(MultiSelectFormControlSettingsDescriptor setting)
        {
            ValidateSettingType(GetFieldName(setting.Field), setting.Type);

            if (setting.MultiSelectTemplate.TemplateName == nameof(QuestionTemplateSelector.MultiSelectTemplate))
            {
                formLayout.Add(CreateMultiSelectValidatableObject(setting), this.groupBoxSettings);
            }
            else
            {
                throw new ArgumentException($"{nameof(setting.DropDownTemplate.TemplateName)}: 880DF2E6-97E8-49F2-B88C-FE8DB4F01C63");
            }
        }
        private void AddMultiSelectControl(MultiSelectFormControlSettingsDescriptor setting)
        {
            ValidateSettingType(GetFieldName(setting.Field), setting.Type);

            if (setting.MultiSelectTemplate.TemplateName == nameof(ReadOnlyControlTemplateSelector.MultiSelectTemplate))
            {
                formLayout.Add(CreateMultiSelectReadOnlyObject(setting), this.groupBoxSettings);
            }
            else
            {
                throw new ArgumentException($"{nameof(setting.DropDownTemplate.TemplateName)}: E63A881F-3B4D-47A1-A13C-835EA8A86C61");
            }
        }
        private IReadOnly CreateMultiSelectReadOnlyObject(MultiSelectFormControlSettingsDescriptor setting)
        {
            return(GetValidatable(Type.GetType(setting.MultiSelectTemplate.ModelType)));

            IReadOnly GetValidatable(Type elementType)
            => (IReadOnly)Activator.CreateInstance
            (
                typeof(MultiSelectReadOnlyObject <,>).MakeGenericType
                (
                    typeof(ObservableCollection <>).MakeGenericType(elementType),
                    elementType
                ),
                GetFieldName(setting.Field),
                setting.KeyFields,
                setting.Title,
                setting.StringFormat,
                setting.MultiSelectTemplate,
                this.contextProvider
            );
        }
Ejemplo n.º 7
0
        private IValidatable CreateMultiSelectValidatableObject(MultiSelectFormControlSettingsDescriptor setting)
        {
            return(GetValidatable(Type.GetType(setting.MultiSelectTemplate.ModelType)));

            IValidatable GetValidatable(Type elementType)
            => ValidatableObjectFactory.GetValidatable
            (
                Activator.CreateInstance
                (
                    typeof(MultiSelectValidatableObject <,>).MakeGenericType
                    (
                        typeof(ObservableCollection <>).MakeGenericType(elementType),
                        elementType
                    ),
                    GetFieldName(setting.Field),
                    setting,
                    GetValidationRules(setting),
                    this.contextProvider
                ),
                setting
            );
        }