예제 #1
0
 public void AddRow(object sender, RoutedEventArgs e)
 {
     TermsDefinitions.Add(new TermDefinitionViewModel()
     {
         Valid = true
     });
     TermIds.Add(0);
 }
예제 #2
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;
        }
예제 #3
0
 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);
     }
 }
예제 #4
0
        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();
                }
            }
        }
예제 #5
0
        public void LoadTerms(IEnumerable <Term> allTerms)
        {
            var termIds = TermIds.SplitToIds();

            this.Terms = allTerms.Where(x => termIds.Contains(x.Id)).ToList();
        }