private Task BuildViewModel(TagsPartViewModel model, TagsPart part) { var settings = GetTagsPartSettings(part); model.ContentItem = part.ContentItem; model.Show = part.Show; model.Tags = part.Tags; model.TagsPart = part; model.Settings = settings; return(Task.CompletedTask); }
// private TagsPartSettings GetSettings(TagsPart tagsPart) // { // var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(tagsPart.ContentItem.ContentType); // var contentTypePartDefinition = contentTypeDefinition.Parts.FirstOrDefault(x => String.Equals(x.PartDefinition.Name, nameof(TagsPart), StringComparison.Ordinal)); // return contentTypePartDefinition?.GetSettings<TagsPartSettings>(); // } public override async Task <IDisplayResult> UpdateAsync(TagsPart model, IUpdateModel updater, UpdatePartEditorContext context) { var viewModel = new TagsPartViewModel(); viewModel.Tags = model.Tags; await updater.TryUpdateModelAsync(viewModel, Prefix, t => t.Tags); // var settings = context.TypePartDefinition.GetSettings<TagsPartSettings>();// GetSettings(model); await updater.TryUpdateModelAsync(model, Prefix, t => t.Tags); //await ValidateAsync(model, updater); return(Edit(model)); }
public override async Task PublishedAsync(PublishContentContext context, TagsPart part) { //synchronize tags to the global list var site = await _siteService.GetSiteSettingsAsync(); var globalTags = site.As <TagsSettings>(); var vm = new TagsPartViewModel(); vm.Tags = part.Tags; foreach (string tag in vm.TagsCollection) { if (!globalTags.Tags.ToLower().Contains(tag.ToLower())) { globalTags.Tags += "," + tag; site.Properties["TagsSettings"] = JObject.FromObject(globalTags); } } await _siteService.UpdateSiteSettingsAsync(site); }