public async Task AddOrUpdateAsync(IEnumerable <Tag> tags) { var allTags = await _tagRepository.BrowseAsync(new BrowseTags { Results = int.MaxValue }); var newTags = new List <Tag>(); foreach (var tag in tags) { var existingTag = allTags.Value.Items.SingleOrDefault(x => x.Name == tag.Name); if (existingTag != null) { continue; } if (newTags.Any(x => x.Name == tag.Name)) { continue; } newTags.Add(tag); } await _tagRepository.AddManyAsync(newTags); }