示例#1
0
        public ActionResult <LiftRequest> Post([FromBody] LiftRequest liftRequest)
        {
            if (liftRequest == null)
            {
                return(BadRequest());
            }

            var journey = _carPoolContext.Journeys
                          .FirstOrDefault(j => j.Id == liftRequest.JourneyId);

            if (journey == null)
            {
                return(NotFound("Journey Not Found"));
            }

            if (journey.LiftRequests == null)
            {
                journey.LiftRequests = new List <LiftRequest>();
            }

            journey.LiftRequests.Add(liftRequest);

            _carPoolContext.SaveChanges();

            return(Ok(liftRequest));
        }
示例#2
0
        public ActionResult Put([FromBody] LiftRequest liftRequest)
        {
            var trackedLiftRequest = _carPoolContext.LiftRequests.FirstOrDefault(x => x.Id == liftRequest.Id);

            if (trackedLiftRequest == null)
            {
                return(BadRequest());
            }

            var journey = _carPoolContext.Journeys.Include(x => x.LiftRequests)
                          .FirstOrDefault(j => j.Id == trackedLiftRequest.JourneyId);

            if (journey == null)
            {
                return(NotFound("Journey Not Found"));
            }

            if (!journey.LiftRequests.Remove(trackedLiftRequest))
            {
                return(NotFound("Unable to remove LiftRequest from Journey"));
            }

            var passenger = _carPoolContext.Users.FirstOrDefault(x => x.Id == trackedLiftRequest.PassengerId);

            if (passenger == null)
            {
                return(NotFound("Unable to find passenger"));
            }

            if (journey.Passengers == null)
            {
                journey.Passengers = new List <User>();
            }

            journey.Passengers.Add(passenger);

            _carPoolContext.SaveChanges();


            var driver = journey.Passengers.FirstOrDefault(p => p.IsDriver);

            if (driver != null)
            {
                return(Ok(_nexmoSmsClient.SMS.Send(request: new SMS.SMSRequest
                {
                    @from = "Ac Car Pool",
                    to = passenger.PhoneNumber,
                    text = $"Good News, {driver.Name} has approved your lift request. Verify your journey here https://bit.ly/2Dh8KMX"
                })));
            }

            return(Ok());
        }
        public ActionResult Put([FromBody] LiftRequest liftRequest)
        {
            var trackedLiftRequest = _carPoolContext.LiftRequests.FirstOrDefault(x => x.Id == liftRequest.Id);

            if (trackedLiftRequest == null)
            {
                return(BadRequest());
            }

            var journey = _carPoolContext.Journeys.Include(x => x.LiftRequests)
                          .FirstOrDefault(j => j.Id == trackedLiftRequest.JourneyId);

            if (journey == null)
            {
                return(NotFound("Journey Not Found"));
            }

            if (!journey.LiftRequests.Remove(trackedLiftRequest))
            {
                return(NotFound("Unable to remove LiftRequest from Journey"));
            }

            var passenger = _carPoolContext.Users.FirstOrDefault(x => x.Id == liftRequest.PassengerId);

            if (passenger == null)
            {
                return(NotFound("Unable to find passenger"));
            }

            if (journey.Passengers == null)
            {
                journey.Passengers = new List <User>();
            }

            journey.Passengers.Add(passenger);

            _carPoolContext.SaveChanges();


            //var driver = journey.Passengers.FirstOrDefault(p => p.IsDriver);
            //if(driver != null)
            //{
            //    _nexmoSmsClient.SMS.Send(request: new SMS.SMSRequest
            //    {
            //        from = "",
            //        to = passenger.PhoneNumber,
            //        text = $"Your lift request with {driver.Name} has been accepted."
            //    });
            //}

            return(Ok());
        }
示例#4
0
        public ActionResult Delete([FromBody] LiftRequest liftRequest)
        {
            if (liftRequest == null)
            {
                return(BadRequest());
            }

            var journey = _carPoolContext.Journeys
                          .FirstOrDefault(j => j.Id == liftRequest.JourneyId);

            if (journey == null)
            {
                return(NotFound("Journey Not Found"));
            }

            if (!journey.LiftRequests.Remove(liftRequest))
            {
                return(NotFound("Unable to remove LiftRequest from Journey"));
            }

            _carPoolContext.SaveChanges();

            return(Ok());
        }