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; } }
public async Task <bool> AddAsync([FromBody] AddWordDto dto) { var result = await _wordService.UpdateAsNewWordAsync(dto); if (result) { _cachedService.Clear(); } return(result); }
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; } }