コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        //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));
        }
コード例 #4
0
 public IActionResult UpdateRide([FromBody] RideVM rideViewModel)
 {
     return(GetResult(() => _rideService.UpdateRide(rideViewModel.MapToRideModel()), r => r));
 }