Ejemplo n.º 1
0
        public async Task <IActionResult> UpdateFlashcard(int courseId, int id, FlashcardForUpdate flashcardForUpdate)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var accountId = _userRepository.GetUserAccountId(int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value));

            if (!await _courseRepository.CanEdit(courseId, accountId))
            {
                return(Unauthorized());
            }

            try
            {
                var flashcardToReturnRepo = _flashcardsRepository.Update(id, flashcardForUpdate).Result;
                if (flashcardToReturnRepo != null)
                {
                    var flashcardToReturnMapped = _mapper.Map <FlashcardForDetail>(flashcardToReturnRepo);
                    return(Ok(flashcardToReturnMapped));
                }

                return(StatusCode(500, new ErrorResponse {
                    ErrorMessage = "An error occurred during update flashcard. Try again later."
                }));
            }
            catch (FlashcardNotFoundException)
            {
                return(NotFound(new ErrorResponse {
                    ErrorMessage = "Flashcard has not been found."
                }));
            }
        }
Ejemplo n.º 2
0
        public async Task <Flashcard> Update(int id, FlashcardForUpdate flashcard)
        {
            var flashcardFromRepo = _context.Flashcards.FirstOrDefault(x => x.Id == id);

            if (flashcardFromRepo == null)
            {
                _logger.LogWarning($"Flashcard with given id { id } does not exists");
                throw new FlashcardNotFoundException();
            }

            try
            {
                flashcardFromRepo.Phrase = flashcard.Phrase;
                flashcardFromRepo.PhrasePronunciation            = flashcard.PhrasePronunciation;
                flashcardFromRepo.PhraseSampleSentence           = flashcard.PhraseSampleSentence;
                flashcardFromRepo.PhraseComment                  = flashcard.PhraseComment;
                flashcardFromRepo.TranslatedPhrase               = flashcard.TranslatedPhrase;
                flashcardFromRepo.TranslatedPhraseSampleSentence = flashcard.TranslatedPhraseSampleSentence;
                flashcardFromRepo.TranslatedPhraseComment        = flashcard.TranslatedPhraseComment;
                flashcardFromRepo.LanguageLevel                  = (LanguageLevelEnum)flashcard.LanguageLevel;
                flashcardFromRepo.Category     = flashcard.Category;
                flashcardFromRepo.DateModified = DateTime.Now;

                await _context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"An error occurred during update flashcard with given id { id }");
                return(null);
            }

            return(flashcardFromRepo);
        }
Ejemplo n.º 3
0
        public async Task <bool> UpdateFlashcardAsync(int id, FlashcardForUpdate flashcardForUpdate)
        {
            var flashcard = await GetFlashcardByIdAsync(id);

            if (flashcard == null)
            {
                return(false);
            }

            try
            {
                flashcard.Meaning  = flashcardForUpdate.Meaning;
                flashcard.TopicId  = flashcardForUpdate.TopicId;
                flashcard.Word     = flashcardForUpdate.Word;
                flashcard.IsSystem = flashcardForUpdate.IsSystem;
                flashcard.Type     = flashcardForUpdate.Type;

                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public async Task <IActionResult> UpdateFlashcard(int id, [FromBody] FlashcardForUpdate input)
        {
            if (ModelState.IsValid)
            {
                var result = await _flashcardRepository.UpdateFlashcardAsync(id, input);

                if (result)
                {
                    return(Ok(new
                    {
                        message = "success",
                        StatusCode = 200
                    }));
                }

                return(BadRequest(new
                {
                    message = "fail"
                }));
            }

            return(BadRequest(ModelState));
        }