Carlos Casalicchio
12/19/2024, 6:13 PM/quotes/by-toby-mensforthquotes/by-debby-ryanquotes/by-gaby-hoffmannkdx-perbol
12/19/2024, 7:45 PM/home/sv-SE/my-pagekdx-perbol
12/19/2024, 7:46 PMbyCarlos Casalicchio
12/19/2024, 7:48 PMkdx-perbol
12/19/2024, 7:49 PMCarlos Casalicchio
12/19/2024, 7:50 PMkdx-perbol
12/19/2024, 7:50 PMCarlos Casalicchio
12/19/2024, 7:51 PMCarlos Casalicchio
01/30/2025, 7:00 PMcsharp
public class AuthorConflictContentFinder(IUmbracoContextAccessor umbracoContextAccessor) : IContentFinder
    {
        private readonly IUmbracoContextAccessor _umbracoContextAccessor = umbracoContextAccessor;
        public async Task<bool> TryFindContent(IPublishedRequestBuilder request)
        {
            var path = request.Uri.GetAbsolutePathDecoded();
            string pattern = @"^/quotes/by-([a-z]+(-[a-z]+)*)(\?page=(\d+))?(&topic=([^&]+))?$";
            Regex regex = new(pattern, RegexOptions.IgnoreCase);
            var match = regex.Match(path);
            if (match.Success)
            {
                var authorSlug = match.Groups[1].Value;
                var page = match.Groups[3].Length > 0 ? int.Parse(match.Groups[3].Value) : 1;
                var topic = match.Groups[4].Length > 0 ? match.Groups[4].Value : "";
                var pagination = new Pagination();
                if (pagination.Page == 0) pagination.Page = page;
                if (pagination.PageSize == 0) pagination.PageSize = 14;
                if (_umbracoContextAccessor.TryGetUmbracoContext(out var umbracoContext))
                {
                    var contentPage = umbracoContext.Content!.GetAtRoot().DescendantsOrSelf<Quotes>().FirstOrDefault();
                    contentPage!.AuthorSlug = authorSlug;
                    contentPage!.Pagination = pagination;
                    contentPage!.Topic = topic;
                    await Task.FromResult(0);
                    request.SetPublishedContent(contentPage);
                }
                return true;
            }
            return false;
        }
    }A hub and casual space for you to interact with fellow community members and learn more about Umbraco!
Powered by