public override async Task<IDisplayResult> EditAsync(ContentItem model, IUpdateModel updater)
        {
            // This method can get called when a new content item is created, at that point
            // the query string contains a ListPart.ContainerId value, or when an
            // existing content item has ContainedPart value. In both cases the hidden field
            // needs to be rendered in the edit form to maintain the relationship with the parent.

            if (model.Is<ContainedPart>())
            {
                return BuildShape(model.As<ContainedPart>().ListContentItemId);
            }

            var viewModel = new EditContainedPartViewModel();
            if ( await updater.TryUpdateModelAsync(viewModel, "ListPart"))
            {
                // We are editing a content item that needs to be added to a container
                // so we render the container id as part of the form

                return BuildShape(viewModel.ContainerId);
            }

            return null;
        }
Beispiel #2
0
        public async Task FilterAsync(IQuery<ContentItem> query, ListContentsViewModel model, PagerParameters pagerParameters, IUpdateModel updateModel)
        {
            var viewModel = new ListPartContentAdminFilterModel();
            if(await updateModel.TryUpdateModelAsync(viewModel, ""))
            {
                // Show list content items 
                if (viewModel.ShowListContentTypes)
                {
                    var listableTypes = _contentDefinitionManager
                        .ListTypeDefinitions()
                        .Where(x =>
                            x.Parts.Any(p =>
                                p.PartDefinition.Name == nameof(ListPart)))
                        .Select(x => x.Name);

                    query.With<ContentItemIndex>(x => x.ContentType.IsIn(listableTypes));
                }

                // Show contained elements for the specified list
                else if(viewModel.ListContentItemId != 0)
                {
                    query.With<ContainedPartIndex>(x => x.ListContentItemId == viewModel.ListContentItemId);
                }
            }
        }
 public override IEnumerable<TemplateViewModel> PartEditorUpdate(ContentPartDefinitionBuilder builder, IUpdateModel updateModel)
 {
     var model = new ContentPartSettings();
     updateModel.TryUpdateModelAsync(model, "ContentPartSettings").Wait();
     builder.Attachable(model.Attachable);
     builder.WithDescription(model.Description);
     yield return DefinitionTemplate(model);
 }
        public override async Task <IDisplayResult> UpdateAsync(AliasPart model, IUpdateModel updater)
        {
            var settings = GetAliasPartSettings(model);

            await updater.TryUpdateModelAsync(model, Prefix, t => t.Alias);

            await ValidateAsync(model, updater);

            return(Edit(model));
        }
        public override async Task <IDisplayResult> UpdateAsync(ValuesField field, IUpdateModel updater, UpdateFieldEditorContext context)
        {
            var model = new EditValuesFieldViewModel();

            await updater.TryUpdateModelAsync(model, Prefix, m => m.Data);

            field.Data = JsonConvert.DeserializeObject <List <string> >(model.Data);

            return(Edit(field, context));
        }
        public override async Task <IDisplayResult> UpdateAsync(PersonPart part, IUpdateModel updater, UpdatePartEditorContext context)
        {
            var viewModel = new PersonPartViewModel();
            await updater.TryUpdateModelAsync(viewModel, Prefix);

            part.BirthDateUtc = viewModel.BirthDateUtc;
            part.Name         = viewModel.Name;
            part.Handedness   = viewModel.Handedness;
            return(Edit(part, context));
        }
        public override async Task <IDisplayResult> UpdateAsync(MarkdownBodyPart model, IUpdateModel updater)
        {
            var viewModel = new MarkdownBodyPartViewModel();

            await updater.TryUpdateModelAsync(viewModel, Prefix, t => t.Source);

            model.Markdown = viewModel.Source;

            return(Edit(model));
        }
        private async Task <PagerSlim> GetPagerAsync(IUpdateModel updater, ListPart part)
        {
            var settings = GetSettings(part);
            PagerSlimParameters pagerParameters = new PagerSlimParameters();
            await updater.TryUpdateModelAsync(pagerParameters);

            PagerSlim pager = new PagerSlim(pagerParameters, settings.PageSize);

            return(pager);
        }
