コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
                }
            }
        }