Files
Saxonite/SaxoniteCoreWebOnline/Online/Controllers/ArticleController.cs
T
2022-10-25 11:55:32 +01:00

61 lines
2.1 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Sarand.Net.Standard.Base.Bus;
using Saxonite.Net.Core.Web.Base.App;
using Saxonite.Net.Core.Web.Online.Models;
using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Standard.Base.Bus;
using Saxonite.Net.Standard.Base.Mgr;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Online.Controllers
{
//=======================================================================
// Online Journalist Controller.
//=======================================================================
public partial class ArticleController : SaxController_Online
{
//-------------------------------------------------------------------
// Construction.
public ArticleController(SaxLocaliser localiser, ILogger<HomeController> logger) :
base(localiser, logger)
{
}
//-------------------------------------------------------------------
[HttpGet]
public IActionResult Index()
{
// Validate session.
if (!ValidUserSession)
return RedirectToAction("", "");
// User must either be a Journalist or have Article Admin rights with at least one organisation.
List<SaxAccountMgr.OrganisationIdName> organisations = AccountMgr.GetOrganisationsForAnyUserRole(SessionUserAccountId, new [] { Sax.OrganisationRole.Admin, Sax.OrganisationRole.ArticleAdmin });
if (organisations.Count < 1 && !UserIsJournalist)
return RedirectToAction("", "");
// Model.
Model_Article model = new Model_Article(Localiser);
model.UserCanAuthorOrganisationArticles = organisations.Count > 0;
model.UserCanAuthorJournalistArticles = UserIsJournalist;
if (organisations.Count > 0)
{
// Default filter to first organisation.
model.Filter.OrganisationId = model.EncryptId(organisations[0].Id);
model.Filter.OrganisationCaption = organisations[0].Name;
}
model.Paging.PageNo = 1;
model.Paging.PageLength = 6;
return View(model);
}
//-------------------------------------------------------------------
}
//=======================================================================
}