async Task ExecuteLoadJogadoresCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Jogadores.Clear();
                var items = await JogadorDataStore.GetItemsAsync(true);

                foreach (var item in items)
                {
                    Jogadores.Add(item);
                }
                JogadorDataStore.Listen(Jogadores);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Example #2
0
 /// <summary>
 /// Tenta recuperar o arquivo de placar, reparando ou deletando dados corrompidos
 /// </summary>
 private void RepararArquivoDePlacar()
 {
     if (!File.Exists(FilePath))
     {
         var Dado             = "";
         var Pontos           = 0.0;
         var DadosCorrompidos = 0;
         // Limpa a lista e começa do zero
         Jogadores.Clear();
         // Lê todos os dados do arquivo
         using (StreamReader sr = new StreamReader(File.OpenRead(FilePath)))
         {
             Dado = sr.ReadLine();
             var DadoCorrompido = false;
             while (Dado != null)
             {
                 // Tenta checar por pontuações corrompidas
                 try
                 {
                     Pontos = Double.Parse(Dado.Split('=')[1]);
                 }
                 catch (FormatException e)
                 {
                     // Tenta corrigir pontuações corrompidas
                     try
                     {
                         Pontos = RemoveLetras(Dado.Split('=')[1]);
                     }catch (FormatException e2)
                     {
                         // Caso não dê para corrigir, trata-o como dado corrompido
                         DadoCorrompido = true;
                         DadosCorrompidos++;
                     }
                 }
                 // Se o dado não estiver mais corrompido adiciona-o a lista
                 if (!DadoCorrompido)
                 {
                     Jogadores.Add(new Player(Dado.Split('=')[0], Pontos));
                 }
             }
         }
         // Recria o arquivo de placar
         using (StreamWriter st = File.AppendText(FilePath))
         {
             st.WriteLine("[Placares]");
             // Testa se há algum dado salvo
             if (Jogadores.Count > 0)
             {
                 // Reescreve os dados salvos
                 foreach (var Jogador in Jogadores)
                 {
                     st.WriteLine(Jogador.Nome + "=" + Jogador.Pontuacao);
                 }
                 MessageBox.Show("Placar recuperado com êxito! Dados Perdidos: " + DadosCorrompidos + "!", "Placar Recuperado!", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
             else
             {
                 // Erro exibido quando todos os dados foram perdidos
                 MessageBox.Show("Falha ao recuperar os dados! Todos os dados estavam corrompidos, portanto o arquivo de placar foi resetado!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
     }
 }
Example #3
0
 public void LimparTime()
 {
     Jogadores.Clear();
 }