public async Task <ActionResult <UserModel> > Post(WordAddDto word) { var result = await _dao.AddWordAsync(word); if (result.Data != null) { return(Ok(result)); } else { return(BadRequest(result)); } }
public async Task <DataResult <WordModel> > AddWordAsync(WordAddDto word) { using (var context = new LangiumDbContext()) { try { var newWord = new WordModel() { Lexeme = new LexemeModel() { Lexeme = word.Lexeme }, Transcription = new TranscriptionModel() { Transcription = word.Transcription }, Translation = new TranslationModel() { Translation = word.Translation }, CategoryId = word.CategoryId }; CategoryDao categoryDao = new CategoryDao(); var sameWords = categoryDao.GetCategoryByIdAsync(word.CategoryId).Result.Data.Words.Where(w => w.Lexeme.Lexeme == word.Lexeme); if (sameWords.Count() == 0) { var added = await context.Words.AddAsync(newWord); await context.SaveChangesAsync(); return(new DataResult <WordModel>(added.Entity)); } else { return(new DataResult <WordModel>(null, "WORD_WITH_SAME_LEXEM_AlREADY_EXISTS")); } } catch (Exception ex) { return(new DataResult <WordModel>(ex, ex.InnerException.Message)); } } }