示例#1
0
        //async - método assincrono
        private async void LoadRates()
        {
            bool load; /*variável para controlar se o load das taxas já foi feito*/

            //Fazer o check da connection
            LabelResultado.Text = "A atualizar taxas...";
            var connection = netWorkService.CheckConnection(); /*variavel para testar a conecção*/

            if (!connection.IsSuccecc)
            {
                //Carregar as taxas da base de dados
                LoadLocalRates();
                load = false;
            }
            else
            {
                //Vou chamar a API através de um método
                await LoadApiRates();

                load = true;
            }

            //as listas não foram carregadas
            if (Rates.Count == 0)
            {
                LabelResultado.Text = "Não há ligação à internet" + Environment.NewLine +
                                      "e não foram carregadas previamente as taxas." + Environment.NewLine +
                                      "Tente mais tarde!";

                LabelStatus.Text = "Primeira inicialização deverá ter ligação à Internet!";

                return;
            }

            ComboBoxOrigem.DataSource    = Rates;
            ComboBoxOrigem.DisplayMember = "Name";

            // Corrige bug da microsoft
            // Para que possa alterar a taxa de uma ComboBox sem que altere na outra ComboBox
            // BindingContext - Classe que liga os objetos do interface ao código
            ComboBoxDestino.BindingContext = new BindingContext();

            ComboBoxDestino.DataSource    = Rates;
            ComboBoxDestino.DisplayMember = "Name";

            if (load) /*taxas carregadas da API*/
            {
                LabelStatus.Text = string.Format("Taxas carregadas da internet em {0:F}", DateTime.Now);
            }
            else /*taxas carregadas da base de dados*/
            {
                LabelStatus.Text = "Taxas carregadas da Base de Dados.";
            }

            ProgressBar1.Value      = 100;
            LabelResultado.Text     = "Taxas atualizadas...";
            ButtonConverter.Enabled = true;
            ButtonTrocar.Enabled    = true;
        }
示例#2
0
        private async void LoadRates()
        {
            bool load;

            labelResultado.Text = "A atualizar taxas...";

            var connection = netWorkService.CheckConnection();

            if (!connection.IsSuccess)
            {
                LoadLocalRates();
                load = false;
            }
            else
            {
                await LoadApiRates();

                load = true;
            }

            if (Rates.Count == 0)
            {
                labelResultado.Text = "Não há ligação a internet" + Environment.NewLine + "e não foram previmente carregadas as taxas." + Environment.NewLine + "tente mais tarde!";

                labelStatus.Text = "Primeira inicialização devera ter ligação a internet";

                return;
            }

            comboBoxOrigem.DataSource    = Rates;
            comboBoxOrigem.DisplayMember = "Name";

            comboBoxDestino.BindingContext = new BindingContext();

            comboBoxDestino.DataSource    = Rates;
            comboBoxDestino.DisplayMember = "Name";



            labelResultado.Text = "Taxas Carregadas...";

            if (load)
            {
                labelStatus.Text = string.Format("Taxas carregadas da internet em {0:F}", DateTime.Now);
            }
            else
            {
                labelStatus.Text = string.Format("Taxas carregadas na base de dados.");
            }

            progressBar1.Value      = 100;
            ButtonConverter.Enabled = true;
            buttonTroca.Enabled     = true;
        }