예제 #1
0
 private void BuildViewModel(AliasPartViewModel model, AliasPart part, AliasPartSettings settings)
 {
     model.Alias       = part.Alias;
     model.AliasPart   = part;
     model.ContentItem = part.ContentItem;
     model.Settings    = settings;
 }
        private void BuildViewModel(AliasPartViewModel model, AliasPart part)
        {
            var settings = GetAliasPartSettings(part);

            model.Alias     = part.Alias;
            model.AliasPart = part;
            model.Settings  = settings;
        }
예제 #3
0
        private Task BuildViewModel(AliasPartViewModel model, AliasPart part)
        {
            var settings = GetAliasPartSettings(part);

            model.Alias     = part.Alias;
            model.AliasPart = part;
            model.Settings  = settings;

            return(Task.CompletedTask);
        }
예제 #4
0
        public async override Task UpdatedAsync(UpdateContentContext context, AliasPart part)
        {
            // Compute the Alias only if it's empty
            if (!String.IsNullOrEmpty(part.Alias))
            {
                return;
            }

            var pattern = GetPattern(part);

            if (!String.IsNullOrEmpty(pattern))
            {
                var model = new AliasPartViewModel()
                {
                    Alias       = part.Alias,
                    AliasPart   = part,
                    ContentItem = part.ContentItem
                };

                part.Alias = await _liquidTemplateManager.RenderAsync(pattern, NullEncoder.Default, model,
                                                                      scope => scope.SetValue("ContentItem", model.ContentItem));

                part.Alias = part.Alias.Replace("\r", String.Empty).Replace("\n", String.Empty);

                if (part.Alias?.Length > AliasPartDisplayDriver.MaxAliasLength)
                {
                    part.Alias = part.Alias.Substring(0, AliasPartDisplayDriver.MaxAliasLength);
                }

                if (!await IsAliasUniqueAsync(part.Alias, part))
                {
                    part.Alias = await GenerateUniqueAliasAsync(part.Alias, part);
                }

                part.Apply();
            }
        }
예제 #5
0
        public async override Task UpdatedAsync(UpdateContentContext context, AliasPart part)
        {
            // Compute the Alias only if it's empty
            if (!String.IsNullOrEmpty(part.Alias))
            {
                return;
            }

            var pattern = GetPattern(part);

            if (!String.IsNullOrEmpty(pattern))
            {
                var model = new AliasPartViewModel()
                {
                    Alias       = part.Alias,
                    AliasPart   = part,
                    ContentItem = part.ContentItem
                };

                part.Alias = await _liquidTemplateManager.RenderStringAsync(pattern, NullEncoder.Default, model,
                                                                            new Dictionary <string, FluidValue>() { [nameof(ContentItem)] = new ObjectValue(model.ContentItem) });

                part.Alias = part.Alias.Replace("\r", String.Empty).Replace("\n", String.Empty);

                if (part.Alias?.Length > AliasPart.MaxAliasLength)
                {
                    part.Alias = part.Alias.Substring(0, AliasPart.MaxAliasLength);
                }

                if (!await part.IsAliasUniqueAsync(_session, part.Alias))
                {
                    part.Alias = await GenerateUniqueAliasAsync(part.Alias, part);
                }

                part.Apply();
            }
        }
예제 #6
0
        public async override Task UpdatedAsync(UpdateContentContext context, AliasPart part)
        {
            // Compute the Alias only if it's empty
            if (!String.IsNullOrEmpty(part.Alias))
            {
                return;
            }

            var pattern = GetPattern(part);

            if (!String.IsNullOrEmpty(pattern))
            {
                var model = new AliasPartViewModel()
                {
                    Alias       = part.Alias,
                    AliasPart   = part,
                    ContentItem = part.ContentItem
                };

                var templateContext = new TemplateContext();
                templateContext.SetValue("ContentItem", part.ContentItem);
                templateContext.MemberAccessStrategy.Register <AliasPartViewModel>();
                templateContext.SetValue("Model", model);

                part.Alias = await _liquidTemplateManager.RenderAsync(pattern, NullEncoder.Default, templateContext);

                part.Alias = part.Alias.Replace("\r", String.Empty).Replace("\n", String.Empty);

                if (!await IsAliasUniqueAsync(part.Alias, part))
                {
                    part.Alias = await GenerateUniqueAliasAsync(part.Alias, part);
                }

                part.Apply();
            }
        }