0

我正在尝试将我的 LMS 更新为与 TinCanAPI 兼容,虽然我已经能够捕获俄罗斯方块示例游戏开始和结束的语句,但我无法将 ActivityProfile 调用更新为高分,因为我不确定什么确切地需要返回。

我有以下 WebAPI 控制器:

public class ActivitiesController : ApiController
{
    private XAPIBiz xvm;

    public ActivitiesController()
    {
         MetaLearning.Data.MetaLearningContext dbcontext = new MetaLearningContext(System.Configuration.ConfigurationManager.ConnectionStrings["MetaLearningContext"].ConnectionString);
         xvm = new MetaLearning.Biz.XAPIBiz(dbcontext);
    }

    // GET api/activity/5
    public string Get([FromUri]string profileId, [FromUri]string activityId)
    {
        return "[{actor:{name:John Paul}, score:9921, date:2014-04-07T14:42:46.492Z},{actor:{name:John Paul}, score:4000, date:2014-04-07T14:42:46.492Z}]";

        //var test = profileId;
        //var test2 = activityId;
        //return "value";
    }

    .......
}

如果我在 Cloud.Scorm.Com 上托管课程时尝试查看排行榜,那么我可以看到对/activities/profile?profileId=highscores&activityId=http%3A%2F%2Ftincanapi.com%2FJsTetris_TCAPI的请求

我得到的回应

"[{演员:{姓名:约翰保罗},得分:9921,日期:2014-04-07T14:42:46.492Z},{演员:{姓名:约翰保罗},得分:4000,日期:2014-04- 07T14:42:46.492Z}]"

但是,如果我尝试仅返回此字符串值以进行测试,我会在排行榜上获得 137 个未定义的列表。

如果我在此控制器操作中返回 void,则排行榜显示为空白。

如果我将此文件中的文本保存为 json 文件并保存到 blob 存储,然后尝试返回指向该文件的 URI,我会得到一个未定义的 66 个名称列表。

任何有助于加深我对 ActivityProfile API 工作原理的理解的帮助将不胜感激。SCORM云上的实现是什么?

4

0 回答 0