예제 #1
0
        async Task RefreshCommandExecute()
        {
            if (this.IsBusy)
            {
                return;
            }

            this.IsBusy = true;
            this.RefreshCommand.ChangeCanExecute();

            try
            {
                Ceps.Clear();

                foreach (var item in Data.DatabaseService.Current.Listar())
                {
                    this.Ceps.Add(item);
                }

                await Task.FromResult(0);
            }
            catch (Exception ex)
            {
                await App.Current.MainPage.DisplayAlert("Alerta!", ex.Message, "OK");
            }
            finally
            {
                this.IsBusy = false;
                this.RefreshCommand.ChangeCanExecute();
            }
        }
예제 #2
0
        async Task RefreshCommandExecute()
        {
            try
            {
                await Task.FromResult <object>(null);

                if (IsBusy)
                {
                    return;
                }

                IsBusy = true;
                RefreshCommand.ChangeCanExecute();

                Ceps.Clear();

                foreach (var item in DatabaseService.Current.CepGetAll())
                {
                    Ceps.Add(item);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #3
0
 public CepsViewModel() : base()
 {
     MessagingCenter.Subscribe <BuscaCepViewModel>(this, "ADICIONAR_CEP", (sender) =>
     {
         if (!Ceps.Any(lbda => lbda.Equals(sender.CEP)))
         {
             Ceps.Add(sender.CEP);
         }
     });
 }
예제 #4
0
        public ActionResult <Ceps> CreateOrUpdate([FromQuery(Name = "cep")] string cep)
        {
            var tokenApi = _config["APICEP:Token"];

            cep = cep.Replace("-", "").Replace(".", "");
            var client  = new RestClient("https://www.cepaberto.com/api/v3/");
            var request = new RestRequest($"cep?cep={cep}");

            request.AddHeader("Authorization", $"Token token={tokenApi}");

            var     response = client.Get(request).Content;
            JObject json     = JObject.Parse(response);

            if (response == "{}")
            {
                return(NotFound("CEP inexistente."));
            }

            var cidadeApi     = json["cidade"]["nome"].ToString();
            var cepApi        = Convert.ToInt64(json["cep"].ToString());
            var logadrouroApi = json["logradouro"].ToString();
            var bairroApi     = json["bairro"].ToString();
            var estadoApi     = json["estado"]["sigla"].ToString();

            var cepFind = Get(cep).Value;

            if (cepFind == null)
            {
                var cepCreated = new Ceps()
                {
                    Bairro     = bairroApi,
                    Cep        = cepApi,
                    Cidade     = cidadeApi,
                    Logradouro = logadrouroApi,
                    Estado     = estadoApi,
                };
                var created = _cepService.Create(cepCreated);
                return(created);
            }
            else
            {
                if (cepFind.Bairro != bairroApi || cepFind.Logradouro != logadrouroApi || cepFind.Cidade != cidadeApi || cepFind.Estado != estadoApi)
                {
                    cepFind.Bairro     = bairroApi;
                    cepFind.Logradouro = logadrouroApi;
                    cepFind.Cidade     = cidadeApi;
                    cepFind.Estado     = estadoApi;
                    Update(cep, cepFind);
                }
            }

            return(cepFind);
        }
예제 #5
0
        async Task RefreshCommandExecute()
        {
            try
            {
                if (IsBusy)
                {
                    return;
                }

                IsBusy = true;
                RefreshCommand.ChangeCanExecute();

                Ceps.Clear();

                // Recupera informações do banco de dados remoto API (Aula 4)
                foreach (var item in await BuscaCepHttpClient.Current.GetCeps())
                {
                    Ceps.Add(item);
                }

                // Recupera informações do banco de dados local (SQLite - Aula 3 parte 2)
                //foreach (var item in DatabaseService.Current.CepGetAll())
                //{
                //    Ceps.Add(item);
                //}
            }
            catch (UnauthorizedAccessException ex)
            {
                if (await App.Current.MainPage.DisplayAlert("Ooops", ex.Message, "Sim", "Não"))
                {
                    await BuscaCepHttpClient.Current.Autenticar(SEU_USUARIO, SUA_SENHA);

                    IsBusy = false;
                    RefreshCommand.ChangeCanExecute();

                    await RefreshCommandExecute();
                }
            }
            catch (InvalidOperationException ex)
            {
                await App.Current.MainPage.DisplayAlert("Ooops", ex.Message, "Ok");
            }
            catch (Exception ex)
            {
                await App.Current.MainPage.DisplayAlert("Ah não!", ex.Message, "Ok");
            }
            finally
            {
                IsBusy = false;
                RefreshCommand.ChangeCanExecute();
            }
        }
        private async Task RefreshCommandExecute()
        {
            try
            {
                await Task.FromResult <object>(null);

                RefreshCommand.ChangeCanExecute();

                //LIMPAMOS A LISTA ANTES DE APRESENTAR AO NOSSO CLIENTE
                Ceps.Clear();
                //ADICIONA O NOVO CEP A LISTA QUE VAI PARA A VIEW
                foreach (var item in DatabaseService.Current.GetAll())
                {
                    Ceps.Add(item);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #7
0
 private void Update(string cep, Ceps cepIn)
 {
     _cepService.Update(cep, cepIn);
 }
예제 #8
0
 public void Update(string cep, Ceps cepIn) =>
 _ceps.ReplaceOne(u => u.Cep == Convert.ToInt64(cep), cepIn);
예제 #9
0
 public Ceps Create(Ceps cep)
 {
     _ceps.InsertOne(cep);
     return(cep);
 }