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 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 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); } //------------------------------------------------------------------- } //======================================================================= }