/// <summary>
        /// Create Activity Analytics based on the activity type.
        /// </summary>
        /// <returns>Analytics</returns>
        public ActivityAnalytics GetAnalytics()
        {
            if (!IsValid())
            {
                return(ActivityAnalytics.EmptyStream());
            }

            if (Activity.ActivityType.IsRide)
            {
                ZoneValueOnDay value = new ZoneValueOnDay();
                var            ftp   = value.GetUserZoneValueOnGivenDate(_activity.Athlete.UserId, enums.ZoneType.BikePower, _activity.Start);

                if (ftp == null)
                {
                    return(null);
                }

                return(ActivityAnalytics.RideCreateFromPowerStream(Stream, ftp.Value));
            }
            else if (Activity.ActivityType.IsRun)
            {
                return(ActivityAnalytics.RunCreateFromPaceOrHeartRateStream(Stream.Select(w => w.Velocity).ToList(), Stream.Select(w => w.HeartRate).ToList()));
            }
            else if (Activity.ActivityType.IsSwim)
            {
                return(ActivityAnalytics.SwimCreateFromPaceStream(Stream.Select(w => w.Velocity).ToList()));
            }
            else
            {
                return(ActivityAnalytics.OtherUnknown());
            }
        }
        public static ActivityDetailDto CreateForActivityWithNoDetails(Activity fvActivity)
        {
            ActivityDetailDto dto = ActivityDetailDto.CreateFromActivity(fvActivity);

            dto.Name = fvActivity.Name;


            dto.Analytics = ActivityAnalytics.EmptyStream();

            return(dto);
        }