Пример #1
0
        public async Task AddAsync(Guid userId, string name, double startLatitude,
                                   double startLongitude, double endLatitude, double endLongitude)
        {
            var driver = await _driverRepository.GetDriverOrFailAsync(userId);

            var startNodeName = await _routeManager.GetAddresAsync(startLatitude, startLongitude);

            var endNodeName = await _routeManager.GetAddresAsync(endLatitude, endLongitude);

            var startNode = Node.Create(startNodeName, startLatitude, startLongitude);
            var endNode   = Node.Create(endNodeName, endLatitude, endLongitude);
            var distance  = _routeManager.CalculateDistance(startLongitude, startLongitude, endLatitude, endLongitude);

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