protected override DriverResult Editor(FileUploadPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper) { var model = new FileUpoadViewModel(); updater.TryUpdateModel(model, Prefix, null, null); part.Guid = Guid.Parse(model.Guid); return(Editor(part, shapeHelper)); }
protected override DriverResult Editor(TaxonomyPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper) { TaxonomyPart existing = _taxonomyService.GetTaxonomyByName(part.Name); if (existing != null && existing.Record != part.Record) { updater.AddModelError("Title", T("A taxonomy with the same name already exists")); } // nothing to display for this part return(null); }
protected override DriverResult Editor(ScriptValidationPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper) { var script = part.Settings.GetModel <ScriptValidationPartSettings>().Script; if (!String.IsNullOrWhiteSpace(script)) { _csharpService.SetParameter("Services", _orchardServices); _csharpService.SetParameter("ContentItem", (dynamic)part.ContentItem); _csharpService.SetParameter("WorkContext", _workContextAccessor.GetContext()); _csharpService.SetFunction("T", (Func <string, string>)(x => T(x).Text)); _csharpService.SetFunction("AddModelError", (Action <string>)(x => updater.AddModelError("Script", T(x)))); _csharpService.Run(script); } return(Editor(part, shapeHelper)); }
public void BuildEditorShape(object model, dynamic root, Orchard.ContentManagement.IUpdateModel updater, string prefix, string displayType, string stereotype, ModelShapeContext parentContext = null) { var context = new ModelEditorShapeContext(model, root, Shape, prefix, displayType, updater, parentContext); BindPlacement(context, displayType, stereotype); foreach (var driver in Drivers) { ModelDriverResult result = null; if (updater != null) { result = driver.UpdateEditor(context); } else { result = driver.BuildEditor(context); } // Null check, there must be a performance advantage to not instancing loads of empty ModelDriverResults if (result != null) { result.Apply(context); } } // Chain sub results? // They are applied to the same base object (as opposed to rendering an entirely new shape with its own zones) foreach (var chain in context.ChainedResults) { BuildEditorShape(chain.Model, chain.Root ?? root, updater, chain.Prefix, chain.DisplayType ?? displayType, stereotype, context); // Fire an event so parent shape can perform work after the update chain.OnCompleted(context); } // Invoke Updated event now all drivers have been executed if (updater != null) { context.InvokeUpdated(); } // Done }
protected override ModelDriverResult Update(SocketEventContext model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { var prefix = FullPrefix(context); var viewModel = new ConnectorBatchOperationViewModel() { BatchCommandList = new[] { new SelectListItem() { Selected = true, Text = "(nothing)", Value = "" }, new SelectListItem() { Selected = false, Text = "Remove", Value = "Delete" }, } }; if (updater != null) { if (updater.TryUpdateModel(viewModel, prefix, null, null)) { if (!String.IsNullOrWhiteSpace(viewModel.BatchCommand)) { context.OnUpdated(updated => { switch (viewModel.BatchCommand) { case "Delete": // Delete all selected foreach (var selector in model.Query.Connectors.State <ConnectorSelector>()) { model.Query.Connectors.Remove(selector.Item1); } break; } }); } } } return(ModelShape("Socket_Creators_BatchOperation", () => shapeHelper.EditorTemplate(TemplateName: "Socket.Creators.BatchOperation", Prefix: prefix, Model: viewModel))); }
// POST protected override DriverResult Editor(ShippingPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper) { updater.TryUpdateModel(part, Prefix, null, null); return(Editor(part, shapeHelper)); }
protected override void Update(SocketEventContext model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { }
protected override ModelDriverResult Update(RecursionPreventedModel model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { return(null); }
protected override DriverResult Editor(ContactFormPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper) { bool success = updater.TryUpdateModel(part, Prefix, null, null); return(Editor(part, shapeHelper)); }
protected override ModelDriverResult Update(ConnectorEventContext model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { var impulses = _impulseService.BuildImpulseShapes(model.Right.Content, context.DisplayType).Concat( _impulseService.BuildImpulseShapes(model.ConnectorContent, context.DisplayType)).ToList(); if (impulses.Count > 0) { var shape = shapeHelper.ImpulsePanel(Impulses: impulses); return(ModelShape("ImpulsePanel", shape)); } return(null); }
protected override void Update(LensViewModel model, Pager viewModel, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { }
protected override ModelDriverResult Update(ConnectorEventContext model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { var prefix = FullPrefix(context); var viewModel = new ConnectorBatchSelectionViewModel(); if (updater != null) { if (updater.TryUpdateModel(viewModel, prefix, null, null)) { if (viewModel.Selected) { model.SocketContext.Query.Connectors.Remove(model.ConnectorContent); // (model.ConnectorContent as ConnectorPart).DeleteWhenLeftPublished = true; // model.SocketContext.Query.Connectors.Attach(model.ConnectorContent,new ConnectorSelector()); } } } return(ModelShape("Connector_Options_BatchSelect", () => shapeHelper.EditorTemplate(TemplateName: "Connector.Options.BatchSelect", Prefix: prefix, Model: viewModel))); }
protected override ModelDriverResult Update(SocketEventContext model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { return(null); }
protected override ModelDriverResult Update(SocketEventContext model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { if (model.Connector.Name != "UserToAddress") { return(null); } var prefix = FullPrefix(context); var viewModel = BuildCreateModel(); if (updater != null && updater.TryUpdateModel(viewModel, prefix, null, null) && !string.IsNullOrWhiteSpace(viewModel.PostalCode)) { var address = _directoryService.CreateAddress(viewModel, updater, prefix); if (address == null) { updater.AddModelError(FullPrefix(context, "PostalCode"), T("Please specify a valid postcode and address")); } else { // Create connector model.Query.Connectors.Add(address.Id, "UserToAddress", null, true); } } return(ModelShape("Socket_Creators_Address", shapeHelper.EditorTemplate(TemplateName: "Socket.Creators.Address", Prefix: prefix, Model: viewModel))); }
protected override void Update(LensViewModel model, LensQueryTextViewModel viewModel, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { updater.TryUpdateModel(model, FullPrefix(context), null, null); }
protected override DriverResult Editor(OrderProductsPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper) { return(Editor(part, shapeHelper)); }
protected override void Update(LensResultsViewModel model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context) { // This model runs after the first LensViewModel, so we've collected filters etc. }