예제 #1
0
        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();
        }
예제 #2
0
        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;
        }