/// <summary> /// Logs a user's current activity (aka action) via the mechanics API. /// </summary> /// <param name="actionName"></param> /// <param name="userid"></param> /// <param name="portalid"></param> /// <param name="contentItemId"></param> /// <param name="context"></param> /// <param name="notes"></param> public int LogUserActivity(string actionName, int userid, int portalid, int contentItemId, string context, string notes) { var desktopModuleId = DesktopModuleController.GetDesktopModuleByModuleName(Constants.DESKTOPMODULE_NAME, portalid).DesktopModuleID; int ret = -1; if (desktopModuleId > 0) { var smCtrl = MechanicsController.Instance; ScoringActionDefinition adef = smCtrl.GetScoringActionDefinition(actionName, DesktopModule.DesktopModuleID); if (adef == null) { AddScoringDefinitions(); } if (adef != null) { ret = smCtrl.LogUserActivity(adef.ActionName, adef.DesktopModuleId, new UserScoreLog { ContentItemId = contentItemId, Context = context, Notes = notes, CreatedOnDate = DateTime.Now, ScoringActionDefId = adef.ScoringActionDefId, PortalId = portalid, UserId = userid }); } } return(ret); }
///<summary> /// Returns a scoring activity (aka action) via the mechanics API. ///</summary> /// <param name="actionName"></param> /// <param name="portalid"></param> public ScoringAction GetScoringAction(string actionName, int portalid) { var desktopModuleId = DesktopModuleController.GetDesktopModuleByModuleName(Constants.DESKTOPMODULE_NAME, portalid).DesktopModuleID; ScoringAction ret = null; var smCtrl = MechanicsController.Instance; ScoringActionDefinition adef = smCtrl.GetScoringActionDefinition(actionName, desktopModuleId); if (adef != null) { var ctlr = new DotNetNuke.Mechanics.Components.Controllers.Internal.InternalMechanicsController(); ret = ctlr.GetScoringAction(adef.ScoringActionDefId, portalid); } return(ret); }
/// <summary> /// Add a scoring action definition if it does not already exist. /// </summary> /// <param name="name"></param> /// <param name="exp"></param> /// <param name="rep"></param> /// <param name="actionType"></param> /// <param name="maxCount"></param> /// <param name="interval"></param> private static void AddScoringAction(string name, int rep, int exp, ActionTypes actionType, int maxCount = 0, ScoringIntervals interval = ScoringIntervals.Undefined) { var scoringActionDef = MechanicsController.Instance.GetScoringActionDefinition(name, DesktopModule.DesktopModuleID); if (scoringActionDef != null) { return; } scoringActionDef = new ScoringActionDefinition { ActionName = name, DefaultExperiencePoints = exp, DefaultReputationPoints = rep, DefaultMaxCount = maxCount, DefaultInterval = interval, DesktopModuleId = DesktopModule.DesktopModuleID, ActionType = actionType }; MechanicsController.Instance.AddScoringActionDefinition(scoringActionDef); }