public async Task Handle(SendMail command, IAggregateRepository repository)
 {
     var mail = new Mail();
     mail.RequestMail(command);
     await repository.Create(mail.RaiseNewEvents());
     await mail.SendMail(this.mailService);
     await repository.Update(mail.RaiseNewEvents());
 }
 public async Task Handle(RetryMail command, IAggregateRepository repository)
 {
     var mail = new Mail();
     var load = await repository.Get();
     mail.LoadFromHistory(load.List);
     mail.RetryMail();
     await repository.Update(mail.RaiseNewEvents(), load.LastEventNumber);
     await mail.SendMail(this.mailService);
     await repository.Update(mail.RaiseNewEvents());
 }