public async Task SaveAsync(TagsDbModel tags) { foreach (var tag in tags.Tags) { if (string.IsNullOrEmpty(tag.Id)) { tag.Id = Guid.NewGuid().ToString(); } } if (!string.IsNullOrEmpty(tags.Id)) { await _collection.ReplaceOneAsync(new BsonDocument("_id", new Guid(tags.Id)), tags); } else { await _collection.InsertOneAsync(tags); } }
protected override async Task ActionAsync() { var siteId = Input.Data.SiteId; await UserSecurity.CheckAdministratorAsync(_userService, Input.UserId, siteId); var tagsDbModel = await _tagsServiceMongo.FindTags(siteId, Input.Data.Type); if (tagsDbModel == null) { tagsDbModel = new TagsDbModel() { SiteId = siteId, Type = Input.Data.Type, ModuleId = Input.Data.ModuleId, Tags = new List <TagDbModel>() }; } foreach (var tag in Input.Data.Tags) { TagDbModel tagDbModel = null; if (!string.IsNullOrEmpty(tag.Id)) { tagDbModel = tagsDbModel.Tags.FirstOrDefault(t => t.Id == tag.Id); } if (tagDbModel == null) { tagDbModel = new TagDbModel(); tagsDbModel.Tags.Add(tagDbModel); } tagDbModel.Name = tag.Name; tagDbModel.IsDeleted = tag.IsDeleted; } await _tagsServiceMongo.SaveAsync(tagsDbModel); }