Пример #1
0
        public ContentResult GetAttemptData(DataSource source)
        {
            var tests        = AttemptRepository.GetTests(source);
            var attemptInfos = new List <AttemptInfo>();

            attemptInfos.Add(new AttemptInfo(tests, GestureDirection.Pull));
            attemptInfos.Add(new AttemptInfo(tests, GestureDirection.Push));
            var json = $"{{\"Pull\": {JsonConvert.SerializeObject(attemptInfos[0])}, \"Push\": {JsonConvert.SerializeObject(attemptInfos[1])}}}";

            return(Content(json, "application/json"));
        }
Пример #2
0
        private static TestDataViewModel GetTest(DataSource source)
        {
            if (TestViewModels.ContainsKey("average"))
            {
                return(TestViewModels["average"]);
            }
            TestViewModels.Add("average", new TestDataViewModel("average"));


            if (Tests.Count != AttemptRepository.GetTestCount(source))
            {
                Tests.Clear();
                foreach (var test in AttemptRepository.GetTests(source))
                {
                    Tests.Add(test.ID, test);
                }
            }

            var tests = Tests.Values.ToList();

            var averageHitPercentagePerGesture = GetAverageHitPercentagePerTurn(tests);
            var averageTimePerTargetPerGesture = GetAverageTimePerTarget(tests);


            foreach (var gesture in AllGestures)
            {
                GestureInfo info = new GestureInfo();
                info.HitData       = GetJSPercentageArray(averageHitPercentagePerGesture[gesture], gesture);
                info.TimeData      = GetJSTimeArray(averageTimePerTargetPerGesture[gesture], gesture);
                info.HitPercentage = averageHitPercentagePerGesture[gesture].Last() * 100f;

                List <Attempt> attempts = new List <Attempt>();
                foreach (var test in tests)
                {
                    attempts.AddRange(test.Attempts[gesture]);
                }

                TestViewModels["average"].GestureInformation[GetGestureTypeString(gesture)] = info;
            }

            return(TestViewModels["average"]);
        }
Пример #3
0
        public ActionResult GetImage(string testId, GestureType type, DataSource source = DataSource.Old)
        {
            List <Attempt> attempts = new List <Attempt>();

            if (testId != "average")
            {
                attempts = AttemptRepository.GetTest(testId, source).Attempts[type];
            }
            else
            {
                var tests = AttemptRepository.GetTests(source);
                foreach (var test in tests)
                {
                    attempts.AddRange(test.Attempts[type]);
                }
            }
            MemoryStream ms;

            DataVisualizer.DrawHitBox(attempts, out ms);
            return(File(ms, "image/png"));
        }