Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }