public async Task Execute(InputData inputData, CancellationToken cancellationToken) { try { cancellationToken.ThrowIfCancellationRequested(); var countries = await _countriesService.GetAll(inputData.Filter); cancellationToken.ThrowIfCancellationRequested(); var outputDataCountries = countries.Select(country => new OutputDataCountryItem( country.Name, country.Abbreviation, country.Flag, country.Currencies.Select(currency => new OutputDataCountryCurrencyItem(currency.Name)).ToArray(), country.EconomicGroups.Select(regionalBloc => new OutputDataCountryEconomicBlocItem(regionalBloc.Acronym, regionalBloc.Name)).ToArray() )).ToList(); var outputData = new OutputData(outputDataCountries); cancellationToken.ThrowIfCancellationRequested(); _outputPort.Success(outputData); } catch (OperationCanceledException) { _outputPort.Cancelled(); } catch (InvalidOperationException) { _outputPort.ExternalServiceError(); } }
public async Task Execute(InputData inputData) { try { var countries = await _countriesService.GetByRegion(inputData.RegionName); var outputDataCountries = countries.Select(country => new OutputDataCountryItem( country.Name, country.Abbreviation, country.Flag )).ToList(); var outputData = new OutputData(outputDataCountries); _outputPort.Success(outputData); } catch (InvalidOperationException) { _outputPort.ExternalServiceError(); } }