public DynamicEditViewModel Build(DynamicEntityMetadata dynamicEntityMetadata, dynamic editModel, string returnUrl) { var dynamicEditViewModel = new DynamicEditViewModel(); dynamicEditViewModel.Header = dynamicEntityMetadata.EditHeader(); dynamicEditViewModel.TypeName = dynamicEntityMetadata.TypeName(); dynamicEditViewModel.ReturnUrl = returnUrl; dynamicEditViewModel.Item = editModel; dynamicEditViewModel.DynamicUIMethods = dynamicEntityMetadata.GetDynamicMethods(TemplateTypeEnum.Edit).ToList(); foreach (var dynamicPropertyViewModel in GetDynamicPropertyViewModels(dynamicEntityMetadata, editModel)) { var dynamicEditorViewModel = new DynamicEditorViewModel(); dynamicEditorViewModel.ViewModelPropertyName = dynamicPropertyViewModel.ViewModelPropertyName; dynamicEditorViewModel.DynamicEditorName = dynamicPropertyViewModel.DynamicEditorName; dynamicEditorViewModel.DynamicPropertyEditorViewModel = dynamicPropertyViewModel; dynamicEditViewModel.DynamicEditorViewModels.Add(dynamicEditorViewModel); } return(dynamicEditViewModel); }