Example #1
0
        private int SaveRide(int userId, CreateRideDto model)
        {
            var routeSvgPath = new SvgBuilder(model.Locations.Cast <ILatLng>()).Build();

            Ride ride = new Ride();

            ride.StartUtc        = model.StartUtc;
            ride.EndUtc          = model.EndUtc;
            ride.UserId          = userId;
            ride.AverageSpeedMph = model.Locations.Average(i => i.Mph);
            ride.MaxSpeedMph     = model.Locations.Max(i => i.Mph);
            ride.DistanceMiles   = DistanceHelpers.GetDistanceMile(model.Locations.Cast <ILatLng>().ToList());
            ride.RouteSvgPath    = routeSvgPath;

            ride.RideLocations = model.Locations
                                 .Select(i => new RideLocation {
                AccuracyInMetres = i.AccuracyInMetres,
                Altitude         = i.Altitude,
                Latitude         = i.Latitude,
                Longitude        = i.Longitude,
                Mph       = i.Mph,
                Timestamp = i.Timestamp,
            })
                                 .ToList();

            ride.Jumps = model.Jumps
                         .Select(i => new Jump {
                Airtime   = i.Airtime,
                Number    = i.Number,
                Timestamp = i.Timestamp,
                Latitude  = i.Latitude,
                Longitude = i.Longitude,
            })
                         .ToList();

            ride.AccelerometerReadings = model.AccelerometerReadings
                                         .Select(i => new AccelerometerReading {
                Time = i.Timestamp,
                X    = i.X,
                Y    = i.Y,
                Z    = i.Z,
            })
                                         .ToList();

            context.Rides.Add(ride);

            context.SaveChanges();

            return(ride.RideId);
        }