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); }