public void SetTags(IEnumerable<VideoDto> videos) { var tagsService = new TagsService(); var tags = tagsService.GetTags(); foreach (var video in videos) { foreach (var tagName in video.Tags) { var tag = tags.FirstOrDefault(x => x.Name.Equals(tagName, StringComparison.OrdinalIgnoreCase)); if (tag == null) { tag = new TagDto { Id = Guid.NewGuid(), Name = tagName }; tag.VideoIds.Add(video.Id); tags.Add(tag); } if (tag.VideoIds.All(x => x != video.Id)) tag.VideoIds.Add(video.Id); } } tagsService.SetTags(tags); }
private void SetTag(TagDto tag) { var query = new TagsQuery(tag.Id); _tagsQueryHandler.CreateOrUpdateValueById<TagDto>(query, tag); }