Exemplo n.º 1
0
        public ViewResult AnalysisChart(int aID, string eventName, string timeframe)
        {
            try
            {
                AthleteDA       athlete = DataAccessServiceController.AthleteService.GetAthleteByID(aID);
                EventDA         evnt    = DataAccessServiceController.EventService.GetEventByName(eventName);
                List <ResultDA> results = DataAccessServiceController.ResultService.GetResultsForAnalysis(aID, eventName, timeframe);
                results = results.OrderBy(r => r.DateOfResult).ToList();
                AnalyseVM analysis = new AnalyseVM();

                if (results.Count > 0)
                {
                    analysis.AthleteID       = aID;
                    analysis.AthleteName     = athlete.AthleteName;
                    analysis.EventName       = evnt.EventName;
                    analysis.EventType       = evnt.EventType;
                    analysis.TimeFrame       = timeframe;
                    analysis.TotalNumResults = results.Count();


                    List <DateTime> dates        = new List <DateTime>();
                    List <double>   resultValues = new List <double>();
                    //List<string> resultDates = new List<string>();

                    foreach (ResultDA r in results)
                    {
                        resultValues.Add(r.Result);
                        dates.Add(r.DateOfResult);
                    }

                    //AnalyseVM store results as arrays for use in graph
                    analysis.Results     = resultValues.ToArray();
                    analysis.ResultDates = dates.ToArray();

                    if (analysis.EventType == "Time")
                    {
                        analysis.BestResult   = analysis.Results.Min();
                        analysis.WorstResult  = analysis.Results.Max();
                        analysis.TargetResult = analysis.BestResult * 0.95;
                    }
                    else if (analysis.EventType == "Distance")
                    {
                        analysis.BestResult   = analysis.Results.Max();
                        analysis.WorstResult  = analysis.Results.Min();
                        analysis.TargetResult = analysis.BestResult * 1.05;
                    }

                    analysis.AverageResult = analysis.Results.Average();

                    return(View("AnalysisChart", analysis));
                }
                else
                {
                    return(View("NoResults"));
                }
            }
            catch (Exception e)
            {
                throw (new Exception("Error occured in AthleteController.AnalyseChart(aID1, aID2, eventName, timeframe)"));
            }
        }
Exemplo n.º 2
0
        public ViewResult CompareChart(int aID1, int aID2, string eventName, string timeframe)
        {
            try
            {
                List <AnalyseVM> compareList = new List <AnalyseVM>();

                AthleteDA       athlete1 = DataAccessServiceController.AthleteService.GetAthleteByID(aID1);
                EventDA         evnt     = DataAccessServiceController.EventService.GetEventByName(eventName);
                List <ResultDA> results1 = DataAccessServiceController.ResultService.GetResultsForAnalysis(aID1, eventName, timeframe);
                results1 = results1.OrderBy(r => r.DateOfResult).ToList();
                AnalyseVM analysis1 = new AnalyseVM();


                AthleteDA       athlete2 = DataAccessServiceController.AthleteService.GetAthleteByID(aID2);
                EventDA         evnt2    = DataAccessServiceController.EventService.GetEventByName(eventName);
                List <ResultDA> results2 = DataAccessServiceController.ResultService.GetResultsForAnalysis(aID2, eventName, timeframe);
                results2 = results2.OrderBy(r => r.DateOfResult).ToList();
                AnalyseVM analysis2 = new AnalyseVM();

                if (results1.Count > 0 && results2.Count > 0)
                {
                    analysis1.AthleteID       = aID1;
                    analysis1.AthleteName     = athlete1.AthleteName;
                    analysis1.EventName       = evnt.EventName;
                    analysis1.EventType       = evnt.EventType;
                    analysis1.TimeFrame       = timeframe;
                    analysis1.TotalNumResults = results1.Count();


                    List <DateTime> dates1        = new List <DateTime>();
                    List <double>   resultValues1 = new List <double>();
                    //List<string> resultDates = new List<string>();

                    foreach (ResultDA r in results1)
                    {
                        resultValues1.Add(r.Result);
                        dates1.Add(r.DateOfResult);
                    }

                    //AnalyseVM store results as arrays for use in graph
                    analysis1.Results     = resultValues1.ToArray();
                    analysis1.ResultDates = dates1.ToArray();

                    if (analysis1.EventType == "Time")
                    {
                        analysis1.BestResult   = analysis1.Results.Min();
                        analysis1.WorstResult  = analysis1.Results.Max();
                        analysis1.TargetResult = analysis1.BestResult * 0.95;
                    }
                    else if (analysis1.EventType == "Distance")
                    {
                        analysis1.BestResult   = analysis1.Results.Max();
                        analysis1.WorstResult  = analysis1.Results.Min();
                        analysis1.TargetResult = analysis1.BestResult * 1.05;
                    }

                    analysis1.AverageResult = analysis1.Results.Average();

                    analysis2.AthleteID       = aID2;
                    analysis2.AthleteName     = athlete2.AthleteName;
                    analysis2.EventName       = evnt2.EventName;
                    analysis2.EventType       = evnt2.EventType;
                    analysis2.TimeFrame       = timeframe;
                    analysis2.TotalNumResults = results2.Count();


                    List <DateTime> dates2        = new List <DateTime>();
                    List <double>   resultValues2 = new List <double>();

                    foreach (ResultDA r in results2)
                    {
                        resultValues2.Add(r.Result);
                        dates2.Add(r.DateOfResult);
                    }

                    //AnalyseVM store results as arrays for use in graph
                    analysis2.Results     = resultValues2.ToArray();
                    analysis2.ResultDates = dates2.ToArray();

                    if (analysis2.EventType == "Time")
                    {
                        analysis2.BestResult   = analysis2.Results.Min();
                        analysis2.WorstResult  = analysis2.Results.Max();
                        analysis2.TargetResult = analysis2.BestResult * 0.95;
                    }
                    else if (analysis1.EventType == "Distance")
                    {
                        analysis2.BestResult   = analysis2.Results.Max();
                        analysis2.WorstResult  = analysis2.Results.Min();
                        analysis2.TargetResult = analysis2.BestResult * 1.05;
                    }

                    analysis2.AverageResult = analysis2.Results.Average();
                    compareList.Add(analysis1);
                    compareList.Add(analysis2);

                    return(View("CompareChart", compareList));
                }
                else
                {
                    return(View("NoResults"));
                }
            }
            catch (Exception e)
            {
                throw (new Exception("Error occured in AthleteController.Compare(aID1, aID2, eventName, timeframe)"));
            }
        }
Exemplo n.º 3
0
 public ActionResult AnalyseIndex(int athleteID, AnalyseVM a)
 {
     return(RedirectToAction("Analyse", new { aID = athleteID, eventName = a.EventName, timeframe = a.TimeFrame }));
 }