public virtual ActionResult Create(string returnUrl)
        {
            dynamic createModel = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.CreateNewObject();

            ControllerManager.TryUpdateModel(createModel);
            ControllerManager.ModelState().Clear();
            var viewModel = new DynamicCreateViewModel(DynamicEntitySearcher.DynamicEntityMetadata, createModel, RequestManager.QueryStringDictionary, returnUrl);

            return(ControllerManager.View("DynamicCreate", viewModel));
        }
        public DynamicCreateViewModel Build(DynamicEntityMetadata dynamicEntityMetadata, dynamic createModel, string returnUrl)
        {
            var dynamicCreateViewModel = new DynamicCreateViewModel();

            dynamicCreateViewModel.Header           = dynamicEntityMetadata.CreateHeader();
            dynamicCreateViewModel.TypeName         = dynamicEntityMetadata.TypeName();
            dynamicCreateViewModel.ReturnUrl        = returnUrl;
            dynamicCreateViewModel.Item             = createModel;
            dynamicCreateViewModel.DynamicUIMethods = dynamicEntityMetadata.GetDynamicMethods(TemplateTypeEnum.Create).ToList();
            foreach (var dynamicPropertyEditorViewModel in GetDynamicPropertyViewModels(dynamicEntityMetadata, createModel))
            {
                var dynamicEditorViewModel = new DynamicEditorViewModel();
                dynamicEditorViewModel.ViewModelPropertyName          = dynamicPropertyEditorViewModel.ViewModelPropertyName;
                dynamicEditorViewModel.DynamicEditorName              = dynamicPropertyEditorViewModel.DynamicEditorName;
                dynamicEditorViewModel.DynamicPropertyEditorViewModel = dynamicPropertyEditorViewModel;
                dynamicCreateViewModel.DynamicEditorViewModels.Add(dynamicEditorViewModel);
            }

            return(dynamicCreateViewModel);
        }
        public virtual ActionResult Create(FormCollection formCollection, string returnUrl)
        {
            dynamic createModel = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.CreateNewObject();
            var     viewModel   = new DynamicCreateViewModel(DynamicEntitySearcher.DynamicEntityMetadata, createModel, RequestManager.QueryStringDictionary, returnUrl);

            if (ControllerManager.TryUpdateModel(viewModel.Item, "Item"))
            {
                DynamicEntitySearcher.DynamicEntityMetadata.LoadCreateIncludes(createModel, DynamicRepository, DynamicEntitySearcher.DynamicEntityMetadata.GetInstanceIncludes().ToArray());
                DynamicEntitySearcher.DynamicEntityMetadata.InvokeMethods <DynamicMethodPreSaveCreateAttribute>(createModel);
                DynamicRepository.CreateItem(DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.EntityType, viewModel.Item);
                if (!string.IsNullOrWhiteSpace(returnUrl))
                {
                    if (returnUrl.Contains("ScopeIdentity"))
                    {
                        var keyValue = DynamicEntitySearcher.DynamicEntityMetadata.KeyValue(createModel);
                        returnUrl = returnUrl.Replace("ScopeIdentity", keyValue.ToString());
                    }
                    return(ControllerManager.Redirect(returnUrl));
                }
                return(ControllerManager.RedirectToAction("Index", DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.TypeName, new { typeName = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.TypeName }));
            }
            return(ControllerManager.View("DynamicCreate", viewModel));
        }
        public virtual ActionResult Create(FormCollection formCollection, string returnUrl)
        {
            dynamic createModel = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.CreateNewObject();
            var viewModel = new DynamicCreateViewModel(DynamicEntitySearcher.DynamicEntityMetadata, createModel, RequestManager.QueryStringDictionary, returnUrl);

            if (ControllerManager.TryUpdateModel(viewModel.Item, "Item"))
            {
                DynamicEntitySearcher.DynamicEntityMetadata.LoadCreateIncludes(createModel, DynamicRepository, DynamicEntitySearcher.DynamicEntityMetadata.GetInstanceIncludes().ToArray());
                DynamicEntitySearcher.DynamicEntityMetadata.InvokeMethods<DynamicMethodPreSaveCreateAttribute>(createModel);
                DynamicRepository.CreateItem(DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.EntityType, viewModel.Item);
                if (!string.IsNullOrWhiteSpace(returnUrl))
                {
                    if (returnUrl.Contains("ScopeIdentity"))
                    {
                        var keyValue = DynamicEntitySearcher.DynamicEntityMetadata.KeyValue(createModel);
                        returnUrl = returnUrl.Replace("ScopeIdentity", keyValue.ToString());
                    }
                    return ControllerManager.Redirect(returnUrl);
                }
                return ControllerManager.RedirectToAction("Index", DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.TypeName, new { typeName = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.TypeName });
            }
            return ControllerManager.View("DynamicCreate", viewModel);
        }
 public virtual ActionResult Create(string returnUrl)
 {
     dynamic createModel = DynamicEntitySearcher.DynamicEntityMetadata.EntityMetadata.CreateNewObject();
     ControllerManager.TryUpdateModel(createModel);
     ControllerManager.ModelState().Clear();
     var viewModel = new DynamicCreateViewModel(DynamicEntitySearcher.DynamicEntityMetadata, createModel, RequestManager.QueryStringDictionary, returnUrl);
     return ControllerManager.View("DynamicCreate", viewModel);
 }