public void AddRow(object sender, RoutedEventArgs e) { TermsDefinitions.Add(new TermDefinitionViewModel() { Valid = true }); TermIds.Add(0); }
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state) { var set = parameter as Set; if (parameter != null) { EditMode = true; TermsDefinitions.Clear(); foreach (var term in set.Terms) { var termAndDef = new TermDefinitionViewModel() { Definition = term.Definition, Term = term.TermText, Valid = true, }; TermsDefinitions.Add(termAndDef); TermIds.Add(term.Id); } Title = set.Title; if (set.Visibility == "public") { EveryoneOrMe = true; } else { EveryoneOrMe = false; } SetId = set.Id; var termLang = LanguageOptions. Where(x => x.CountryCode == set.LangTerms) .SingleOrDefault(); var defLang = LanguageOptions. Where(x => x.CountryCode == set.LangDefinitions) .SingleOrDefault(); SelectedDefinitionLanguage = defLang; SelectedTermLanguage = termLang; } await Task.CompletedTask; }
public async void DeleteRow(object sender, RoutedEventArgs e) { if (TermsDefinitions.Count <= 2) { var dialog = new MessageDialog("Error: you must have at least two terms and definitions in a set."); await dialog.ShowAsync(); } else { var row = TermsDefinitions.Last(); TermsDefinitions.Remove(row); var id = TermIds.Last(); TermIds.Remove(id); } }
public async void Save(object sender, RoutedEventArgs e) { var error = false; if (string.IsNullOrEmpty(Title)) { error = true; ShowTitleError = true; } foreach (var termDef in TermsDefinitions) { if (string.IsNullOrEmpty(termDef.Term) || string.IsNullOrEmpty(termDef.Definition)) { termDef.Valid = false; error = true; } } if (!error && !EditMode) { // save the set... var terms = new List <string>(); var definitions = new List <string>(); foreach (var termDef in TermsDefinitions) { terms.Add(termDef.Term); definitions.Add(termDef.Definition); } var setToCreate = new CreateSet() { Title = Title, LangDefinitions = SelectedDefinitionLanguage.CountryCode, LangTerms = SelectedTermLanguage.CountryCode, Definitions = definitions.ToArray(), Terms = terms.ToArray(), Visibility = EveryoneOrMe ? Models.QuizletTypes.Uploading.Visibility.Everyone : Models.QuizletTypes.Uploading.Visibility.OnlyMe, }; var result = await _quizletApi.CreateNewSet(setToCreate); if (result) { //Get new updated sets and save them locally await SaveCreatedOrUpdatedSets(); //Navigate back NavigationService.Navigate(typeof(Views.MySetsPage)); } else { var dialog = new MessageDialog("Error: and error occured while creating the set."); await dialog.ShowAsync(); } } if (!error && EditMode) { var terms = new List <string>(); var definitions = new List <string>(); foreach (var termDef in TermsDefinitions) { terms.Add(termDef.Term); definitions.Add(termDef.Definition); } var setToUpdate = new UpdateSet() { Definitions = definitions.ToArray(), Terms = terms.ToArray(), TermIds = TermIds.ToArray(), Title = Title, LangDefinitions = SelectedDefinitionLanguage.CountryCode, LangTerms = SelectedTermLanguage.CountryCode, Visibility = EveryoneOrMe ? Models.QuizletTypes.Uploading.Visibility.Everyone : Models.QuizletTypes.Uploading.Visibility.OnlyMe, }; var result = await _quizletApi.UpdateSet(setToUpdate, SetId); if (result) { await SaveCreatedOrUpdatedSets(); NavigationService.Navigate(typeof(Views.MySetsPage)); } else { var dialog = new MessageDialog("Error: and error occured while creating the set."); await dialog.ShowAsync(); } } }
public void LoadTerms(IEnumerable <Term> allTerms) { var termIds = TermIds.SplitToIds(); this.Terms = allTerms.Where(x => termIds.Contains(x.Id)).ToList(); }