コード例 #1
0
        public async Task AddAsync(Guid userId, string name,
                                   double startLatitude, double startLongitude,
                                   double endLatitude, double endLongitude)
        {
            var driver = await _driverRepository.GetOrFailAsync(userId);

            var startAddress = await _routeManager.GetAddressAsync(startLatitude, startLongitude);

            var endAddress = await _routeManager.GetAddressAsync(endLatitude, endLongitude);

            var startNode = Node.Create(startAddress, startLatitude, startLongitude);
            var endNode   = Node.Create(endAddress, endLatitude, endLongitude);
            var distance  = _routeManager.CalculateLength(startLatitude, startLongitude,
                                                          endLatitude, endLongitude);

            driver.AddRoute(name, startNode, endNode, distance);
            await _driverRepository.UpdateAsync(driver);
        }