public RideRecorder(MainContext context) { this.context = context; Ride = new CreateRideDto(); readings = new List <AccelerometerReadingDto>(); jumpDetectionUtility = new JumpDetectionUtility(this); }
public RideRecorder(MainContext context) { this.context = context; this.detectJumps = context.Settings.IsDetectingJumps; Ride = new CreateRideDto(); readings = new List <AccelerometerReadingDto>(); jumpDetectionUtility = new JumpDetectionUtility(context.GeoUtility); }
public async Task SaveRideUpload(CreateRideDto ride) { if (ride.Id == null) { ride.Id = Guid.NewGuid(); PendingRideUploads.Add(ride); } await Storage.SaveObject(ride.Id.Value, ride); }
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); }
public ActionResult <RideOverviewDto> Add(CreateRideDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } int userId = this.GetCurrentUserId(); int rideId = SaveRide(userId, model); Analyser.AnalyseRide(context, userId, rideId); return(GetRideOverview(rideId)); }
public async Task RemoveUploadRide(CreateRideDto ride) { PendingRideUploads.Remove(ride); await Storage.RemoveObject <CreateRideDto>(ride.Id.Value); }
public async Task <RideOverviewDto> UploadRide(CreateRideDto ride) { return(await PostAsync <RideOverviewDto>("rides/add", ride)); }