Example #1
0
        public static UserHistoryDetailsModel Create(Data.KeySequence keySequence)
        {
            var result = new UserHistoryDetailsModel()
            {
                TextEntered = keySequence.TextEntered,
                TextShown   = keySequence.TextShown,
                SourceKey   = keySequence.SourceKey,
                SourceType  = keySequence.SourceType.Name,
            };

            var speedAnalysis = keySequence.KeySequenceAnalysis
                                .Where(k => k.AnalysisTypeId.Equals((int)AnalyticType.Speed))
                                .FirstOrDefault();

            if (speedAnalysis != null)
            {
                result.AnalysisSpeed = new SpeedModel().Create(speedAnalysis.AnalysisSpeed);
            }

            var accuracyAnalysis = keySequence.KeySequenceAnalysis
                                   .Where(k => k.AnalysisTypeId.Equals((int)AnalyticType.Accuracy))
                                   .FirstOrDefault();

            if (accuracyAnalysis != null)
            {
                result.AnalysisAccuracy = new AccuracyModel().Create(accuracyAnalysis.AnalysisAccuracy);
            }

            return(result);
        }
Example #2
0
        public HttpResponseMessage HistoryDetails([FromBody] JObject data)
        {
            JWTToken token = data["token"].ToObject <JWTToken>();
            string   seqId = data["sequenceId"].ToString();

            Data.KCUser user = new Data.KCUser()
            {
                UserId = Guid.Parse(token.UserId)
            };
            var userMgr = new KeyCdr.History.UserSessionHistory();

            Data.KeySequence detail = userMgr.GetHistoryDetailsByKeySequence(Guid.Parse(seqId));

            AllTimeStatsCalculator  allTimeStats = new AllTimeStatsCalculator(user);
            UserHistoryDetailsModel result       = UserHistoryDetailsModel.Create(detail);

            result.AnalysisSpeedAllTime    = allTimeStats.GetSpeedAllTime();
            result.AnalysisAccuracyAllTime = allTimeStats.GetAccuracyAllTime();

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }