Exemplo n.º 1
0
        public IActionResult PutVehicleStop(string vehicleId, string routeId, PutStopModel postedModel)
        {
            if (postedModel == null)
            {
                return(StatusCode(204));
            }

            if (!Guid.TryParse(vehicleId, out var vehicleGuidId))
            {
                return(NotFound("Invalid Vehicle id"));
            }

            if (!Guid.TryParse(routeId, out var routeGuidId))
            {
                return(NotFound("Invalid Route id"));
            }

            // extract latitude and longitude
            var coordinates = Helper.TryParseLocation(postedModel.stopLocation);

            if (!string.IsNullOrWhiteSpace(postedModel.stopLocation) && (coordinates.latitude == null || coordinates.longitude == null))
            {
                return(BadRequest("Invalid Stop Location"));
            }

            // create the instance
            var driverStopLog = new StopGeographicDetails
            {
                Id           = Guid.NewGuid(),
                routeId      = routeGuidId,
                address      = postedModel.stopAddress,
                stopName     = postedModel.stopName,
                latitude     = coordinates.latitude ?? 0,
                longitude    = coordinates.longitude ?? 0,
                stopDeadline = postedModel.stopDeadline
            };

            var vehicleStopXRef = new VehicleStopXRef
            {
                Id        = Guid.NewGuid(),
                vehicleId = vehicleGuidId,
                stopId    = driverStopLog.Id,
                createdOn = DateTimeOffset.Now
            };

            // add and save
            m_Context.StopGeographicDetails.Add(driverStopLog);
            m_Context.VehicleStopXRef.Add(vehicleStopXRef);
            m_Context.SaveChanges();

            // return result
            return(new OkObjectResult(new { driverStopLog.routeId, stopId = driverStopLog.Id }));
        }
Exemplo n.º 2
0
        public IActionResult PostRoute(string vehicleId, PostRouteModel postedModel)
        {
            if (postedModel == null)
            {
                return(StatusCode(204));
            }

            if (!Guid.TryParse(vehicleId, out var vehicleGuidId))
            {
                return(BadRequest("Invalid vehicleId"));
            }

            if (string.IsNullOrWhiteSpace(postedModel.startLocation))
            {
                return(BadRequest("Invalid startLocation"));
            }

            // extract latitude and longitude
            var startCoordinates = Helper.TryParseLocation(postedModel.startLocation);

            if (startCoordinates.latitude == null || startCoordinates.longitude == null)
            {
                return(BadRequest("Invalid startLocation"));
            }

            if (string.IsNullOrWhiteSpace(postedModel.stopLocation))
            {
                return(BadRequest("Invalid stopLocation"));
            }

            var stopCoordinates = Helper.TryParseLocation(postedModel.stopLocation);

            if (stopCoordinates.latitude == null || stopCoordinates.longitude == null)
            {
                return(BadRequest("Invalid stopLocation"));
            }

            var route = new Route
            {
                Id             = Guid.NewGuid(),
                startName      = postedModel.startName,
                startAddress   = postedModel.startAddress,
                startLatitude  = startCoordinates.latitude.Value,
                startLongitude = startCoordinates.longitude.Value,
                comment        = postedModel.routeAddInstructions
            };

            var stop = new StopGeographicDetails
            {
                Id           = Guid.NewGuid(),
                routeId      = route.Id,
                address      = postedModel.stopAddress,
                stopName     = postedModel.stopName,
                latitude     = stopCoordinates.latitude ?? 0,
                longitude    = stopCoordinates.longitude ?? 0,
                stopDeadline = postedModel.stopDeadline
            };

            var vehicleStopXRef = new VehicleStopXRef
            {
                Id        = Guid.NewGuid(),
                vehicleId = vehicleGuidId,
                stopId    = stop.Id,
                createdOn = DateTimeOffset.Now
            };

            // add and save
            m_Context.Route.Add(route);
            m_Context.StopGeographicDetails.Add(stop);
            m_Context.VehicleStopXRef.Add(vehicleStopXRef);
            m_Context.SaveChanges();

            // return result
            return(new OkObjectResult(new { routeId = route.Id, stopId = stop.Id }));
        }