public Trip AddTrip(Trip trip) { trip.User = _applicationUser; trip.Date = trip.Date.ToUniversalTime(); trip.AddressOrigin = trip.ResolveAddress(_dbContext, _applicationUser.Id, trip.AddressOrigin); trip.AddressDestination = trip.ResolveAddress(_dbContext, _applicationUser.Id, trip.AddressDestination); trip.Car = trip.ResolveCar(_dbContext, _applicationUser.Id, trip.Car); if (trip.AddressOrigin != null && trip.AddressDestination != null) { trip.DistanceInKm = _distanceCalculatorService.GetDistance(trip.AddressOrigin, trip.AddressDestination, Mode.Driving, Units.Metric); } _dbContext.Trips.Add(trip); _dbContext.SaveChanges(); return trip; }
public Trip UpdateTrip(Trip trip) { var existingTrip = _dbContext.Trips.SingleOrDefault(t => t.User.Id == _applicationUser.Id && t.Id == trip.Id); if (existingTrip == null) { throw new ObjectNotFoundException(); } existingTrip.Date = trip.Date.ToUniversalTime(); existingTrip.AddressOrigin = trip.ResolveAddress(_dbContext, _applicationUser.Id, trip.AddressOrigin); existingTrip.AddressDestination = trip.ResolveAddress(_dbContext, _applicationUser.Id, trip.AddressDestination); existingTrip.Car = trip.ResolveCar(_dbContext, _applicationUser.Id, trip.Car); existingTrip.Remarks = trip.Remarks; if (existingTrip.AddressOrigin != null && existingTrip.AddressDestination != null) { existingTrip.DistanceInKm = _distanceCalculatorService.GetDistance(existingTrip.AddressOrigin, existingTrip.AddressDestination, Mode.Driving, Units.Metric); } existingTrip.Remarks = trip.Remarks; _dbContext.SaveChanges(); return existingTrip; }