Ejemplo n.º 1
0
        private async void StudyAction(string studyMode)
        {
            if (FlashCardSet.FlashcardCollection.Count == 0)
            {
                await new MessageDialog("You can't study an empty flashcard set! Add some cards to study.").ShowAsync();
                return;
            }
            bool containsStarredCard = false;

            foreach (IndividualCardModel individualCard in FlashCardSet.FlashcardCollection)
            {
                if (individualCard.IsStarred)
                {
                    containsStarredCard = true;
                    break;
                }
            }
            if (!containsStarredCard)
            {
                await new MessageDialog("There are no starred cards in this set. Star some cards to study them, and leave any cards you don't want to study yet unstarred.").ShowAsync();
                return;
            }

            string studyPage = null;
            string studyView = null;

            if (studyMode == "BasicStudyMode")
            {
                studyPage = "BasicStudyPage";
                studyView = "StudyView";
            }
            else if (studyMode == "FillBlankStudyMode")
            {
                studyPage = "FillBlankStudyPage";
                studyView = "FillBlankStudyView";
            }
            else if (studyMode == "MultipleChoiceStudyMode")
            {
                studyPage = "MultipleChoiceStudyPage";
                studyView = "MultipleChoiceStudyView";
            }
            else
            {
                return;
            }

            prNavigationService.NavigateTo(studyPage);
            Messenger.Default.Send(FlashCardSet, studyView);
            FlashCardSet.RegisterNewReviewSession();
            DataAccess.EditCardSetRegisterNewReviewSession_UWP(FlashCardSet);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AddFlashCardSet([FromBody] FlashCardPayload payload)
        {
            string userId = _usermanager.GetUserId(User);

            if (payload.name == "")
            {
                return(new JsonResult(new { success = false, msg = "FlashCard name cannot be empty!" }));
            }

            foreach (FlashCard fc in payload.flashCards)
            {
                if (fc.Question == "" || fc.Answer == "")
                {
                    return(new JsonResult(new { success = false, msg = "All flash card questions and answers must be filled!" }));
                }
            }
            try
            {
                FlashCardSet NewFlashCardSet = new FlashCardSet()
                {
                    CardGroupID = new Guid(),
                    Name        = payload.name,
                    FlashCards  = payload.flashCards,
                    Description = payload.description,
                    UserId      = userId
                };
                _context.Add(NewFlashCardSet);
                await _context.SaveChangesAsync();

                return(new JsonResult(new { success = true }));
            }
            catch
            {
                return(new JsonResult(new { success = false }));
            }
        }
Ejemplo n.º 3
0
        private async void ImportSetFromFileAction()
        {
            FileOpenPicker openPicker = new FileOpenPicker();

            openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
            openPicker.FileTypeFilter.Add(".xlsx");
            openPicker.FileTypeFilter.Add(".xls");
            openPicker.FileTypeFilter.Add(".docx");
            openPicker.FileTypeFilter.Add(".doc");

            StorageFile file = await openPicker.PickSingleFileAsync();

            if (file != null)
            {
                try {
                    CancellationTokenSource    cancelSource      = new CancellationTokenSource();
                    Task <ContentDialogResult> loadingScreenTask = new LoadingDialog().ShowAsync().AsTask(cancelSource.Token);
                    Task <CardSetModel>        importingTask     = ImportFlashcardService.ImportAddToExistingSet(file, cancelSource.Token, FlashCardSet.Clone());

                    Task firstToFinish = await Task.WhenAny(loadingScreenTask, importingTask);

                    cancelSource.Cancel();
                    if (firstToFinish == importingTask)
                    {
                        CardSetModel updatedCardSetModel = await importingTask;
                        prNavigationService.NavigateTo("EditSetPage");
                        Messenger.Default.Send(new Tuple <CardSetModel, CardSetModel>(FlashCardSet, updatedCardSetModel), "EditSetView");
                    }
                } catch (Exception ex) {
                    await new MessageDialog(ex.Message).ShowAsync();
                }
            }
        }