コード例 #1
0
        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);
        }
コード例 #2
0
 public async Task Update(string id, Tag tagIn) =>
 await _tags.ReplaceOneAsync(tag => tag.Id == id, tagIn);
コード例 #3
0
        public async Task <Tag> Create(Tag tag)
        {
            await _tags.InsertOneAsync(tag);

            return(tag);
        }
コード例 #4
0
 public async Task Remove(Tag tagIn) =>
 await _tags.DeleteOneAsync(tag => tag.Id == tagIn.Id);