public void CreateRide([FromBody] RideVM ride, [FromQuery] string userId) { int[] res = new int[2]; Ride newRide; newRide = _mapper.Map <Ride>(ride); string From, To; if (ride.Route.ViaPoints != null) { for (int i = 0; i < ride.Route.ViaPoints.Count; i++) { ViaPoint viaPoint = new ViaPoint(); if (i == 0) { From = ride.Route.Source; } else { From = ride.Route.ViaPoints[i - 1].Location; viaPoint.Distance = newRide.Route.ViaPoints[i - 1].Distance; viaPoint.Duration = newRide.Route.ViaPoints[i - 1].Duration; } To = ride.Route.ViaPoints[i].Location; res = GetDetails(From, To); viaPoint.Distance += res[0] / 1000; viaPoint.Duration += TimeSpan.FromSeconds(res[1]); viaPoint.Location = ride.Route.ViaPoints[i].Location; newRide.Route.ViaPoints.Add(viaPoint); } From = ride.Route.ViaPoints.Last().Location; newRide.Distance = newRide.Route.ViaPoints.Last().Distance; // newRide.EndDateTime += newRide.Route.ViaPoints.Last().Duration; } else { From = ride.Route.Source; } res = GetDetails(From, ride.Route.Destination); newRide.Distance += res[0] / 1000; // newRide.EndDateTime += TimeSpan.FromSeconds(res[1]); newRide.ProviderId = userId; _rideService.CreateRide(newRide); }
public IActionResult Upsert(RideVM rideVM) { if (ModelState.IsValid) { if (rideVM.Ride.Id == Guid.Empty) { _db.Rides.Add(rideVM.Ride); } else { //var rideFromDb = _db.Rides.AsNoTracking().FirstOrDefault(x => x.Id == rideVM.Ride.Id); //if (rideFromDb == null) //{ // return NotFound(); //} _db.Rides.Update(rideVM.Ride); } _db.SaveChanges(); return(RedirectToAction("Index")); } rideVM.CarSelectList = _db.Cars.Select(i => new SelectListItem { Text = i.Name, Value = i.Id.ToString() }); rideVM.PlaceStartSelectList = _db.Places.Select(i => new SelectListItem { Text = i.Name, Value = i.Id.ToString() }); rideVM.PlaceEndSelectList = _db.Places.Select(i => new SelectListItem { Text = i.Name, Value = i.Id.ToString() }); return(View(rideVM)); }
//GET for UPSERT public IActionResult Upsert(Guid?id) { //Ride ride = new Ride(); RideVM rideVM = new RideVM() { Ride = new Ride(), CarSelectList = _db.Cars.Select(i => new SelectListItem { Text = i.Name, Value = i.Id.ToString() }), PlaceStartSelectList = _db.Places.Select(i => new SelectListItem { Text = i.Name, Value = i.Id.ToString() }), PlaceEndSelectList = _db.Places.Select(i => new SelectListItem { Text = i.Name, Value = i.Id.ToString() }) }; if (id == null) { return(View(rideVM)); } else { rideVM.Ride = _db.Rides.Find(id); if (rideVM.Ride == null) { return(NotFound()); } } return(View(rideVM)); }
public IActionResult UpdateRide([FromBody] RideVM rideViewModel) { return(GetResult(() => _rideService.UpdateRide(rideViewModel.MapToRideModel()), r => r)); }