Exemplo n.º 1
0
        public HttpResponseMessage HistoryAnalytics(JWTToken token)
        {
            var userMgr = new KeyCdr.History.UserSessionHistory();
            IList <Data.Session> history = userMgr.GetHistoryDetailsAllTime(
                new Data.KCUser()
            {
                UserId = Guid.Parse(token.UserId)
            });

            var analyses = history.SelectMany(ks => ks.KeySequence
                                              .SelectMany(ksa => ksa.KeySequenceAnalysis))
                           .ToList();

            var result = new UserHistoryAnalyticsModel();

            result.SpeedMeasurements = analyses
                                       .Where(a => a.AnalysisTypeId.Equals((int)AnalyticType.Speed))
                                       .OrderBy(a => a.Created)
                                       .Take(NUM_RECORDS_LOOKBACK)
                                       .Select(s => new SpeedModel().Create(s.AnalysisSpeed))
                                       .ToList();

            result.AccuracyMeasurements = analyses
                                          .Where(a => a.AnalysisTypeId.Equals((int)AnalyticType.Accuracy))
                                          .OrderBy(a => a.Created)
                                          .Take(NUM_RECORDS_LOOKBACK)
                                          .Select(s => new AccuracyModel().Create(s.AnalysisAccuracy))
                                          .ToList();

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Exemplo n.º 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));
        }
Exemplo n.º 3
0
        public HttpResponseMessage History(JWTToken token)
        {
            var userMgr = new KeyCdr.History.UserSessionHistory();
            IList <Data.Session> history = userMgr.GetSessionsByUser(new Data.KCUser()
            {
                UserId = Guid.Parse(token.UserId)
            });

            var historyItems = history
                               .SelectMany(h => h.KeySequence
                                           .Select(ks => new UserHistoryModel()
            {
                CreateDate    = h.Created,
                UserId        = h.UserId,
                SessionId     = h.SessionId,
                SequenceCount = h.KeySequence.Count,
                KeySequenceId = ks.KeySequenceId,
                SourceKey     = ks.SourceKey,
                SourceType    = ks.SourceType.Name
            })).ToList();

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