/// <inheritdoc />
        public void UpdateTransactionCategory(int id, int categoryId)
        {
            this.ConcurrentInvoke(() =>
            {
                var transaction = this.Context.Transactions.GetEntity(id);

                if (transaction.Type == TransactionType.Transfer)
                {
                    throw new ValidationException("A transfer transaction can not have a category.");
                }

                this.Context.Categories.GetEntity(categoryId);

                var processor = new TransactionProcessor(this.Context, this.splitwiseContext);
                processor.ChangeCategory(transaction, categoryId);

                this.Context.SaveChanges();
            });
        }