public QueuedHardDeleteOperation(string methodCalled, T model, IDocumentRepository repo, IMessageAggregator messageAggregator)
        {
            CommitClosure = async() =>
            {
                await messageAggregator.CollectAndForward(
                    new HardDeleteOperation <T>
                {
                    TypeName     = typeof(T).FullName,
                    MethodCalled = methodCalled,
                    Created      = DateTime.UtcNow,
                    Model        = model
                }).To(repo.DeleteHardAsync).ConfigureAwait(false);

                Committed = true;
            };

            Created     = DateTime.UtcNow;
            Model       = model;
            AggregateId = model.id;
        }