/// <summary> /// Player selected an option in a presented alternative /// Type = Alternative /// </summary> /// <param name="alternativeId">Alternative identifier.</param> /// <param name="optionId">Option identifier.</param> public void Selected(string alternativeId, string optionId) { var check = true; check &= tracker.Utils.check <TargetXApiException>(alternativeId, "xAPI Exception: Target ID is null or empty. Ignoring.", "xAPI Exception: Target ID can't be null or empty."); check &= tracker.Utils.check <ValueExtensionException>(optionId, "xAPI Exception: Selected alternative is null or empty", "xAPI Exception: Selected alternative can't be null or empty"); if (check) { tracker.Trace(new TrackerAsset.TrackerEvent(tracker) { Event = new TrackerAsset.TrackerEvent.TraceVerb(TrackerAsset.Verb.Selected), Target = new TrackerAsset.TrackerEvent.TraceObject(Alternative.Alternative.ToString().ToLower(), alternativeId), Result = new TrackerAsset.TrackerEvent.TraceResult { Response = optionId } }); } }
/// <summary> /// Player interacted with a game object. /// Type = GameObject /// </summary> /// <param name="gameobjectId">Reachable identifier.</param> public void Interacted(string gameobjectId) { if (tracker.Utils.check <TargetXApiException>(gameobjectId, "xAPI Exception: Target ID is null or empty. Ignoring.", "xAPI Exception: Target ID can't be null or empty.")) { tracker.Trace(new TrackerAsset.TrackerEvent(tracker) { Event = new TrackerAsset.TrackerEvent.TraceVerb(TrackerAsset.Verb.Interacted), Target = new TrackerAsset.TrackerEvent.TraceObject(TrackedGameObject.GameObject.ToString().ToLower(), gameobjectId) }); } }
/// <summary> /// Player accessed a reachable. /// Type = Accessible /// </summary> /// <param name="reachableId">Reachable identifier.</param> public void Accessed(string reachableId) { if (tracker.Utils.check <TargetXApiException>(reachableId, "xAPI Exception: Target ID is null or empty. Ignoring.", "xAPI Exception: Target ID can't be null or empty.")) { tracker.Trace(new TrackerAsset.TrackerEvent(tracker) { Event = new TrackerAsset.TrackerEvent.TraceVerb(TrackerAsset.Verb.Accessed), Target = new TrackerAsset.TrackerEvent.TraceObject(Accessible.Accessible.ToString().ToLower(), reachableId) }); } }
/// <summary> /// Player initialized a completable. /// </summary> /// <param name="completableId">Completable identifier.</param> public void Initialized(string completableId) { if (tracker.Utils.check <TargetXApiException>(completableId, "xAPI Exception: Target ID is null or empty. Ignoring.", "xAPI Exception: Target ID can't be null or empty.")) { tracker.Trace(new TrackerAsset.TrackerEvent(tracker) { Event = new TrackerAsset.TrackerEvent.TraceVerb(TrackerAsset.Verb.Initialized), Target = new TrackerAsset.TrackerEvent.TraceObject(Completable.Completable.ToString().ToLower(), completableId) }); } }
public void TestTrace_Generic_Csv_01() { ChangeFormat(TrackerAsset.TraceFormats.csv); asset.Trace(trace01); asset.Flush(); string csv = storage.Load(settings.LogFile); string[] splitted = csv.Split(new string[] { "\r\n" }, StringSplitOptions.None); Assert.AreEqual(splitted[splitted.Length - 2], trace01.TimeStamp.ToString() + ",accessed,gameobject,ObjectID"); }