public async Task <ICollection <string> > Create(IEnumerable <string> tagNames, string articleId) { var tags = new List <string>(); foreach (var tagName in tagNames) { if (string.IsNullOrEmpty(tagName)) { continue; } var foundTag = await _tags.FindAsync(Builders <Tag> .Filter.Text(tagName)); var tag = await foundTag.FirstOrDefaultAsync(); if (tag == null) { var newTag = new Tag(tagName, articleId); await _tags.InsertOneAsync(newTag); tag = newTag; } else { tag.Articles.Add(articleId); tag.Count++; await Update(tag.Id, tag); } tags.Add(tag.Id); } return(tags); }
public async Task Update(string id, Tag tagIn) => await _tags.ReplaceOneAsync(tag => tag.Id == id, tagIn);
public async Task <Tag> Create(Tag tag) { await _tags.InsertOneAsync(tag); return(tag); }
public async Task Remove(Tag tagIn) => await _tags.DeleteOneAsync(tag => tag.Id == tagIn.Id);