91 lines
3.2 KiB
C#
91 lines
3.2 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.Extensions.Logging;
|
|
using Sarand.Net.Standard.Base.App;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Dbas;
|
|
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.Consoles;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Saxonite.Net.Core.Web.Online.Controllers
|
|
{
|
|
//=======================================================================
|
|
// Online Activity Controller - Ajax actions only.
|
|
//=======================================================================
|
|
public partial class ActivityController : SaxController_Online
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
public ActivityController(SaxLocaliser localiser, ILogger<HomeController> logger) :
|
|
base(localiser, logger)
|
|
{}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Data definitions.
|
|
public class ActivityResponseData
|
|
{
|
|
public short ItemType { get; set; }
|
|
// NB Need to mask the Item Id by storing with XRef to alternative generated value in User's session.
|
|
public int ItemIdx { get; set; }
|
|
public String Caption{ get; set; }
|
|
}
|
|
public class ArticleActivityResponseData : ActivityResponseData
|
|
{
|
|
public String Headline { get; set; }
|
|
public String Summary { get; set; }
|
|
}
|
|
public class OpportunityActivityResponseData : ActivityResponseData
|
|
{
|
|
public String Position { get; set; }
|
|
public String Outline { get; set; }
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Activities
|
|
//-------------------------------------------------------------------
|
|
public class AjaxResponse_ActivityList : AjaxResponse_Base
|
|
{
|
|
public List<SaxModel_Online.RegionData> Regions { get; } = new List<SaxModel_Online.RegionData>();
|
|
}
|
|
//-------------------------------------------------------------------
|
|
[HttpPost]
|
|
[Route("Activity/Ajax/GetList")]
|
|
[Route("Activity/Ajax/GetActivityList")]
|
|
[Route("Activity/Ajax/GetActivities")]
|
|
public IActionResult Ajax_GetActivityList(Model_Activity model)
|
|
{
|
|
String fn = GetType().Name + ".Ajax_GetActivityList";
|
|
String messageTitle = Localiser["activity.caption.activities"];
|
|
AjaxResponse_ActivityList responseData = new AjaxResponse_ActivityList();
|
|
|
|
// Validate session and referrer.
|
|
if (!ValidReferer)
|
|
return Forbid();
|
|
if (!ValidUserSession)
|
|
return GetAjaxResult_InvalidSession(responseData);
|
|
|
|
// Populate activities.
|
|
SaxActivityConsole.IndexContext indexContext = new SaxActivityConsole.IndexContext();
|
|
SaxActivityConsole.IndexResults indexResults = ActivityConsole.QueryIndex(indexContext);
|
|
foreach (SaxActivityConsole.IndexResults.ItemData itemData in indexResults.Items)
|
|
{
|
|
|
|
}
|
|
|
|
// Complete response.
|
|
responseData.Success = true;
|
|
return Json(responseData);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|