예제 #1
0
 public AddUseCaseEditorParameterCommand(UseCaseEditorControlViewModel vm, ParameterDirection direction)
 {
     Initialize((input) =>
     {
         try
         {
             var requestModel = new GenericFormModel("Add new parameter");
             requestModel.AddAttribute(ActionParameterDefinition.TypeValue.String,
                                       Definitions.UseCaseEditorDefinitions.UseCaseModelAttibutes.Type,
                                       "Type",
                                       "Type of the parameter",
                                       DataParameter.GetUseCaseParameterTypesList().ToArray());
             requestModel.AddAttribute(
                 ActionParameterDefinition.TypeValue.String,
                 Definitions.UseCaseEditorDefinitions.UseCaseModelAttibutes.Name,
                 "Name",
                 "Name of the parameter");
             requestModel.AddAttribute(ActionParameterDefinition.TypeValue.String,
                                       Definitions.UseCaseEditorDefinitions.UseCaseModelAttibutes.EnumerableType,
                                       "Enumerable type",
                                       "If type=Enumerable, this is the type of the enumerable",
                                       DataParameter.GetUseCaseParameterTypesList().ToArray());
             requestModel.AddAttribute(
                 ActionParameterDefinition.TypeValue.String,
                 Definitions.UseCaseEditorDefinitions.UseCaseModelAttibutes.DictionaryKeyType,
                 "Dictionary key type",
                 "If type=Dictionary, this is the type of the key",
                 DataParameter.GetUseCaseParameterTypesList().ToArray());
             requestModel.AddAttribute(ActionParameterDefinition.TypeValue.String,
                                       Definitions.UseCaseEditorDefinitions.UseCaseModelAttibutes.DictionaryValueType,
                                       "Dictionary value type",
                                       "If type=Dictionary, this is the type of the value",
                                       DataParameter.GetUseCaseParameterTypesList().ToArray());
             vm.GenericFormRequestId = Guid.NewGuid();
             if (direction == ParameterDirection.Input)
             {
                 vm.CurrentFormInputActionType = UseCaseEditorControlViewModel.ActionType.AddInputParameter;
             }
             else if (direction == ParameterDirection.Output)
             {
                 vm.CurrentFormInputActionType = UseCaseEditorControlViewModel.ActionType.AddOutputParameter;
             }
             vm.EventManager.RaiseOnGenericFormInputRequestedEvent(vm.GenericFormRequestId, requestModel);
             vm.RaiseCanExecuteCommandChanged();
         }
         catch (Exception ex)
         {
             vm.RaiseError(ex.Message);
         }
     }, data =>
     {
         return(direction == ParameterDirection.Input ||
                (direction == ParameterDirection.Output && vm.UseCase?.OutputParameters.Count == 0));
     });
 }
예제 #2
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);
        }