public async Task Update(UserAssetTagsModel model) { var mongoModel = (await _collection.FindAsync(m => m.User == model.User)).FirstOrDefault(); mongoModel.Tags = model.Tags; await _collection.FindOneAndReplaceAsync(m => m.User == model.User, mongoModel); _logger.LogTrace($"Assets tags updated: {model}"); }
public async Task Add(UserAssetTagsModel model) { var mongoModel = new MongoUserAssetTagsModel { User = model.User, Tags = model.Tags }; await _collection.InsertOneAsync(mongoModel); _logger.LogTrace($"Asset tags added: {model}"); }
public async Task AddTag(UserId user, AssetISIN asset, AssetTag tag) { var model = await _repository.Get(user); Func <UserAssetTagsModel, Task> apply = (model != null) ? _repository.Update : _repository.Add; if (model == null) { model = new UserAssetTagsModel(user, new Dictionary <string, List <string> >()); } if (!model.Tags.TryGetValue(asset, out var tags)) { tags = new List <string>(); model.Tags[asset] = tags; } tags.Add(tag); await apply(model); }