protected override async Task ExecuteExternal(object parameter)
        {
            var mainViewModel = _container.Resolve <MainViewModel>();
            var id            = (mainViewModel.SelectedCurrency ?? throw new NotSupportedException()).Id;
            var repository    = _container.Resolve <ICurrencyRepository>();
            var currencyInfo  = await repository.GetCurrencyAsync(id);

            await DispatcherHelper.BeginInvokeInMainThread(() =>
            {
                mainViewModel.SelectedCurrencyInfo = currencyInfo;
            });
        }
        protected override async Task ExecuteExternal(object parameter)
        {
            var mainViewModel          = _container.Resolve <MainViewModel>();
            var repository             = _container.Resolve <ICurrencyRepository>();
            var convertedCurrencyValue = await repository.ConvertCurrencyAsync(
                mainViewModel.SourceConvertingCurrency.Id,
                mainViewModel.SourceConvertingValue,
                mainViewModel.TargetConvertingCurrency.Id);

            await DispatcherHelper.BeginInvokeInMainThread(() =>
            {
                mainViewModel.TargetConvertingValue =
                    convertedCurrencyValue;
            });
        }
        protected override async Task ExecuteExternal(object parameter)
        {
            var mainViewModel    = _container.Resolve <MainViewModel>();
            var repository       = _container.Resolve <ICurrencyRepository>();
            var currencyInfoList = await repository.FindCurrencyAsync(mainViewModel.SearchString);

            await DispatcherHelper.BeginInvokeInMainThread(() =>
            {
                mainViewModel.FoundCurrencyCollection.Clear();

                foreach (var currency in currencyInfoList)
                {
                    mainViewModel.FoundCurrencyCollection.Add(currency);
                }
            });
        }
        protected override async Task ExecuteExternal(object parameter)
        {
            var mainViewModel    = _container.Resolve <MainViewModel>();
            var repository       = _container.Resolve <ICurrencyRepository>();
            var currencyCodeList = await repository.GetCurrencyListAsync();

            await DispatcherHelper.BeginInvokeInMainThread(() =>
            {
                mainViewModel.CurrencyPreviewCollection.Clear();

                foreach (var currency in currencyCodeList)
                {
                    mainViewModel.CurrencyPreviewCollection.Add(currency);
                }

                var selectedCurrency                   = mainViewModel.CurrencyPreviewCollection.FirstOrDefault();
                mainViewModel.SelectedCurrency         = selectedCurrency;
                mainViewModel.SourceConvertingCurrency = selectedCurrency;
                mainViewModel.TargetConvertingCurrency = selectedCurrency;
            });
        }