public async Task <bool> AddToProfanityAsync(ProfanityDTO profanityDTO) { try { var newProfanity = profanityDTO.ProfanityWord.Distinct(); var existing = await _context.ProfanityEntities.FirstOrDefaultAsync(a => a.Language == profanityDTO.Language); if (existing != null) { var existingProfanity = Encoding.UTF8.GetString(existing.ProfanityWord)?.Split(',').ToList(); existingProfanity.AddRange(newProfanity); existing.ProfanityWord = Encoding.UTF8.GetBytes(string.Join(',', existingProfanity)); _context.ProfanityEntities.Update(existing); } else { var entity = new ProfanityEntity { Id = Guid.NewGuid(), Language = profanityDTO.Language, ProfanityWord = Encoding.UTF8.GetBytes(string.Join(',', newProfanity)) }; _context.ProfanityEntities.Add(entity); } return(await _context.SaveChangesAsync() > 0); } catch (Exception) { throw; } }
private ProfanityDTO EntityToDTO(ProfanityEntity entity) { if (entity == null) { return(null); } string text = Encoding.UTF8.GetString(entity.ProfanityWord); return(new ProfanityDTO { Language = (Language)entity.Language, ProfanityWord = text?.Split(',').ToList() }); }