Beispiel #9
0
        private async Task <PagerSlim> GetPagerAsync(IUpdateModel updater, CrossReferencePart part, string partName)
        {
            var settings = GetSettings(part, partName);
            PagerSlimParameters pagerParameters = new PagerSlimParameters();
            await updater.TryUpdateModelAsync(pagerParameters);

            PagerSlim pager = new PagerSlim(pagerParameters, settings.PageSize);

            return(pager);
        }
        public override async Task <IDisplayResult> UpdateAsync(HtmlBodyPart model, IUpdateModel updater, UpdatePartEditorContext context)
        {
            var viewModel = new HtmlBodyPartViewModel();

            await updater.TryUpdateModelAsync(viewModel, Prefix, t => t.Source);

            model.Html = viewModel.Source;

            return(Edit(model, context));
        }
Beispiel #11
0
 public override async Task<bool> ValidateModelAsync(UserRegistration registration, IUpdateModel updater)
 {
     return await updater.TryUpdateModelAsync(new RegisterViewModel
     {
         UserName = registration.UserName,
         Email = registration.Email,
         Password = registration.Password,
         ConfirmPassword = registration.ConfirmPassword
     });
 }
Beispiel #12
0
        private async Task <PagerSlim> GetPagerAsync(IUpdateModel updater, TaxonomyPart part)
        {
            //var settings = GetSettings(part);
            PagerSlimParameters pagerParameters = new PagerSlimParameters();
            await updater.TryUpdateModelAsync(pagerParameters);

            PagerSlim pager = new PagerSlim(pagerParameters, 10);

            return(pager);
        }
Beispiel #13
0
 public override async Task <bool> ValidateModelAsync(EditProfileViewModel viewModel, IUpdateModel updater)
 {
     return(await updater.TryUpdateModelAsync(new EditProfileViewModel()
     {
         DisplayName = viewModel.DisplayName,
         Location = viewModel.Location,
         Biography = viewModel.Biography,
         Url = viewModel.Url
     }));
 }
Beispiel #14
0
        public override async Task <IDisplayResult> UpdateAsync(AliasPart model, IUpdateModel updater, UpdatePartEditorContext context)
        {
            await updater.TryUpdateModelAsync(model, Prefix, t => t.Alias);

            await foreach (var item in model.ValidateAsync(S, _session))
            {
                updater.ModelState.BindValidationResult(Prefix, item);
            }

            return(Edit(model, context));
        }
        public override async Task <IDisplayResult> UpdateAsync(MultiSelectField field, IUpdateModel updater, UpdateFieldEditorContext context)
        {
            var model = new EditMultiSelectFieldViewModel();

            if (await updater.TryUpdateModelAsync(model, Prefix, m => m.SelectedValues))
            {
                field.SelectedValues = model.SelectedValues;
            }

            return(Edit(field, context));
        }
        public async override Task <IDisplayResult> UpdateAsync(DataTablePart part, IUpdateModel updater)
        {
            DataTablePartViewModel viewModel = new DataTablePartViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, Prefix))
            {
                part.JsonData = viewModel.JsonData;
            }

            return(Edit(part));
        }
Beispiel #17
0
 public override async Task <IDisplayResult> UpdateAsync(ISite model, PublishSetting section, IUpdateModel updater, BuildEditorContext context)
 {
     if (groupId == context.GroupId)
     {
         if (!await updater.TryUpdateModelAsync(section, Prefix))
         {
             return(null);
         }
     }
     return(await EditAsync(section, context));
 }
Beispiel #18
0
        public async override Task <IDisplayResult> UpdateAsync(GalleryPart part, IUpdateModel updater)
        {
            var viewModel = new GalleryPartEditViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, Prefix))
            {
                part.MediaItems = JsonConvert.DeserializeObject <GalleryPartItem[]>(viewModel.MediaItems);
            }

            return(Edit(part));
        }
        public async override Task <IDisplayResult> UpdateAsync(SubscriptionAccessPart part, IUpdateModel updater)
        {
            var model = new SubscriptionAccessPartViewModel();

            if (await updater.TryUpdateModelAsync(model, Prefix))
            {
                part.SubscriptionSelection = model.SubscriptionSelection;
            }

            return(Edit(part));
        }
        public override async Task <IDisplayResult> UpdateAsync(LabelPart part, IUpdateModel updater, UpdatePartEditorContext context)
        {
            var viewModel = new LabelPartEditViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, Prefix))
            {
                part.For = viewModel.For?.Trim();
            }

            return(Edit(part, context));
        }
