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