示例#1
0
        private void CalculateActivity(Activity fvActivity)
        {
            ActivityStreams stream = ActivityStreams.CreateFromExistingActivityStream(fvActivity.Id);

            // stream must have watts to calculate TSS/IF!
            if (!stream.HasIndividualStream(enums.StreamType.Watts))
            {
                return;
            }

            ZoneValueOnDay value = new ZoneValueOnDay();
            var            ftp   = value.GetUserZoneValueOnGivenDate(fvActivity.Athlete.UserId, enums.ZoneType.BikePower, fvActivity.Start);

            if (ftp == null)
            {
                return;
            }

            BikePower calc = new BikePower(stream.GetIndividualStream <int?>(enums.StreamType.Watts), ftp.Value);

            fvActivity.TSS             = calc.TSS();
            fvActivity.IntensityFactor = calc.IntensityFactor();

            _uow.Complete();
        }
        private void CalculateStats()
        {
            ActivityStreams.CreateFromExistingActivityStream(_jobDetails.ActivityId.Value)
            .CalculatePeak(StreamType.Watts, _jobDetails.Duration)
            .Save(false);

            _jobDetails.MarkJobComplete();
            _uow.Complete();
        }
示例#3
0
        public ActionResult Recalculate(long?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ActivityStreams.CreateFromExistingActivityStream(id.Value)
            .CalculatePeaksAndSave();

            return(RedirectToAction("ViewActivity", new { id = id }));
        }
示例#4
0
        public ActionResult GetActivitySummaryInformation([System.Web.Http.FromUri] SummaryInformationRequest detail)
        {
            ActivityStreams details = ActivityStreams.CreateFromExistingActivityStream(detail.activityId, detail.startIndex, detail.endIndex);

            if (details.UserId != User.Identity.GetUserId())
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ActivityMinMaxDto mma = new ActivityMinMaxDto(details);

            mma.Populate();
            mma.Label = detail.selection;

            return(PartialView("_ActivitySummaryInformation", mma));
        }
        public static new ActivityDetailDto CreateFromActivity(Activity fvActivity)
        {
            LapDtoRepository  repo = new LapDtoRepository();
            ActivityDetailDto m    = Mapper.Map <ActivityDetailDto>(ActivityDto.CreateFromActivity(fvActivity));

            m.ActivityStream = ActivityStreams.CreateFromExistingActivityStream(fvActivity.Id);// uow.Activity.GetActivityStream(fvActivity.Id);

            m.Laps      = repo.GetLaps(fvActivity.Id);
            m.HeartRate = repo.GetLapStream(fvActivity.Id, PeakStreamType.HeartRate);
            m.Cadence   = repo.GetLapStream(fvActivity.Id, PeakStreamType.Cadence);

            ActivityMinMaxDto mma = new ActivityMinMaxDto(m.ActivityStream);

            mma.Populate();
            m.SummaryInfo = mma;

            m.Analytics = m.SummaryInfo.Analytics;

            ActivityZones zones = new ActivityZones(m);

            if (m.IsRun)
            {
                m.HeartRateZones = zones.GetZoneValues(ZoneType.RunHeartRate);
                m.RunPaceZones   = zones.GetZoneValues(ZoneType.RunPace);
                m.PaceByDistance = repo.GetBestEffort(fvActivity.Id);
            }
            else if (m.IsRide)
            {
                m.HeartRateZones = zones.GetZoneValues(ZoneType.BikeHeartRate);

                if (m.HasPowerMeter)
                {
                    m.Power      = repo.GetLapStream(fvActivity.Id, PeakStreamType.Power);
                    m.PowerZones = zones.GetZoneValues(ZoneType.BikePower);  // uow.Settings.GetZoneValues(m, ZoneType.BikePower);
                }
            }
            else if (m.IsSwim)
            {
            }


            return(m);
        }