Exemple #1
0
 private void SetControlViewWithValue(string name, TypeValue type, object defaultValue = null)
 {
     if (_currentConsantInputControl != null)
     {
         _currentConsantInputControl.ValueChanged -= ConstantControlView_ValueChanged;
     }
     ConstantInputGrid.Children.Clear();
     if ((int)type == 0)
     {
         ConstantInputGrid.Children.Add(new TextBlock()
         {
             Text = "Type doesn't allow constant input"
         });
     }
     else
     {
         var formModel = new GenericFormInputModel()
         {
             Description = string.Empty,
             Type        = type,
             Key         = name,
             DisplayName = string.Empty,
         };
         if (defaultValue != null)
         {
             formModel.DefaultValue = defaultValue;
         }
         _currentConsantInputControl = new GenericInputControlView()
         {
             InputModel = formModel,
         };
         _currentConsantInputControl.ValueChanged += ConstantControlView_ValueChanged;
         ConstantInputGrid.Children.Add(_currentConsantInputControl);
     }
 }
Exemple #2
0
        private void UpdatedInputModel(GenericFormInputModel model)
        {
            var suggestions = model.Options;

            if (suggestions.Length == 0 && model.SuggestionHandler != null)
            {
                suggestions = model.SuggestionHandler.GetValues();
            }
            Suggestions = suggestions.ToList();
            if (model.DefaultValue != null)
            {
                if (model.Type == ActionParameterDefinition.TypeValue.Boolean)
                {
                    DefaultBoolValue = (bool)model.DefaultValue;
                }
                else if (model.Type == ActionParameterDefinition.TypeValue.Decimal)
                {
                    DefaultDecimalValue = (decimal)model.DefaultValue;
                }
                else if (model.Type == ActionParameterDefinition.TypeValue.Integer)
                {
                    DefaultIntValue = (int)model.DefaultValue;
                }
                else if (model.Type == ActionParameterDefinition.TypeValue.Password)
                {
                    DefaultPasswordValue = (string)model.DefaultValue;
                }
                else if (model.Type == ActionParameterDefinition.TypeValue.String)
                {
                    DefaultStringValue = (string)model.DefaultValue;
                }
            }
        }
Exemple #3
0
 private void UpdatedInputModel(GenericFormInputModel inputModel)
 {
     if (inputModel.Type == GenericFormInputModel.TypeValue.EntityReference)
     {
         EntityReferences = inputModel.EntityReferenceSuggestionHandler.GetFirstPageValues().ToList();
     }
     SetInitialValue();
 }
Exemple #4
0
        public void RaiseValueChangedEvent(GenericFormInputModel model, object data)
        {
            RoutedEventArgs args = new ValueChangedEventArgs()
            {
                Data  = data,
                Model = model,
            };

            args.RoutedEvent = ValueChangedEvent;
            RaiseEvent(args);
        }
Exemple #5
0
        private void SetModel()
        {
            if (Entity != null && GenericManager != null)
            {
                GenericFormModel model = new GenericFormModel(string.Empty);
                foreach (var item in Entity.Attributes)
                {
                    var type         = GetTypeFromAttribute(item);
                    var defaultValue = InitialValues != null && InitialValues.ContainsKey(item.LogicalName)
                            ? InitialValues[item.LogicalName]
                            : null;

                    var attribute = new GenericFormInputModel()
                    {
                        Key          = item.LogicalName,
                        DisplayName  = item.DisplayName,
                        Description  = item.Description,
                        IsMandatory  = item.IsMandatory,
                        DefaultValue = defaultValue,
                        Type         = type,
                    };
                    if (type == GenericFormInputModel.TypeValue.EntityReference)
                    {
                        var relatedEntity = Relationships.First(k => k.RelatedEntity == Entity.LogicalName && k.RelatedAttribute == attribute.Key);
                        attribute.EntityReferenceSuggestionHandler =
                            new EntityReferenceHandler(relatedEntity.MainEntity, GenericManager.RetrieveAllHandler, GenericManager.RetrieveHandler);
                    }
                    else if (type == GenericFormInputModel.TypeValue.OptionSet)
                    {
                        attribute.OptionSetValueOptions = item.Options.Select(k => new DD.Lab.Wpf.Models.Inputs.OptionSetValue()
                        {
                            DisplayName = k.DisplayName,
                            Value       = k.Value
                        }).ToArray();
                    }
                    else if (type == GenericFormInputModel.TypeValue.State)
                    {
                        var options = new List <DD.Lab.Wpf.Models.Inputs.OptionSetValue>();
                        options.Add(new DD.Lab.Wpf.Models.Inputs.OptionSetValue()
                        {
                            DisplayName = "Enabled", Value = 1
                        });
                        options.Add(new DD.Lab.Wpf.Models.Inputs.OptionSetValue()
                        {
                            DisplayName = "Disabled", Value = 0
                        });
                        attribute.OptionSetValueOptions = options.ToArray();
                    }
                    model.Attributes.Add(attribute);
                }
                FormModel = model;
            }
        }
