private CommandStateBase Controller_PrepareCommandState(IWfProcess process)
        {
            DynamicFormCommandState state = null;

            //从流程上下文中获取数据。在这里通过流程上下文保存表单数据,省去了单独建表存储的工作
            //var data = DynamicFormDataAdapter.Instance.Load(process.ResourceID, false); //(string)process.RootProcess.Context["appData"];;

            string strData = (string)process.RootProcess.Context["appData"];

            if (strData.IsNullOrEmpty())
            {
                DynamicFormData data = new DynamicFormData();

                //data.Properties = null;

                state = new DynamicFormCommandState()
                {
                    Data = data
                };

                process.GenerateCandidatesFromResources();
            }
            else
            {
                var data = SerializationHelper.DeserializeStringToObject(strData, SerializationFormatterType.Binary) as DynamicFormData;
                return(new DynamicFormCommandState()
                {
                    Data = data
                });
            }

            return(state);
        }
Exemplo n.º 2
0
        public void GetDynamicFormActionAsync_ReturnsDynamicFormDataIfAModelWithNameModelNameExistsAndHasADynamicFormAttribute()
        {
            // Arrange
            Mock <Assembly> mockAssembly = new Mock <Assembly>();

            mockAssembly.Setup(a => a.ExportedTypes).Returns(new Type[] { _testType });

            Mock <IAssemblyService> mockAssemblyService = new Mock <IAssemblyService>();

            mockAssemblyService.
            Setup(a => a.GetReferencingAssemblies(It.Is <string>(s => s == _testAssemblyName))).
            Returns(new Assembly[] { mockAssembly.Object });

            Mock <IDynamicFormBuilder> mockDynamicFormBuilder = new Mock <IDynamicFormBuilder>();

            mockDynamicFormBuilder.
            Setup(d => d.BuildDynamicFormData(It.Is <TypeInfo>(ti => ti == _testType.GetTypeInfo()))).
            Returns(_testDynamicFormData);

            DynamicFormService dynamicFormService = new DynamicFormService(mockDynamicFormBuilder.Object,
                                                                           mockAssemblyService.Object);

            // Act
            DynamicFormData result = dynamicFormService.GetDynamicFormAction(_testTypeName);

            // Assert
            mockAssembly.VerifyAll();
            mockAssemblyService.VerifyAll();
            mockDynamicFormBuilder.VerifyAll();
            Assert.NotNull(result);
        }
Exemplo n.º 3
0
        public IActionResult GetDynamicForm(GetDynamicFormRequestModel model)
        {
            DynamicFormData data = _dynamicFormService.GetDynamicFormAction(model.requestModelName);

            if (data == null)
            {
                return(NotFound());
            }

            return(Ok(new GetDynamicFormResponseModel()
            {
                DynamicFormData = data
            }));
        }
Exemplo n.º 4
0
        public void BuildDynamicFormData_CreatesDynamicFormDataFromTypeInfo()
        {
            // Arrange
            DynamicFormBuilder        dynamicFormsBuilder = new DynamicFormBuilder();
            Mock <DynamicFormBuilder> mockBuilder         = new Mock <DynamicFormBuilder>();

            mockBuilder.Setup(b => b.BuildDynamicControlData(It.IsAny <PropertyInfo>())).Returns(new DynamicControlData());
            mockBuilder.CallBase = true;

            // Act
            DynamicFormData result = mockBuilder.Object.BuildDynamicFormData(typeof(DummyRequestModel).GetTypeInfo());

            // Assert
            Assert.NotNull(result);
            mockBuilder.VerifyAll();
            Assert.Equal(3, result.DynamicControlData.Count);
            Assert.Equal(DummyStrings.Dummy, result.ErrorMessage);
            Assert.Equal(DummyStrings.Dummy, result.ButtonText);
        }
Exemplo n.º 5
0
        public void GetDynamicFormActionAsync_ReturnsNullIfAModelWithNameModelNameDoesNotExist()
        {
            // Arrange
            Mock <Assembly> mockAssembly = new Mock <Assembly>();

            mockAssembly.Setup(a => a.ExportedTypes).Returns(new Type[] { _testType });

            Mock <IAssemblyService> mockAssemblyService = new Mock <IAssemblyService>();

            mockAssemblyService.
            Setup(a => a.GetReferencingAssemblies(It.Is <string>(s => s == _testAssemblyName))).
            Returns(new Assembly[] { mockAssembly.Object });

            DynamicFormService dynamicFormService = new DynamicFormService(null,
                                                                           mockAssemblyService.Object);

            // Act
            DynamicFormData result = dynamicFormService.GetDynamicFormAction(_testInvalidTypeName);

            // Assert
            mockAssembly.VerifyAll();
            mockAssemblyService.VerifyAll();
            Assert.Null(result);
        }