Beispiel #21
0
        public override async Task <IDisplayResult> UpdateAsync(TaxonomyTermPickerField field, IUpdateModel updater,
                                                                UpdateFieldEditorContext context)
        {
            //"#metadata_FaqWidget_TaxonomyTermPicker .4ffz2b0z1zwjqw0c7dz90k1fnm"

            var vm = new TaxonomyTermPickerFieldViewModel();

            if (await updater.TryUpdateModelAsync(vm, Prefix))
            {
                var termContentItemIds = new List <TaxonomyTermIdentifier>();
                var selectedTerms      = vm.ModelTermEntries.Where(x => x.Selected).ToList();
                // var selectedTerms =  vm.AvailableTaxonomies.SelectMany(x=> x.Terms).Where(x => x.Selected).ToList();



                if (selectedTerms.Any())
                {
                    // var taxonomy = await _contentManager.GetAsync(field.TaxonomyContentItemId, VersionOptions.Latest);
                    foreach (var selectedTerm in selectedTerms)
                    {
                        var boundtaxonomyId = selectedTerm.TermContentItemId; //  selectedTerm.BoundTaxonomyId;
                        // var taxonomy = await _contentManager.GetAsync(boundtaxonomyId, VersionOptions.Latest);

                        //var termContentItem =GetTermContentItem(selectedTerm, taxonomy);
                        //if (termContentItem != null)
                        // {
                        termContentItemIds.Add(new TaxonomyTermIdentifier()
                        {
                            TaxonomyContentItemId = boundtaxonomyId,
                            TermContentItemId     = selectedTerm.TermContentItemId
                        }
                                               );

                        // }
                    }
                }

                field.TermContentItemEntries = termContentItemIds;

//                if (settings.Unique && !String.IsNullOrEmpty(model.UniqueValue))
//                {
//                    field.TermContentItemIds = new[] { model.UniqueValue };
//                }
//
//                if (settings.Required && field.TermContentItemIds.Length == 0)
//                {
//                    updater.ModelState.AddModelError(
//                        nameof(EditTaxonomyFieldViewModel.TermEntries),
//                        S["A value is required for '{0}'", context.PartFieldDefinition.Name]);
//                }
            }

            return(Edit(field, context));
        }
        public async override Task <IDisplayResult> UpdateAsync(FormInputElementPart part, IUpdateModel updater)
        {
            var viewModel = new FormInputElementPartEditViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, Prefix))
            {
                part.Name = viewModel.Name?.Trim();
            }

            return(Edit(part));
        }
Beispiel #23
0
        public override async Task <IDisplayResult> UpdateAsync(PoiPart part, IUpdateModel updater, UpdatePartEditorContext context)
        {
            var viewModel = new PoiPartEditViewModel();

            await updater.TryUpdateModelAsync(viewModel, Prefix, t => t.Latitude, t => t.Longitude);

            part.Latitude  = viewModel.Latitude;
            part.Longitude = viewModel.Longitude;

            return(Edit(part, context));
        }
        public async override Task <IDisplayResult> UpdateAsync(ValidationPart part, IUpdateModel updater)
        {
            var viewModel = new ValidationPartEditViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, Prefix))
            {
                part.For = viewModel.For?.Trim();
            }

            return(Edit(part));
        }
Beispiel #25
0
        public override async Task <IDisplayResult> UpdateAsync(ContentItem model, IUpdateModel updater)
        {
            var viewModel = new EditContainedPartViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, nameof(ListPart)) && viewModel.ContainerId != null)
            {
                model.Alter <ContainedPart>(x => x.ListContentItemId = viewModel.ContainerId);
            }

            return(await base.UpdateAsync(model, updater));
        }
//
        public override async Task <IDisplayResult> UpdateAsync(BookMarkActionPart model, IUpdateModel updater, UpdatePartEditorContext context)
        {
            //nothing to update. Only adding so favoritepart is added to json so that summary display type is called
//            var settings = GetPartSettings(model);
//
//            await updater.TryUpdateModelAsync(model, Prefix, t => t.IsFavorite);

            await updater.TryUpdateModelAsync(model, Prefix, t => t.Title, t => t.Icon);

            return(Edit(model, context));
        }
        public override async Task <IDisplayResult> UpdateAsync(PricePart pricePart, IUpdateModel updater, UpdatePartEditorContext context)
        {
            var updateModel = new PricePartViewModel();

            if (await updater.TryUpdateModelAsync(updateModel, Prefix, t => t.PriceValue, t => t.PriceCurrency))
            {
                pricePart.Price = _moneyService.Create(updateModel.PriceValue, updateModel.PriceCurrency);
            }

            return(Edit(pricePart, context));
        }
