private async void OnSincronizarNuvem() { if (_sincronizandoComNuvem) { return; } _sincronizandoComNuvem = true; View.ExibeProgressoWeb(true); View.HabilitarBotaoSincronizacaoNuvem(false); var resultadoProdutosNaoSincronizados = await _produtoRepository.BuscaProdutosNaoSincronizados(); if (!resultadoProdutosNaoSincronizados.Valido) { _dialogService.Mensagem(resultadoProdutosNaoSincronizados.Mensagem); HabilitaSincronizacao(); return; } var produtos = resultadoProdutosNaoSincronizados.Valor; var resultadoWeb = await _produtoClientService.SalvarProdutos(produtos); if (resultadoWeb.Valido) { var produtosAtualizados = produtos.Where(p => !resultadoWeb.ItensInvalidos.Contains(p.Id)); var resposta = await _produtoRepository .AtualizaSincronizacaoAsync( produtosAtualizados.Select(p => p.Id), resultadoWeb.DataAtualizacao); if (!resposta.Valido) { _dialogService.Mensagem(resposta.Mensagem); } if (resultadoWeb.ItensInvalidos.Count > 0) { _dialogService.Mensagem( "Produtos que não foram atualizados:" + String.Join("\n", resultadoWeb.ItensInvalidos)); } } else { _dialogService.Mensagem(resultadoWeb.GetMensagem()); } HabilitaSincronizacao(); await _gridViewPresenter.LoadAsync(); }
private async void OnSincronizarNuvem() { if (ProcessandoSincronizacao) { return; } ProcessandoSincronizacao = true; var resultado = await _produtoRepository.BuscaProdutosNaoSincronizados(); if (!resultado.Valido) { _dialogService.Mensagem(resultado.Mensagem); return; } var produtos = resultado.Valor; var resultadoWeb = await _produtoClientService.SalvarProdutos(produtos); if (resultadoWeb.Valido) { var produtosAtualizados = produtos.Where(p => !resultadoWeb.ItensInvalidos.Contains(p.Id)); var resposta = await _produtoRepository .AtualizaSincronizacaoAsync( produtosAtualizados.Select(p => p.Id), resultadoWeb.DataAtualizacao); if (resultadoWeb.ItensInvalidos.Count > 0) { _dialogService.Mensagem( "Produtos que não foram atualizados:" + String.Join("\n", resultadoWeb.ItensInvalidos)); } } else { _dialogService.Mensagem(resultadoWeb.GetMensagem()); } await SetNumeroREgistrosSincronizarNuvem(); ProcessandoSincronizacao = false; SincronizacaoConcluida = true; }