v1.0.8.1
This commit is contained in:
@@ -41,6 +41,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public String Blurb { get; set; }
|
||||
public String Sport { get; set; }
|
||||
public String Region { get; set; }
|
||||
public int Reaction { get; set; }
|
||||
public String PublishedOnFmt { get; set; }
|
||||
}
|
||||
/// <summary>Article activity info. </summary>
|
||||
@@ -124,7 +125,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
SaxSessionData_Online sessionData = SessionData_Online;
|
||||
|
||||
// User context.
|
||||
SaxActivityConsole.IndexContext indexContext = new SaxActivityConsole.IndexContext();
|
||||
SysId userAccountId = SessionData.User.UserAccountId;
|
||||
SaxActivityConsole.IndexContext indexContext = new SaxActivityConsole.IndexContext(userAccountId);
|
||||
|
||||
// Regions.
|
||||
if (SysId.IsValid(sessionData.User.RegionIdProvince))
|
||||
@@ -136,9 +138,11 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
indexContext.SportIds.AddRange(sessionData.Profile.Sports.Select(item => item.SportId));
|
||||
|
||||
// Populate activities.
|
||||
List<ItemId> activityItemIds = new List<ItemId>();
|
||||
SaxActivityConsole.IndexResults indexResults = ActivityConsole.QueryIndex(indexContext);
|
||||
foreach (SaxActivityConsole.IndexResults.ActivityData itemData in indexResults.Items)
|
||||
{
|
||||
activityItemIds.Add(itemData.ItemId);
|
||||
ActivityResponseData activityData = new ActivityResponseData();
|
||||
activityData.ItemType = itemData.ItemId.Type;
|
||||
if (itemData.ItemId.Type == (int)Sax.DataItemType.JournalistArticle)
|
||||
@@ -151,10 +155,14 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
activityData.Blurb = itemData.Blurb;
|
||||
activityData.Sport = Localiser.GetSportName(itemData.SportId, itemData.SportName);
|
||||
activityData.Region = Localiser.GetRegionName(itemData.RegionId, itemData.RegionName);
|
||||
activityData.Reaction = (int)itemData.Reaction;
|
||||
activityData.PublishedOnFmt = Localiser.FormatDate(itemData.EffectiveOn);
|
||||
responseData.Activities.Add(activityData);
|
||||
}
|
||||
|
||||
if (!activityItemIds.IsEmpty())
|
||||
ActivityConsole.RecordUserActivitiesListed(userAccountId, activityItemIds, DbUpdateInfo);
|
||||
|
||||
// Complete response.
|
||||
responseData.Success = true;
|
||||
return Json(responseData);
|
||||
@@ -186,7 +194,6 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
if (!ValidUserSession)
|
||||
return GetAjaxResult_InvalidSession(responseData);
|
||||
SaxSessionData_Online sessionData = SessionData_Online;
|
||||
String logSuffix = " User: " + sessionData.User.EmailAddress;
|
||||
|
||||
// Identify activity.
|
||||
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityType);
|
||||
@@ -221,11 +228,64 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
responseData.Opportunity = new ActivityResponseData_Opportunity(model, opportunity);
|
||||
}
|
||||
|
||||
// Record activty viewing.
|
||||
if (!ActivityConsole.RecordUserActivityViewed(SessionData.User.UserAccountId, new ItemId((short)itemType, itemId), DbUpdateInfo))
|
||||
{
|
||||
SaLogger.Warn(fn + " Failed to record Activity Viewing: " + ActivityConsole.ErrorStateMessage + "." + getLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
// Complete response.
|
||||
responseData.Success = true;
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Activity Reaction.
|
||||
//-------------------------------------------------------------------
|
||||
public class AjaxResponse_ActivityReaction : AjaxResponse_Base
|
||||
{
|
||||
public int Reaction { get; set; }
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
[HttpPost]
|
||||
[Route("Activity/Ajax/React")]
|
||||
[Route("Activity/Ajax/Reaction")]
|
||||
public IActionResult Ajax_SetActivityReaction(Model_Activity model)
|
||||
{
|
||||
String fn = GetType().Name + ".Ajax_SetActivityReaction";
|
||||
String messageTitle = Localiser["activity.caption.activity"];
|
||||
AjaxResponse_ActivityReaction responseData = new AjaxResponse_ActivityReaction();
|
||||
|
||||
// Validate session and referrer.
|
||||
if (!ValidReferer)
|
||||
return Forbid();
|
||||
if (!ValidUserSession)
|
||||
return GetAjaxResult_InvalidSession(responseData);
|
||||
SaxSessionData_Online sessionData = SessionData_Online;
|
||||
|
||||
// Identify activity.
|
||||
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityType);
|
||||
SysId itemId = model.ActivityIdx.ToSysId();
|
||||
if (itemType <= 0 || !SysId.IsValid(itemId))
|
||||
{
|
||||
SaLogger.Warn(fn + " Activity type/Id inncorrectly specified." + getLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
// Record activity reaction.
|
||||
if (!ActivityConsole.RecordUserActivityReaction(SessionData.User.UserAccountId, new ItemId((short)itemType, itemId), model.GetActivityReaction(), DbUpdateInfo))
|
||||
{
|
||||
SaLogger.Warn(fn + " Failed to record Activity Reaction: " + ActivityConsole.ErrorStateMessage + "." + getLogSuffix());
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
// Complete response.
|
||||
responseData.Reaction = (int)model.GetActivityReaction();
|
||||
responseData.Success = true;
|
||||
return Json(responseData);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
|
||||
Reference in New Issue
Block a user