コード例 #1
0
ファイル: WordService.cs プロジェクト: phantomkk/mydictionary
        public async Task <bool> UpdateAsNewWordAsync(AddWordDto dto)
        {
            try
            {
                _unitOfWork.BeginTransaction();
                var word = (await _mainRepos.Filter(x => x.Name == dto.Word.ToLower().Trim())).FirstOrDefault();
                if (word == null)
                {
                    var newWord = _mainRepos.Create(new Word
                    {
                        IsNew      = true,
                        Name       = dto.Word,
                        CreatedAt  = DateTimeOffset.Now,
                        ExampleIds = new List <string> {
                            dto.ExampleId
                        }
                    });
                }
                else
                {
                    word.IsNew = true;
                    await _mainRepos.Update(word);
                }

                await _unitOfWork.CommitTransaction();

                return(true);
            }
            catch (Exception ex)
            {
                await _unitOfWork.AbortTransaction();

                throw ex;
            }
        }
コード例 #2
0
        public async Task <bool> AddAsync([FromBody] AddWordDto dto)
        {
            var result = await _wordService.UpdateAsNewWordAsync(dto);

            if (result)
            {
                _cachedService.Clear();
            }
            return(result);
        }
コード例 #3
0
ファイル: WordService.cs プロジェクト: phantomkk/mydictionary
        public bool UpdateAsNewWord(AddWordDto dto)
        {
            try
            {
                _unitOfWork.BeginTransaction();
                var word = _mainRepos.Filter(x => x.Name == dto.Word.ToLower().Trim()).FirstOrDefault();
                if (word == null)
                {
                    var newWord = _mainRepos.Create(new Word
                    {
                        IsNew     = true,
                        Name      = dto.Word,
                        CreatedAt = DateTimeOffset.Now
                    });
                    _unitOfWork.Save();

                    _wordExampleRepos.Create(new WordExample
                    {
                        ExampleId = dto.ExampleId,
                        WordId    = newWord.Id
                    });
                }
                else
                {
                    word.IsNew = true;
                    _mainRepos.Update(word);
                }
                _unitOfWork.Save();

                _unitOfWork.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                _unitOfWork.Rollback();
                throw ex;
            }
        }