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); } }
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); } }
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(); } }
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(); } }
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; } } }