示例#1
0
        private static async Task AtualizaInscricoes(LocalDbContext db, SyncWebService ws)
        {
            var ultima = db.Inscricoes.OrderByDescending(i => i.UltimaModificacao).FirstOrDefault()?.UltimaModificacao;

            var alteracoes = await ws.GetInscricoesAsync(ultima);

            foreach (var remoto in alteracoes)
            {
                db.UpdateInscricao(remoto);
            }
        }
示例#2
0
        private static async Task AtualizaConfirmacoes(LocalDbContext db, SyncWebService ws)
        {
            var ultima = db.Confirmacoes.OrderByDescending(i => i.UltimaModificacao).FirstOrDefault()?.UltimaModificacao;

            var alteracoes = await ws.GetConfirmacoesAsync(ultima);

            foreach (var remoto in alteracoes)
            {
                remoto.StatusSincronia = StatusSincronia.Sincronizado;

                db.UpdateConfirmacao(remoto);
            }
        }
示例#3
0
        public static async Task AtualizaAsync()
        {
            using (var db = new LocalDbContext())
            {
                db.Database.Migrate();

                var ws = new SyncWebService();
                await AtualizaInscricoes(db, ws);
                await AtualizaConfirmacoes(db, ws);

                db.SaveChanges();
            }
        }
示例#4
0
        public async Task ExecutaConfirmacoesAsync()
        {
            using (var db = new LocalDbContext())
            {
                var today = App.Current.Today;
                var ws    = new SyncWebService();

                var listaSync    = new List <Confirmacao>();
                var confirmacoes = db.Confirmacoes.Where(c => !c.Cancela && c.Dia == today);

                foreach (var confirmacao in confirmacoes)
                {
                    if (confirmacao.StatusConfirmacao != StatusConfirmacao.Confirmado)
                    {
                        try
                        {
                            await ConfirmacaoWebService.Instance.ConfirmaAsync(confirmacao);

                            confirmacao.StatusConfirmacao = StatusConfirmacao.Confirmado;
                        }
                        catch (ServerException ex)
                        {
                            Console.WriteLine(ex.Message);
                            confirmacao.Mensagem          = "Erro no servidor de confirmação";
                            confirmacao.StatusConfirmacao = StatusConfirmacao.Erro;
                        }
                        confirmacao.StatusSincronia = StatusSincronia.Modificado;
                    }

                    if (confirmacao.StatusSincronia != StatusSincronia.Sincronizado)
                    {
                        listaSync.Add(confirmacao);
                    }

                    confirmacao.StatusSincronia = StatusSincronia.Sincronizado;
                }

                await PostConfirmacoesAsync(listaSync);

                db.SaveChanges();
            }
        }
示例#5
0
        private static async Task PostConfirmacoesAsync(List <Confirmacao> confirmacoes)
        {
            try
            {
                var ws     = new SyncWebService();
                var result = await ws.PostConfirmacoesAsync(confirmacoes);

                for (int i = 0; i < result.Count; i++)
                {
                    confirmacoes[i].IdRemoto = result[i].Id;
                }
            }
            catch (ServerException ex)
            {
                Console.WriteLine(ex.Message);
                foreach (var item in confirmacoes)
                {
                    item.StatusSincronia = StatusSincronia.Erro;
                }
            }
        }