Exemple #6
0
        private void SetStringSuggestions(GenericFormInputModel model)
        {
            var suggestions = new string[] { };

            if (model.StringSuggestionOptions != null)
            {
                suggestions = model.StringSuggestionOptions;
            }
            if (suggestions.Length == 0 && model.SuggestionHandler != null)
            {
                suggestions = model.SuggestionHandler.GetValues();
            }
            Suggestions = suggestions.ToList();
        }
Exemple #7
0
 private void SetInputModel(GenericFormInputModel data)
 {
     _viewModel.InputModel = data;
 }
Exemple #8
0
        public static GenericFormModel ToGenericInputModel(this MethodParameterViewModel parameter, string formDescription, OptionSetValue[] options)
        {
            var model = new GenericFormModel(formDescription);

            model.AddAttribute(
                GenericFormInputModel.TypeValue.String,
                nameof(MethodParameterViewModel.Name),
                nameof(MethodParameterViewModel.Name),
                nameof(MethodParameterViewModel.Name),
                true,
                parameter.Name);


            var directionAttr = new GenericFormInputModel()
            {
                DisplayName           = nameof(MethodParameterViewModel.Direction),
                Key                   = nameof(MethodParameterViewModel.Direction),
                Description           = nameof(MethodParameterViewModel.Direction),
                IsMandatory           = true,
                Type                  = GenericFormInputModel.TypeValue.OptionSet,
                OptionSetValueOptions = new List <OptionSetValue>()
                {
                    { new OptionSetValue(MethodParameter.ParameterDirection.Input.ToString(), (int)MethodParameter.ParameterDirection.Input) },
                    { new OptionSetValue(MethodParameter.ParameterDirection.Output.ToString(), (int)MethodParameter.ParameterDirection.Output) }
                }.ToArray(),
                DefaultValue = ((int)parameter.Direction) > 0 ? new OptionSetValue((int)parameter.Direction) : null
            };


            var typeAttr = new GenericFormInputModel()
            {
                DisplayName           = nameof(MethodParameterViewModel.Type),
                Key                   = nameof(MethodParameterViewModel.Type),
                Description           = nameof(MethodParameterViewModel.Type),
                IsMandatory           = true,
                Type                  = GenericFormInputModel.TypeValue.OptionSet,
                OptionSetValueOptions = options,
                DefaultValue          = ((int)parameter.Type) > 0 ? new OptionSetValue((int)parameter.Type) : null
            };

            var enumAttr = new GenericFormInputModel()
            {
                DisplayName           = nameof(MethodParameterViewModel.EnumerableType),
                Key                   = nameof(MethodParameterViewModel.EnumerableType),
                Description           = nameof(MethodParameterViewModel.EnumerableType),
                IsMandatory           = false,
                Type                  = GenericFormInputModel.TypeValue.OptionSet,
                OptionSetValueOptions = options,
                DefaultValue          = ((int)parameter.EnumerableType) > 0 ? new OptionSetValue((int)parameter.EnumerableType) : null
            };


            var dicKeyAttr = new GenericFormInputModel()
            {
                DisplayName           = nameof(MethodParameterViewModel.DictionaryKeyType),
                Key                   = nameof(MethodParameterViewModel.DictionaryKeyType),
                Description           = nameof(MethodParameterViewModel.DictionaryKeyType),
                IsMandatory           = false,
                Type                  = GenericFormInputModel.TypeValue.OptionSet,
                OptionSetValueOptions = options,
                DefaultValue          = ((int)parameter.DictionaryKeyType) > 0 ? new OptionSetValue((int)parameter.DictionaryKeyType) : null
            };


            var dicValueAttr = new GenericFormInputModel()
            {
                DisplayName           = nameof(MethodParameterViewModel.DictionaryValueType),
                Key                   = nameof(MethodParameterViewModel.DictionaryValueType),
                Description           = nameof(MethodParameterViewModel.DictionaryValueType),
                IsMandatory           = false,
                Type                  = GenericFormInputModel.TypeValue.OptionSet,
                OptionSetValueOptions = options,
                DefaultValue          = ((int)parameter.DictionaryValueType) > 0 ? new OptionSetValue((int)parameter.DictionaryValueType) : null
            };

            model.Attributes.Add(directionAttr);
            model.Attributes.Add(typeAttr);
            model.Attributes.Add(enumAttr);
            model.Attributes.Add(dicKeyAttr);
            model.Attributes.Add(dicValueAttr);

            return(model);
        }
