Example #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            RaceAggregate raceAggregate = db.RacesAggregates.Find(id);

            db.RacesAggregates.Remove(raceAggregate);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #2
0
 public ActionResult Edit([Bind(Include = "RaceAggregateId,RaceId,AthleteCount,DNFCount,MaleCount,FemaleCount,SwimMedian,BikeMedian,RunMedian,FinishMedian,SwimFastest,BikeFastest,RunFastest,FinishFastest,SwimSlowest,BikeSlowest,RunSlowest,FinishSlowest,SwimStdDev,BikeStdDev,RunStdDev,FinishStdDev")] RaceAggregate raceAggregate)
 {
     if (ModelState.IsValid)
     {
         db.Entry(raceAggregate).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.RaceId = new SelectList(db.Races, "RaceId", "BaseURL", raceAggregate.RaceId);
     return(View(raceAggregate));
 }
Example #3
0
        // GET: RaceAggregates/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RaceAggregate raceAggregate = db.RacesAggregates.Find(id);

            if (raceAggregate == null)
            {
                return(HttpNotFound());
            }
            return(View(raceAggregate));
        }
Example #4
0
        // GET: RaceAggregates/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RaceAggregate raceAggregate = db.RacesAggregates.Find(id);

            if (raceAggregate == null)
            {
                return(HttpNotFound());
            }
            ViewBag.RaceId = new SelectList(db.Races, "RaceId", "BaseURL", raceAggregate.RaceId);
            return(View(raceAggregate));
        }
        private void CreateRaceAggregates(Race race, string segment)
        {
            var agquery = _DBContext.AgeGroups.AsQueryable();

            switch (segment)
            {
            case "pro":
                agquery = agquery.Where(a => a.Value.ToLower().Equals("pro"));
                break;

            case "agegroupers":
                agquery = agquery.Where(a => !a.Value.ToLower().Equals("pro"));
                break;
                //default is all
            }

            List <Triathlete> athletes = _RaceService.GetAthletesFromStorage(
                new BasicRaceCriteria
            {
                SelectedRaceIds     = { race.RaceId },
                SelectedAgeGroupIds =
                    agquery.OrderBy(a => a.DisplayOrder).Select(a => a.AgeGroupId).ToList(),

                SelectedGenderIds =
                    _DBContext.Genders.Select(g => g.GenderId).ToList()
            }

                );

            if (athletes == null)
            {
                throw new Exception("No athletes");
            }

            var stats = GetStats(athletes, _DBContext.Races.Single(r => r.RaceId == race.RaceId));

            if (stats == null)
            {
                throw new Exception("No stats");
            }

            var aggr = _DBContext.RacesAggregates.
                       Where(r => r.RaceId == race.RaceId && r.Segment == segment).
                       FirstOrDefault();

            if (aggr == null)
            {
                aggr = new RaceAggregate();
            }


            aggr.RaceId       = race.RaceId;
            aggr.Segment      = segment;
            aggr.AthleteCount = athletes.Count;
            aggr.DNFCount     = stats.DNFCount;
            aggr.MaleCount    = athletes.Where(a => a.RequestContext.Gender.Value.Equals("M")).Count();
            aggr.FemaleCount  = athletes.Where(a => a.RequestContext.Gender.Value.Equals("F")).Count();


            aggr.SwimFastest   = stats.Swim.Min;
            aggr.BikeFastest   = stats.Bike.Min;
            aggr.RunFastest    = stats.Run.Min;
            aggr.FinishFastest = stats.Finish.Min;

            aggr.SwimSlowest   = stats.Swim.Max;
            aggr.BikeSlowest   = stats.Bike.Max;
            aggr.RunSlowest    = stats.Run.Max;
            aggr.FinishSlowest = stats.Finish.Max;

            aggr.SwimStdDev   = stats.Swim.StandDev;
            aggr.BikeStdDev   = stats.Bike.StandDev;
            aggr.RunStdDev    = stats.Run.StandDev;
            aggr.FinishStdDev = stats.Finish.StandDev;

            aggr.SwimMedian   = stats.Swim.Median;
            aggr.BikeMedian   = stats.Bike.Median;
            aggr.RunMedian    = stats.Run.Median;
            aggr.FinishMedian = stats.Finish.Median;


            _DBContext.RacesAggregates.AddOrUpdate(aggr);
            _DBContext.SaveChanges();
        }