Esempio n. 1
0
        public static ActivityModel Activity(Entities.Activity activity, AppUser user)
        {
            //var locations = activity.Locations?.ToArray();
            //var locationCount = locations?.Length ?? 0;
            //double[,] locationsArray = new double[locationCount, 3];
            //for (int i = 0; i < locationCount; i++)
            //{
            //    var location = locations[i];
            //    for (int j = 0; j < 3; j++)
            //    {
            //        double value;
            //        switch (j)
            //        {
            //            case 0:
            //                value = location.Latitude;
            //                break;
            //            case 1:
            //                value = location.Longitude;
            //                break;
            //            default:
            //                value = location.Timestamp;
            //                break;
            //        }
            //        locationsArray[i, j] = value;
            //    }
            //}

            var locations = TrackSimplifier.Simplify(activity.Locations?.ToList(), 0.00001);

            return(new ActivityModel
            {
                ActivityId = activity.ActivityId,
                Name = activity.Name,
                ActivityType = ((ActivityTypeEnum)activity.TypeId).ToString(),
                ThumbnailUrl = $"https://api.mapbox.com/styles/v1/bradstiff/ck82jifv21bd01iphcban53j2/static/path-2+44f-1({activity.Polyline})/auto/450x300@2x?access_token=pk.eyJ1IjoiYnJhZHN0aWZmIiwiYSI6ImNrODI2MHFoNjB4ODIzbGxudmwwbnZrOHUifQ.17nFSlgt8O9-mFOpeiqMhg",
                ImageUrl = $"https://api.mapbox.com/styles/v1/bradstiff/ck82jifv21bd01iphcban53j2/static/path-2+44f-1({activity.Polyline})/auto/900x600@2x?access_token=pk.eyJ1IjoiYnJhZHN0aWZmIiwiYSI6ImNrODI2MHFoNjB4ODIzbGxudmwwbnZrOHUifQ.17nFSlgt8O9-mFOpeiqMhg",
                Athlete = $"{user.FirstName} {user.LastName}",
                AthletePhotoUrl = user.PhotoUrl,
                StartDateTime = activity.StartDateTime,
                EndDateTime = activity.EndDateTime,
                TotalTimeSeconds = activity.TotalTimeSeconds,
                TotalDistanceMeters = activity.TotalDistanceMeters,
                SkiTimeSeconds = activity.SkiTimeSeconds,
                SkiDistanceMeters = activity.SkiDistanceMeters,
                SkiVerticalMeters = activity.SkiVerticalMeters,
                AscentTimeSeconds = activity.AscentTimeSeconds,
                AscentDistanceMeters = activity.AscentDistanceMeters,
                AscentVerticalMeters = activity.AscentVerticalMeters,
                MaxSpeedMps = activity.MaxSpeedMps,
                AverageSpeedMps = activity.AverageSpeedMps,
                MaxAltitudeMeters = activity.MaxAltitudeMeters,
                MaxGradeDegrees = activity.MaxGradeDegrees,
                RunsCount = activity.RunsCount,
                Source = ((ActivitySourceTypeEnum)activity.SourceTypeId).ToString(),
                Timestamp = activity.Timestamp,
                Segments = activity.Segments?
                           .Select(s => new ActivitySegmentModel
                {
                    ActivitySegmentId = s.ActivitySegmentId,
                    Name = s.Name,
                    StartTimestamp = s.StartTimestamp,
                    EndTimestamp = s.EndTimestamp,
                    TotalTimeSeconds = s.TotalTimeSeconds,
                    MovingTimeSeconds = s.MovingTimeSeconds,
                    VerticalMeters = s.VerticalMeters,
                    StartAltitude = s.StartAltitude,
                    EndAltitude = s.EndAltitude,
                    DistanceMeters = s.DistanceMeters,
                    MaxSpeedMps = s.MaxSpeedMps,
                    AverageSpeedMps = s.AverageSpeedMps,
                    MaxGradeDegrees = s.MaxGradeDegrees,
                    IsRun = s.IsRun
                })
                           .OrderBy(s => s.StartTimestamp)
                           .ToList(),
                Locations = locations
                            .Select(l => new ActivityLocationModel
                {
                    Latitude = l.Latitude,
                    Longitude = l.Longitude,
                    Timestamp = l.Timestamp,
                })
                            .OrderBy(l => l.Timestamp)
                            .ToList(),
                //LocationsArray = locationsArray,
            });
        }
Esempio n. 2
0
 public virtual void Visit(string status, Entities.Activity activity, string newstatus)
 {
     transitions.Add(string.Format("{0}=={1}==>{2}", status, activity.Operation, newstatus));
 }