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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 4
0
        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
        }
Ejemplo n.º 5
0
        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)));
        }
Ejemplo n.º 6
0
 // POST
 protected override DriverResult Editor(ShippingPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper)
 {
     updater.TryUpdateModel(part, Prefix, null, null);
     return(Editor(part, shapeHelper));
 }
Ejemplo n.º 7
0
 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));
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
 protected override void Update(LensViewModel model, Pager viewModel, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context)
 {
 }
Ejemplo n.º 12
0
        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)));
        }
Ejemplo n.º 13
0
 protected override ModelDriverResult Update(SocketEventContext model, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context)
 {
     return(null);
 }
Ejemplo n.º 14
0
        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)));
        }
Ejemplo n.º 15
0
 protected override void Update(LensViewModel model, LensQueryTextViewModel viewModel, dynamic shapeHelper, Orchard.ContentManagement.IUpdateModel updater, ModelShapeContext context)
 {
     updater.TryUpdateModel(model, FullPrefix(context), null, null);
 }
Ejemplo n.º 16
0
 protected override DriverResult Editor(OrderProductsPart part, Orchard.ContentManagement.IUpdateModel updater, dynamic shapeHelper)
 {
     return(Editor(part, shapeHelper));
 }
Ejemplo n.º 17
0
 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.
 }