public HangmanViewModel() { SelectedCategoryName = string.Empty; termRepository = new TermRepository(); InitData(); NewGameCommand = new Command(async() => await StartNewGame()); KeyCommand = new Command((letter) => { if (!Term.ToUpper().Contains(letter.ToString())) { NoOfWrongAttemps++; WrongLetters += string.IsNullOrEmpty(WrongLetters) ? letter : $",{letter}"; } DiscoveredLetters = string.Join(";", SelectedKeys); if (NoOfWrongAttemps >= 6 || !Term.ToUpper().Any(x => !string.IsNullOrWhiteSpace(x.ToString()) && !SelectedKeys.Contains(x.ToString()))) { OnFinishGame(NoOfWrongAttemps < 6); } }); SelectCategoryCommand = new Command(async() => { TermCategoryModel currentCategory = selectedCategory; await GetTermCategory(); if (currentCategory.Id != selectedCategory.Id) { await StartNewGame(); } }); }
public TermModel GetTermByCategory(long id) { var category = realmRepository.Get <TermCategory>(id); var categoryModel = new TermCategoryModel { Id = category.Id, Name = category.Name }; List <Term> terms = category.Terms.ToList() .GroupBy(x => x.NoOfOccurrence) .OrderBy(x => x.Key) .FirstOrDefault() .ToList(); Random random = new Random(); int index = random.Next(0, terms.Count()); Term selectedTerm = terms.ElementAt(index); realmRepository.Update(() => { selectedTerm.NoOfOccurrence++; }); return(new TermModel { Category = categoryModel, ID = selectedTerm.Id, Value = selectedTerm.Value }); }
private async Task GetTermCategory() { var options = categoryModels.Select(x => x.Name).ToArray(); string result = await App.Current.MainPage.DisplayActionSheet("Izaberite kategoriju", "Nasumično", null, options); if (result == null || result.Equals("Nasumično")) { Random random = new Random(); int index = random.Next(0, categoryModels.Count()); selectedCategory = categoryModels.ElementAt(index); } else { selectedCategory = categoryModels.FirstOrDefault(x => x.Name.Equals(result)); } SelectedCategoryName = selectedCategory.Name; }
private void InitData() { TermCategoryModel categoryMovies = new TermCategoryModel { Name = "Filmovi" }; TermCategoryModel categorySports = new TermCategoryModel { Name = "Sportovi" }; TermCategoryModel categoryCities = new TermCategoryModel { Name = "Gradovi" }; TermCategoryModel categoryCountries = new TermCategoryModel { Name = "Drzave" }; TermModel moviesTerm1 = new TermModel { Category = categoryMovies, Value = "Ko to tamo peva" }; TermModel moviesTerm2 = new TermModel { Category = categoryMovies, Value = "Balkanski špijun" }; TermModel moviesTerm3 = new TermModel { Category = categoryMovies, Value = "Kad porastem biću kengur" }; TermModel moviesTerm4 = new TermModel { Category = categoryMovies, Value = "Tesna koža" }; TermModel moviesTerm5 = new TermModel { Category = categoryMovies, Value = "Munje" }; TermModel sportsTerm1 = new TermModel { Category = categorySports, Value = "Fudbal" }; TermModel sportsTerm2 = new TermModel { Category = categorySports, Value = "Vaterpolo" }; TermModel sportsTerm3 = new TermModel { Category = categorySports, Value = "Karling" }; TermModel sportsTerm4 = new TermModel { Category = categorySports, Value = "Boćanje" }; TermModel sportsTerm5 = new TermModel { Category = categorySports, Value = "Stoni tenis" }; TermModel citiesTerm1 = new TermModel { Category = categoryCities, Value = "Rio de žaneiro" }; TermModel citiesTerm2 = new TermModel { Category = categoryCities, Value = "Madrid" }; TermModel citiesTerm3 = new TermModel { Category = categoryCities, Value = "Venecija" }; TermModel citiesTerm4 = new TermModel { Category = categoryCities, Value = "Smederevo" }; TermModel citiesTerm5 = new TermModel { Category = categoryCities, Value = "Moskva" }; TermModel countriesTerm1 = new TermModel { Category = categoryCountries, Value = "Srbija" }; TermModel countriesTerm2 = new TermModel { Category = categoryCountries, Value = "Brazil" }; TermModel countriesTerm3 = new TermModel { Category = categoryCountries, Value = "Češka" }; TermModel countriesTerm4 = new TermModel { Category = categoryCountries, Value = "Meksiko" }; TermModel countriesTerm5 = new TermModel { Category = categoryCountries, Value = "Nigerija" }; AddTerm(moviesTerm1); AddTerm(moviesTerm2); AddTerm(moviesTerm3); AddTerm(moviesTerm4); AddTerm(moviesTerm5); AddTerm(sportsTerm1); AddTerm(sportsTerm2); AddTerm(sportsTerm3); AddTerm(sportsTerm4); AddTerm(sportsTerm5); AddTerm(citiesTerm1); AddTerm(citiesTerm2); AddTerm(citiesTerm3); AddTerm(citiesTerm4); AddTerm(citiesTerm5); AddTerm(countriesTerm1); AddTerm(countriesTerm2); AddTerm(countriesTerm3); AddTerm(countriesTerm4); AddTerm(countriesTerm5); }