Exemple #9
0
        private void UpdatedInputModel(GenericFormInputModel model)
        {
            if (model.DefaultValue != null)
            {
                if (model.Type == GenericFormInputModel.TypeValue.Bool)
                {
                    DefaultBoolValue = (bool)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.Decimal)
                {
                    decimal decimalValue;
                    if (model.DefaultValue is double)
                    {
                        decimalValue = Convert.ToDecimal(model.DefaultValue);
                    }
                    else
                    {
                        decimalValue = (decimal)model.DefaultValue;
                    }
                    DefaultDecimalValue = decimalValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.Double)
                {
                    DefaultDoubleValue = (double)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.Int)
                {
                    int valueInt = model.DefaultValue is Int64
                        ? Convert.ToInt32(model.DefaultValue)
                        : (int)model.DefaultValue;

                    DefaultIntValue = valueInt;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.Password)
                {
                    DefaultPasswordValue = (string)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.String)
                {
                    DefaultStringValue = (string)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.MultilineString)
                {
                    DefaultStringValue = (string)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.Guid)
                {
                    DefaultStringValue = model.DefaultValue.ToString();
                }
                else if (model.Type == GenericFormInputModel.TypeValue.DateTime)
                {
                    DefaultDateTimeValue = (DateTime)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.EntityReference)
                {
                    DefaultEntityReferenceValue = (EntityReferenceValue)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.OptionSet)
                {
                    DefaultOptionSetValue = (OptionSetValue)model.DefaultValue;
                }
                else if (model.Type == GenericFormInputModel.TypeValue.State)
                {
                    DefaultOptionSetValue = (OptionSetValue)model.DefaultValue;
                }
                else
                {
                    throw new NotImplementedException();
                }
            }
            if (model.Type == GenericFormInputModel.TypeValue.OptionSet ||
                model.Type == GenericFormInputModel.TypeValue.State)
            {
                SetOptionSetSuggestions(model);
            }

            _view.ClearControl();
            if (model.Type == GenericFormInputModel.TypeValue.String)
            {
                if (model.IsCustomModule)
                {
                    _view.AddCustomModuleControl(WpfEventManager, DefaultStringValue, model.CustomModuleName);
                }
                else
                {
                    _view.AddStringControl(WpfEventManager, DefaultStringValue, Suggestions);
                }
            }
            else if (model.Type == GenericFormInputModel.TypeValue.Bool)
            {
                _view.AddBooleanControl(WpfEventManager, DefaultBoolValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.Decimal)
            {
                _view.AddDecimalControl(WpfEventManager, DefaultDecimalValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.Double)
            {
                _view.AddDoubleControl(WpfEventManager, DefaultDoubleValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.Int)
            {
                _view.AddIntegerControl(WpfEventManager, DefaultIntValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.Password)
            {
                _view.AddPasswordControl(WpfEventManager);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.MultilineString)
            {
                _view.AddMultilineStringControl(WpfEventManager, DefaultStringValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.Guid)
            {
                _view.AddGuidControl(WpfEventManager, DefaultStringValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.DateTime)
            {
                _view.AddDateTimeControl(WpfEventManager, DefaultDateTimeValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.EntityReference)
            {
                _view.AddEntityReferenceControl(WpfEventManager, DefaultEntityReferenceValue);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.OptionSet)
            {
                _view.AddOptionSetControl(WpfEventManager, DefaultOptionSetValue, OptionSetOptions);
            }
            else if (model.Type == GenericFormInputModel.TypeValue.State)
            {
                _view.AddOptionSetControl(WpfEventManager, DefaultOptionSetValue, OptionSetOptions);
            }
            else
            {
                throw new NotImplementedException();
            }
        }
Exemple #10
0
 private void SetOptionSetSuggestions(GenericFormInputModel model)
 {
     OptionSetOptions = model.OptionSetValueOptions.ToList();
 }