コード例 #1
0
        public async Task <IEnumerable <TransactionCategoryRow> > Query(Guid userId, TransactionSearchFilter filter)
        {
            var resolver = new Resolver(await categoryTreeFactory.Create(userId));

            return((await queryBuilder.Query(userId, filter))
                   .Select(t => Create(t, resolver.GetCategories(t.Categories))));
        }
コード例 #2
0
        public async Task <TransactionCategoryRow> Get(Guid transactionId, Guid userId)
        {
            var transaction = await transactionRepository.Find(transactionId);

            var transactionRow = transactionFactory.Create(transaction);

            var resolver = new Resolver(await categoryTreeFactory.Create(userId));

            return(new TransactionCategoryRow(transactionRow, resolver.GetCategories(transactionRow.Categories)));
        }
コード例 #3
0
        public async Task Handle(RemoveCategory notification, CancellationToken cancellationToken)
        {
            if (notification.RemoveChildren == false)
            {
                return;
            }

            var tree = await treeFactory.Create(notification.UserId);

            var toDelete = tree.SubTree(notification.Id).Select(c => c.Id).ToList();

            categoryRepository.Remove(toDelete);
            await categoryRepository.Save();
        }
コード例 #4
0
        public async Task Handle(RemoveCategory notification, CancellationToken cancellationToken)
        {
            if (notification.RemoveChildren)
            {
                return;
            }

            var tree = await treeFactory.Create(notification.UserId);

            var node = tree[notification.Id];

            foreach (var child in node.Children)
            {
                await mediator.Send(new UpdateCategory(child.Id, node.ParentId, child.Name, child.Color));
            }

            categoryRepository.Remove(new List <Guid>()
            {
                node.Id
            });
        }
コード例 #5
0
        public async Task <CategoryNode> Handle(ListCategories message, CancellationToken cancellationToken)
        {
            var tree = await treeFactory.Create(message.UserId);

            return(tree.Root);
        }