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); }
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)); }