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}");
        }
示例#3
0
        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);
        }