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); }
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); }
public IActionResult GetDynamicForm(GetDynamicFormRequestModel model) { DynamicFormData data = _dynamicFormService.GetDynamicFormAction(model.requestModelName); if (data == null) { return(NotFound()); } return(Ok(new GetDynamicFormResponseModel() { DynamicFormData = data })); }
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); }
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); }