//função para adcionar um novo player a lista public void Create(ListaPontosJogador listaPontos) { string json = JsonUtility.ToJson(listaPontos); //transforma a lista de pontos do jogador em uma string Json string caminho = this.obtemCaminho(); File.WriteAllText(caminho, json); //salva o arquivo }
//se retornar null então quer dizer que o arquivo não foi criado ainda public ListaPontosJogador Retrieve() { ListaPontosJogador listaPontos = null; string caminho = this.obtemCaminho(); string json = File.ReadAllText(caminho); listaPontos = JsonUtility.FromJson <ListaPontosJogador>(json); return(listaPontos); }
//esta função sera chamada apenas uma vez, ela servira para criar o arquivo Json no sistema public void preencherJsonSimples() { ListaPontosJogador listaPontos = new ListaPontosJogador(); PontosJogador pontosJogador = new PontosJogador(); pontosJogador.nomePlayer = "Exemplo"; pontosJogador.pontosPlayer = 10; listaPontos.listaPontuacao.Add(pontosJogador); this.Create(listaPontos); }
public InputField nome, pontuacao; //campos de coleta public void salvar() { ListaPontosJogador listaDeDadosJogadores = new ListaPontosJogador(); //Lista que recebera os dados do Json PontosJogador novoDadoJogador = new PontosJogador(); //objeto que usaremos para salvar os novos dados JsonSerializador serializador = new JsonSerializador(); //classe que contem o metodo de save e retriev bool playerExiste = false; //flag para indicar se o player existe ou nao //Obtem os dados do Json listaDeDadosJogadores = serializador.Retrieve(); //se algum campo estiver vazio então envie mensagem de erro if (nome.text.Equals("") || pontuacao.text.Equals("")) { status.text = "Nome ou pontuação estão em branco!"; } else { //salva a nova entrada novoDadoJogador.nomePlayer = nome.text; novoDadoJogador.pontosPlayer = int.Parse(pontuacao.text); //se alista estiver vazia significa que não há nenhum player salvo no Json ou que o arquivo não foi criado if (listaDeDadosJogadores == null) { //sava a nova entrada e exibe mensagem de sucesso listaDeDadosJogadores.listaPontuacao.Add(novoDadoJogador); serializador.Create(listaDeDadosJogadores); status.text = nome.text + " cadastrado com sucesso!"; } else { foreach (PontosJogador dados in listaDeDadosJogadores.listaPontuacao) //varre a lista que obtemos do Json { //se ja existir esse nome na lista então ele deve avisar o jogador if (dados.nomePlayer.Equals(novoDadoJogador.nomePlayer)) { playerExiste = true; break; } } //se o player existe então mostre uma mensagem de erro if (playerExiste) { status.text = "Erro. Esse jogador já foi cadastrado entre com um novo ou vá no menu EDITAR para alterar os dados"; } //se o player não existe então salve-o no Json else { listaDeDadosJogadores.listaPontuacao.Add(novoDadoJogador); serializador.Create(listaDeDadosJogadores); status.text = nome.text + " cadastrado com sucesso"; } } } }
//lista na tela todo o conteudo do Json public void listar() { ListaPontosJogador listaJogadorL = new ListaPontosJogador(); listaJogadorL = serializador.Retrieve(); string pontuacao = ""; foreach (PontosJogador jogadorE in listaJogadorL.listaPontuacao) { pontuacao += "Nome: " + jogadorE.nomePlayer + " Pontos: " + jogadorE.pontosPlayer + "\n"; } texto.text = pontuacao; }
//preenche os campos nome e pontuação com os dados do item selecionado //tratamento da seleceção de itens do dropDown public void preencherInpField() { listaE = serializador.Retrieve(); //recupera a lista de jogadores salvas no Json string quem = opDropDown.selecionarItemDpd(dpdPlayes); //quem esta selecionado no dropDown foreach (PontosJogador dados in listaE.listaPontuacao) //for para atualizar os campos e mostrar os dados antigos { if (dados.nomePlayer.Equals(quem)) { novoNome.text = dados.nomePlayer; novaPontuacao.text = dados.pontosPlayer.ToString(); break; } } }
public bool delete(string quem) { bool playerExiste = false; ListaPontosJogador listaPontosL = new ListaPontosJogador(); listaPontosL = this.Retrieve(); //varre a lisa de players para tentar encontrar quem sera deletado foreach (PontosJogador jogadorE in listaPontosL.listaPontuacao) { if (jogadorE.nomePlayer.Equals(quem)) { playerExiste = true; listaPontosL.listaPontuacao.Remove(jogadorE); //remove os dados do player da lista break; } } if (playerExiste) { this.Create(listaPontosL); //salva a lista sem o player } return(playerExiste); }
//metodo para realizar Update no jogador selecionado public bool Update(PontosJogador jogador, string quem) { bool playerExiste = false; ListaPontosJogador listaPontos = new ListaPontosJogador(); listaPontos = this.Retrieve(); //varre a lista de players araz de quem será editado foreach (PontosJogador jogadorE in listaPontos.listaPontuacao) { if (jogadorE.nomePlayer.Equals(quem)) { playerExiste = true; listaPontos.listaPontuacao.Remove(jogadorE); //remove o dado antigo listaPontos.listaPontuacao.Add(jogador); //adciona o novo dado break; } } if (playerExiste) { this.Create(listaPontos); } return(playerExiste); }
//popula/atualiza a lista contendo os players cadastrados public Dropdown popularDropDown(Dropdown dropdown) { this.dpdPlayes = dropdown; dpdPlayes.ClearOptions(); listaJ = serializador.Retrieve(); //se a lista estiver vazia significa que não há nenhum player cadastrado if (listaJ == null) { //retorna um dpPlayers nulo dpdPlayes = null; return(dpdPlayes); } else { List <string> nomes = new List <string>(); foreach (PontosJogador dados in listaJ.listaPontuacao) { nomes.Add(dados.nomePlayer); //Debug.Log("entrei: " + dados.nomePlayer); } dpdPlayes.AddOptions(nomes); return(dpdPlayes); } }