Beispiel #1
0
        public async Task <RouteDto> HandleAsync(GetRoute query)
        {
            try
            {
                var addressesInfo = string.Join(", ", query.Addresses);
                _logger.LogInformation($"Calculating the optimal route for addresses: {addressesInfo}...");
                // Let's assume it's a time consuming calculation.
                await Task.Delay(2000);

                var route = _routingService.Calculate(query.Addresses);
                _logger.LogInformation($"The optimal route for addresses: {addressesInfo} was calculated, " +
                                       $"total distance: {route.TotalDistance} km.");

                return(new RouteDto
                {
                    Addresses = route.Addresses,
                    TotalDistance = route.TotalDistance
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);

                return(null);
            }
        }
        public async Task <RouteDto> HandleAsync(GetRoute query)
        {
            if (query.Addresses is null || !query.Addresses.Any())
            {
                throw new Exception("Route cannot be calculated without the addresses.");
            }

            var addressesInfo = string.Join(", ", query.Addresses);

            _logger.LogInformation($"Calculating the optimal route for addresses: {addressesInfo}");
            // Let's assume it's a time consuming calculation.
            await Task.Delay(3000);

            var route = _routingService.Calculate(query.Addresses);

            _logger.LogInformation($"The optimal route for addresses: {addressesInfo} was calculated," +
                                   $"total distance: {route.TotalDistance} km.");

            return(route);
        }