public void AddTask(HiddenStringFieldUpdateProcessVariant variant, HiddenStringFieldSettings settings, ContentPartFieldDefinitionBuilder builder) { if (variant != HiddenStringFieldUpdateProcessVariant.None) { _processingEngine .AddTask(_shellSettings, _shellDescriptorManager.GetShellDescriptor(), "IHiddenStringFieldUpdateProcessor.Process", new Dictionary <string, object> { { "contentItemIds", GetIdsToProcess(variant, builder) }, { "partName", builder.PartName }, { "fieldName", builder.Name }, { "settings", settings } }); } }
public void Process(IEnumerable <int> contentItemIds, string partName, string fieldName, HiddenStringFieldSettings settings) { var parts = _contentManager.GetMany <ContentItem>(contentItemIds, VersionOptions.Published, new QueryHints()) .Select(ci => ci.Parts.FirstOrDefault(pa => pa.PartDefinition.Name == partName)); if (settings.Tokenized) { foreach (var item in parts.Select(pa => new KeyValuePair <HiddenStringField, Dictionary <string, object> >( pa.Fields.FirstOrDefault(fi => IsMyField(fi, fieldName)) as HiddenStringField, new Dictionary <string, object> { { "Content", pa.ContentItem } } ))) { item.Key.Value = _tokenizer.Replace(settings.TemplateString, item.Value); } } else { var fields = parts.SelectMany(pa => pa.Fields .Where(fi => IsMyField(fi, fieldName)) .Select(fi => fi as HiddenStringField)); foreach (var field in fields) { field.Value = settings.TemplateString; } } }
public void Process(IEnumerable <int> contentItemIds, string partName, string fieldName, HiddenStringFieldSettings settings) { var parts = _contentManager.GetMany <ContentItem>(contentItemIds, VersionOptions.Published, new QueryHints()) .Select(ci => ci.Parts.FirstOrDefault(pa => pa.PartDefinition.Name == partName)); if (settings.Tokenized) { foreach (var part in parts) { var item = new KeyValuePair <HiddenStringField, Dictionary <string, object> >( part.Fields.FirstOrDefault(fi => IsMyField(fi, fieldName)) as HiddenStringField, new Dictionary <string, object> { { "Content", part.ContentItem } }); item.Key.Value = _tokenizer.Replace(settings.TemplateString, item.Value); //Updates the index for projections _fieldIndexService.Set( part.ContentItem.As <FieldIndexPart>(), part.PartDefinition.Name, item.Key.Name, "", item.Key.Value, typeof(string)); } } else { foreach (var part in parts) { var fields = part.Fields .Where(fi => IsMyField(fi, fieldName)) .Select(fi => fi as HiddenStringField); foreach (var field in fields) { field.Value = settings.TemplateString; //Updates the index for projections _fieldIndexService.Set( part.ContentItem.As <FieldIndexPart>(), part.PartDefinition.Name, field.Name, "", field.Value, typeof(string)); } } } }