Beispiel #28
0
        public override async Task <IDisplayResult> UpdateAsync(ContentPermissionsPart model, IUpdateModel updater, UpdatePartEditorContext context)
        {
            await updater.TryUpdateModelAsync(model, Prefix, m => m.Enabled, m => m.Roles);

            if (!model.Enabled)
            {
                model.Roles = Array.Empty <string>();
            }

            return(Edit(model, context));
        }
        public override async Task <IDisplayResult> UpdateAsync(Query model, IUpdateModel updater)
        {
            await updater.TryUpdateModelAsync(model, Prefix, m => m.Name, m => m.Source);

            if (String.IsNullOrEmpty(model.Name))
            {
                updater.ModelState.AddModelError(nameof(model.Name), S["Name is required"]);
            }

            return(await EditAsync(model, updater));
        }
Beispiel #30
0
        public async override Task <IDisplayResult> UpdateAsync(SubscriptionGroupPart part, IUpdateModel updater)
        {
            var model = new SubscriptionGroupPartEditViewModel();

            if (await updater.TryUpdateModelAsync(model, Prefix))
            {
                part.Identifier = model.Identifier;
            }

            return(Edit(part));
        }
        public override async Task <IDisplayResult> UpdateAsync(CodeField field, IUpdateModel updater, UpdateFieldEditorContext context)
        {
            var model = new EditCodeFieldViewModel();

            if (await updater.TryUpdateModelAsync(model, Prefix, m => m.Value))
            {
                field.Value = model.Value;
            }

            return(Edit(field, context));
        }
        public override async Task <IDisplayResult> UpdateAsync(SqlQuery model, IUpdateModel updater)
        {
            var viewModel = new SqlQueryViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, Prefix, m => m.Query, m => m.ReturnDocuments))
            {
                model.Template        = viewModel.Query;
                model.ReturnDocuments = viewModel.ReturnDocuments;
            }

            return(Edit(model));
        }
        public override async Task <IDisplayResult> UpdateAsync(FacebookPluginPart model, IUpdateModel updater)
        {
            var viewModel = new FacebookPluginPartViewModel();

            await updater.TryUpdateModelAsync(viewModel, Prefix, t => t.Liquid);

            model.Liquid = viewModel.Liquid;

            await ValidateAsync(model, updater);

            return(Edit(model));
        }
        public override async Task<IDisplayResult> UpdateAsync(ContentItem model, IUpdateModel updater)
        {
            var viewModel = new EditContainedPartViewModel();

            if (await updater.TryUpdateModelAsync(viewModel, "ListPart"))
            {
                model.Weld<ContainedPart>();
                model.Alter<ContainedPart>(x => x.ListContentItemId = viewModel.ContainerId);
            }

            return await base.UpdateAsync(model, updater);
        }
        public override IEnumerable<TemplateViewModel> TypeEditorUpdate(ContentTypeDefinitionBuilder builder, IUpdateModel updateModel)
        {
            var model = new ContentTypeSettingsViewModel();
            updateModel.TryUpdateModelAsync(model, "ContentTypeSettingsViewModel").Wait();

            builder.Creatable(model.Creatable);
            builder.Listable(model.Listable);
            builder.Draftable(model.Draftable);
            builder.Securable(model.Securable);
            builder.WithSetting("Stereotype", model.Stereotype);

            yield return DefinitionTemplate(model);
        }
        public override async Task<IDisplayResult> UpdateAsync(ContentItem contentItem, IUpdateModel updater)
        {
            var testContentPart = contentItem.As<TestContentPartA>();

            if (testContentPart == null)
            {
                return null;
            }

            if (await updater.TryUpdateModelAsync(testContentPart, ""))
            {
                if (testContentPart.Line.EndsWith(" "))
                {
                    updater.ModelState.AddModelError(nameof(testContentPart.Line), "Value cannot end with a space");
                }
                else
                {
                    contentItem.Weld(testContentPart);
                }
            }
            
            return Shape("TestContentPartA_Edit", testContentPart).Location("Content");
        }