public ItemsViewModel() { Title = "Classificação"; Items = new ObservableCollection <Classificacao>(); Jogadores = new ObservableCollection <Jogador>(); LoadItemsCommand = new Command(async() => { await ExecuteLoadJogadoresCommand(); await ExecuteLoadClassificacaoCommand(); }); MessagingCenter.Subscribe <NewItemPage, Placar>(this, "AddItem", async(obj, item) => { var clas = ((await DataStore.GetItemsAsync(true)) ?? new Classificacao[0]) .OrderBy(a => a.Posicao) .ToArray(); var novoPlacar = item as Placar; var clasJA = clas.FirstOrDefault(a => a.Jogador == novoPlacar.JogadorA.Nome); var clasJB = clas.FirstOrDefault(a => a.Jogador == novoPlacar.JogadorB.Nome); //if (novoPlacar.Regra.Nome == RegrasBusiness.AMISTOSO) //{ // await PlacarDataStore.AddItemAsync(novoPlacar); // return; //} var ultimaPosicao = clas[clas.Length - 1].Posicao; novoPlacar.PosicaoA = (clasJA?.Posicao) ?? (++ultimaPosicao); novoPlacar.PosicaoAntA = (clasJA?.PosicaoAnterior); novoPlacar.PosicaoB = (clasJB?.Posicao) ?? (++ultimaPosicao); novoPlacar.PosicaoAntB = (clasJB?.PosicaoAnterior); await PlacarDataStore.AddItemAsync(novoPlacar); RecalcularClassificacaoAsync(null); }); }
private async void IncluirPlacar(NewItemPage source, Placar placar) { var clas = ((await DataStore.GetItemsAsync(true)) ?? new Classificacao[0]) .OrderBy(a => a.Posicao) .ToArray(); var novoPlacar = placar as Placar; var clasJA = clas.FirstOrDefault(a => a.Jogador == novoPlacar.JogadorA.Nome); var clasJB = clas.FirstOrDefault(a => a.Jogador == novoPlacar.JogadorB.Nome); var ultimaPosicao = clas[clas.Length - 1].Posicao; novoPlacar.PosicaoA = (clasJA?.Posicao) ?? (++ultimaPosicao); novoPlacar.PosicaoAntA = (clasJA?.PosicaoAnterior); novoPlacar.PosicaoB = (clasJB?.Posicao) ?? (++ultimaPosicao); novoPlacar.PosicaoAntB = (clasJB?.PosicaoAnterior); await PlacarDataStore.AddItemAsync(novoPlacar); RecalcularClassificacaoAsync(null); }