Beispiel #1
0
        public bool IsAuthorizedToEdit(RidesRequestData RequestData)
        {
            bool result = false;

            if (!RideExists(RequestData.RideId))
            {
                return(result);
            }

            Ride ride = _context.Rides.SingleOrDefault(m => m.ID == RequestData.RideId);

            if (RiderExists(RequestData.RiderId))
            {
                // 2 cases either the rider created the ride or the rider
                // has admin rights.
                if (RequestData.RiderId == ride.CreatorId)
                {
                    if (IsAuthorizedRider(RequestData))
                    {
                        result = true;
                    }
                }
                else
                {
                    if (IsAuthorizedAdmin(RequestData))
                    {
                        result = true;
                    }
                }
            }
            return(result);
        }
 public IActionResult GetAllRides(RidesRequestData RequestData)
 {
     if (!_service.IsAuthorizedRider(RequestData))
     {
         return(Unauthorized());
     }
     return(Ok(_context.Rides.ToList()));
 }
Beispiel #3
0
 public Ride GetRide(RidesRequestData RequestData)
 {
     if (RequestData.RideId > 0)
     {
         Ride ride = _context.Rides.SingleOrDefault <Ride>(r => r.ID == RequestData.RideId);
         return(ride);
     }
     return(null);
 }
Beispiel #4
0
        public void UpdateRide(Ride rideToUpdate, RidesRequestData RequestData)
        {
            rideToUpdate.RideName    = RequestData.RideName;
            rideToUpdate.Description = RequestData.Description;
            rideToUpdate.Distance    = RequestData.Distance;
            rideToUpdate.StartDate   = RequestData.RideStart;

            _context.Rides.Update(rideToUpdate);
            _context.SaveChanges();
        }
        public IActionResult GetPastRides(RidesRequestData RequestData)
        {
            if (!_service.IsAuthorizedRider(RequestData))
            {
                return(Unauthorized());
            }
            List <Ride> rides = _service.GetPastRides(RequestData);

            return(Ok(rides));
        }
Beispiel #6
0
        public List <Ride> GetPastRides(RidesRequestData RequestData)
        {
            DateTime startDate = new DateTime(
                RequestData.TargetYear,
                RequestData.TargetMonth,
                RequestData.TargetDay);

            return(_context.Rides.
                   Where(r => r.StartDate < startDate)
                   .OrderBy(r => r.StartDate)
                   .ToList());
        }
Beispiel #7
0
        public Ride AddRide(RidesRequestData RequestData)
        {
            Ride ride = new Ride();

            ride.RideName    = RequestData.RideName;
            ride.Description = RequestData.Description;
            ride.Distance    = RequestData.Distance;
            ride.StartDate   = RequestData.RideStart;
            ride.CreatorId   = RequestData.RiderId;
            _context.Add(ride);
            _context.SaveChanges();
            return(ride);
        }
Beispiel #8
0
        public List <Ride> GetTodaysRides(RidesRequestData RequestData)
        {
            DateTime startDate = new DateTime(
                RequestData.TargetYear,
                RequestData.TargetMonth,
                RequestData.TargetDay);

            DateTime endDate = startDate.AddDays(1).AddTicks(-1);

            return(_context.Rides.
                   Where(r => r.StartDate >= startDate && r.StartDate <= endDate)
                   .OrderBy(r => r.StartDate)
                   .ToList());
        }
        public IActionResult CreateRide([FromBody] RidesRequestData RequestData)
        {
            if (!_service.IsAuthorizedRider(RequestData))
            {
                return(Unauthorized());
            }

            if (ModelState.IsValid)
            {
                // convert time back to local time,
                RequestData.RideStart = TimeZoneInfo.ConvertTimeFromUtc(RequestData.RideStart, TimeZoneInfo.Local);
                var ride = _service.AddRide(RequestData);
                return(Accepted(ride));
            }
            return(Unauthorized());
        }
        public IActionResult GetRide(RidesRequestData RequestData)
        {
            if (!_service.IsAuthorizedRider(RequestData))
            {
                return(Unauthorized());
            }

            Ride ride = _service.GetRide(RequestData);

            // Use the defualt Detials method...
            if (ride != null)
            {
                return(Ok(ride));
            }

            return(NotFound());;
        }
        public async Task <IActionResult> DeleteRide([FromBody] RidesRequestData RequestData)
        {
            if (!_service.IsAuthorizedToEdit(RequestData))
            {
                return(Unauthorized());
            }

            var ride = await _context.Rides.SingleOrDefaultAsync(m => m.ID == RequestData.RideId);

            if (ride == null)
            {
                return(NotFound());
            }

            // Do the delete...
            _context.Rides.Remove(ride);
            await _context.SaveChangesAsync();

            //return RedirectToAction(nameof(Index));
            return(Ok());
        }
        public IActionResult EditRide([FromBody] RidesRequestData RequestData)
        {
            if (!_service.IsAuthorizedToEdit(RequestData))
            {
                return(Unauthorized());
            }

            var rideToUpdate = _context.Rides.SingleOrDefault(m => m.ID == RequestData.RideId);

            if (rideToUpdate != null)
            {
                try
                {
                    _service.UpdateRide(rideToUpdate, RequestData);
                    return(Ok());
                }

                catch (DbUpdateException /* ex */)
                {
                    return(NotFound());
                }
            }
            return(NotFound());
        }
Beispiel #13
0
 public bool IsAuthorizedRider(RidesRequestData RequestData)
 {
     return(_riderService.IsAuthorizedRider(RequestData.RiderId, RequestData.Authorization));
 }