PascalEugster
08/18/2023, 7:21 AMSebastiaan
08/18/2023, 7:27 AMPascalEugster
08/18/2023, 7:37 AMPascalEugster
08/18/2023, 8:21 AMhuwred
08/18/2023, 8:57 AMhuwred
08/18/2023, 8:59 AMint pageSize = CurrentPage.Value<int>("intPageSize");
Sebastiaan
08/18/2023, 9:11 AMcsharp
using System;
using System.Linq;
using Cultiv.Site.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using Microsoft.Extensions.Logging;
using Umbraco.Cms.Core.IO;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Web;
using Umbraco.Cms.Web.Common.Controllers;
using Umbraco.Cms.Web.Common.PublishedModels;
namespace Cultiv.Site.Controllers
{
public class BlogOverviewController : RenderController
{
private readonly IVariationContextAccessor _variationContextAccessor;
private readonly ServiceContext _serviceContext;
private readonly IFileSystem _fileSystem;
public BlogOverviewController(ILogger<BlogOverviewController> logger,
ICompositeViewEngine compositeViewEngine,
IUmbracoContextAccessor umbracoContextAccessor,
IVariationContextAccessor variationContextAccessor,
ServiceContext context, IFileSystem fileSystem)
: base(logger, compositeViewEngine, umbracoContextAccessor)
{
_variationContextAccessor = variationContextAccessor;
_serviceContext = context;
_fileSystem = fileSystem;
}
[HttpGet]
public IActionResult Index([FromQuery(Name = "page")] int page = 1)
{
var publishedValueFallback = new PublishedValueFallback(_serviceContext, _variationContextAccessor);
var model = new BlogOverviewModel(CurrentPage, publishedValueFallback) { Page = page };
var allBlogPosts = model.Children.ToList();
var skip = 10 * model.Page - 10;
var test = _fileSystem.GetFullPath("~/");
model.TotalPages = Convert.ToInt32(Math.Ceiling(allBlogPosts.Count / 10.0));
model.PreviousPage = model.Page - 1;
model.NextPage = model.Page + 1;
model.IsFirstPage = model.Page <= 1;
model.IsLastPage = model.Page >= model.TotalPages;
var selection = allBlogPosts.OrderByDescending(x => x.CreateDate)
.Skip(skip)
.Take(10)
.Select(publishedContent => publishedContent as BlogPost)
.ToList();
model.PagedBlogPosts = selection;
return CurrentTemplate(model);
}
}
}
Sebastiaan
08/18/2023, 9:12 AMArticlesController
or ArticleOverviewController
).Sebastiaan
08/18/2023, 9:13 AMcsharp
using System.Collections.Generic;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Web.Common.PublishedModels;
namespace Cultiv.Site.Models
{
public class BlogOverviewModel : PublishedContentWrapped
{
public BlogOverviewModel(IPublishedContent content, IPublishedValueFallback publishedValueFallback) : base(content, publishedValueFallback)
{ }
public int Page { get; set; }
public int TotalPages { get; set; }
public int PreviousPage { get; set; }
public int NextPage { get; set; }
public bool IsFirstPage { get; set; }
public bool IsLastPage { get; set; }
public IEnumerable<BlogPost> PagedBlogPosts { get; set; }
}
}
PascalEugster
08/18/2023, 12:31 PMSebastiaan
08/18/2023, 1:53 PMDean Leigh
08/18/2023, 2:01 PMhuwred
08/18/2023, 2:18 PMSander L
08/18/2023, 3:31 PMJanae
08/18/2023, 3:36 PMDean Leigh
08/18/2023, 3:53 PMJanae
08/18/2023, 3:54 PMAaronSadlerUK
08/18/2023, 4:07 PMDean Leigh
08/21/2023, 4:59 PMhuwred
08/21/2023, 5:13 PMDean Leigh
08/21/2023, 6:09 PMhuwred
08/21/2023, 7:45 PM