コード例 #1
0
        /// <summary>
        /// Randomly insert journey score values
        /// </summary>
        public void TestInsertJourneyScoreData()
        {
            JourneyDataType journeyDataType = RandomHelper.GetRandomEnum <JourneyDataType>();
            string          rndId           = "";

            switch (journeyDataType)
            {
            case JourneyDataType.PlaySession:
                rndId = RandomHelper.GetRandom(dbManager.GetAllPlaySessionData()).GetId();
                break;

            case JourneyDataType.LearningBlock:
                rndId = RandomHelper.GetRandom(dbManager.GetAllLearningBlockData()).GetId();
                break;

            case JourneyDataType.Stage:
                rndId = RandomHelper.GetRandom(dbManager.GetAllStageData()).GetId();
                break;
            }

            var lastAccessTimestamp = GenericHelper.GetRelativeTimestampFromNow(-RND.Range(0, 5));

            var score = RND.Range(0, 4);

            dbManager.InsertOrReplace(new JourneyScoreData(rndId, journeyDataType, score, lastAccessTimestamp));

            PrintOutput("Inserted (or replaced) journey score data " + lastAccessTimestamp);
        }
コード例 #2
0
        private JourneyScoreData GetJourneyScoreDataWithMaximum(JourneyDataType dataType, string elementId, int newStars, List <JourneyScoreData> scoreDataList)
        {
            int previousMaxStars = 0;
            var scoreData        = scoreDataList.Find(x => x.ElementId == elementId && x.JourneyDataType == dataType);

            if (scoreData != null)
            {
                previousMaxStars = scoreData.Stars;
            }

            int newMaxStars = Mathf.Max(previousMaxStars, newStars);

            return(new JourneyScoreData(elementId, dataType, newMaxStars));
        }
コード例 #3
0
        public JourneyScoreData(string elementId, JourneyDataType dataType, int stars, int timestamp)
        {
            ElementId       = elementId;
            JourneyDataType = dataType;
            Id = JourneyDataType + "." + ElementId;

            var jp = new JourneyPosition(elementId);

            Stage         = jp.Stage;
            LearningBlock = jp.LearningBlock;
            PlaySession   = jp.PlaySession;

            Stars           = stars;
            UpdateTimestamp = timestamp;
        }
コード例 #4
0
        public List <I> GetAllJourneyDataInfo <D, I>(DbTables table, JourneyDataType dataType) where I : DataInfo <D>, new()
            where D : IData
        {
            List <D> data_list = dbManager.GetAllData <D>(table);
            var      info_list = new List <I>();

            // Build info instances for the given data
            foreach (var data in data_list)
            {
                var info = new I();
                info.data = data;
                info_list.Add(info);
            }

            // Find available scores
            string query = string.Format("SELECT * FROM " + typeof(JourneyScoreData).Name + " WHERE JourneyDataType = '" + (int)dataType +
                                         "' ORDER BY ElementId ");
            var scoredata_list = dbManager.Query <JourneyScoreData>(query);

            for (int i = 0; i < info_list.Count; i++)
            {
                var info      = info_list[i];
                var scoredata = scoredata_list.Find(x => x.ElementId == info.data.GetId());
                if (scoredata != null)
                {
                    info.score    = scoredata.GetScore();
                    info.unlocked = true;
                }
                else
                {
                    info.score    = 0; // 0 until unlocked
                    info.unlocked = false;
                }
            }

            return(info_list);
        }
コード例 #5
0
 public JourneyScoreData(string elementId, JourneyDataType dataType, int stars) : this(elementId, dataType, stars, GenericHelper.GetTimestampForNow())
 {
 }