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;
            }
        }
        public FIFACupStats()
        {
            StreamReader rd    = new StreamReader(CSVFilePath);
            string       linha = null;

            rd.ReadLine();
            var i = 0;

            while ((linha = rd.ReadLine()) != null)
            {
                ++i;
                var palavras = linha.Split(',');

                try {
                    var jogador = new Jogador();
                    jogador.Nacionalidade = palavras[14];
                    jogador.Club          = palavras[3];
                    jogador.Nome          = palavras[2];
                    jogador.Rescisao      = string.IsNullOrEmpty(palavras[18])
                        ? 0 : Convert.ToDouble(palavras[18].Replace(".", ","));
                    jogador.Nascimento = Convert.ToDateTime(palavras[8]);
                    jogador.Salario    = Convert.ToDouble(palavras[17]);
                    jogador.Idade      = Convert.ToInt32(palavras[6]);
                    Jogadores.Add(jogador);
                } catch (Exception ex) {
                    throw new Exception($"Erro ao criar jogador linha {i}, {palavras[18]}", ex);
                }
            }
        }
示例#3
0
        public Jogador AdicionarJogador(string id, string name)
        {
            Jogador jogador = null;

            if (Jogadores.Count == 0)
            {
                jogador = new JogadorA();
            }
            else if (Jogadores.Count == 1)
            {
                jogador = new JogadorB();
            }
            else if (Jogadores.Count < 6)
            {
                jogador = new JogadorC();
            }
            if (Jogadores.Count < 6)
            {
                jogador.Id   = id;
                jogador.Name = name;
                Jogadores.Add(jogador);
                return(jogador);
            }

            return(null);
        }
示例#4
0
        public void AdicionarJogador(string nomeDoJogador)
        {
            ExcecaoDeDominio.Quando(string.IsNullOrEmpty(nomeDoJogador), "Jogador inicial da partida é obrigatório");
            ExcecaoDeDominio.Quando(Jogadores.Count == 4, "Uma partida não pode ter mais que 4 jogadores");

            Jogadores.Add(new Jogador(nomeDoJogador, SelecionarEquipeDoJogador()));
        }
示例#5
0
        public void QuestaoRepondida(Jogador jogador, Questao questao, DateTime dataHora, string alternativa)
        {
            Jogadores.Add(jogador);
            Questoes.Add(questao);

            RespostasQuestoes.Add(new RespostaQuestao()
            {
                Jogador  = jogador, Questao = questao,
                DataHora = dataHora, Alternativa = alternativa
            });
        }
示例#6
0
        public void CarregarLista()
        {
            var listar = _servico.listar();

            if (listar != null)
            {
                foreach (var itens in listar)
                {
                    Jogadores.Add(itens);
                }
            }
        }
示例#7
0
 /// <summary>
 /// Salva a pontuação do jogador no arquivo de placar
 /// </summary>
 public void SalvarPontuacao()
 {
     if (Registrar)
     {
         string Aux = File.ReadAllText(FilePath);
         File.WriteAllText(FilePath, Aux);
         using (StreamWriter st = File.AppendText(FilePath))
         {
             st.WriteLine(Jogador.Nome + "=" + Jogador.Pontuacao);
         }
         Jogadores.Add(new Player(Jogador.Nome, Jogador.Pontuacao));
     }
 }
示例#8
0
 /// <summary>
 /// Inclui um novo jogador se houver espaço na mesa. Cada mesa pode ter no máximo nove jogadores
 /// </summary>
 /// <param name="nomeJogadorEsperado">Nome do jogador que será incluído</param>
 /// <returns>Retorna true caso o jogador tenha sido incluído com sucesso. Caso contrário, false  </returns>
 public bool IncluirJogador(string nomeJogador)
 {
     if (Jogadores.Count < _quantidadeMaximaDeJogadoresPermitidos && Status == StatusMesa.Aguardando)
     {
         int idNovoJogador = (Jogadores.OrderByDescending(j => j.Id).FirstOrDefault()?.Id ?? 0) + 1;
         Jogadores.Add(new Jogador(idNovoJogador, nomeJogador));
         return(true);
     }
     else
     {
         return(false);
     }
 }
示例#9
0
 /// <summary>
 /// Cria o arquivo de placares inicial caso o mesmo não exista
 /// </summary>
 /// <param name="FilePath"></param>
 private void CreateScoreFile()
 {
     // Se o arquivo não existe, cria-lo, caso contrário, leia-o em busca de perfis
     if (!File.Exists(FilePath))
     {
         using (StreamWriter st = File.CreateText(FilePath))
         {
             st.WriteLine("[Placares]");
         }
     }
     else
     {
         string Dado = "";
         using (StreamReader sr = new StreamReader(File.OpenRead(FilePath)))
         {
             Dado = sr.ReadLine();
             while (Dado != null)
             {
                 Dado = sr.ReadLine();
                 if (Dado != null && !Dado.Equals("[Placares]"))
                 {
                     string[] Split = Dado.Split('=');
                     try
                     {
                         Jogadores.Add(new Player(Split[0], Double.Parse(Split[1])));
                     }catch (FormatException e)
                     {
                         if ((MessageBox.Show("Foram encontrados alguns dados corrompidos no placar! Deseja chamar o Liminha para reparar o placar? Se escolher \"não\" o placar não irá funcionar!")) == DialogResult.Yes)
                         {
                             RepararArquivoDePlacar();
                             break;
                         }
                         else
                         {
                             MessageBox.Show("Placar desativado pelo motivo de haver dados corrompidos!");
                             Registrar = false;
                         }
                     }
                 }
             }
         }
     }
 }
示例#10
0
 /// <summary>
 /// Adiciona um jogador à lista de Jogadores definidos.
 /// </summary>
 /// <remarks>Atualiza o CanExecute do botão ComecarJogo.</remarks>
 /// <param name="jogadorAAdicionar">Jogador a adicionar à lista de Jogadores definidos.</param>
 private void AdicionarJogador(JogadorWrapperViewModel jogadorAAdicionar)
 {
     Jogadores?.Add(jogadorAAdicionar);
     //Atualiar CanExecute do botão ComecarJogo.
     ((Command)ComecarJogoCommand).ChangeCanExecute();
 }
示例#11
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);
             }
         }
     }
 }
示例#12
0
 public void AdicionarJogador(string jogador)
 {
     Jogadores.Add(jogador);
 }