public override async Task <Guid> CreateNewAsync(CreateNewRequest request) { if (await account.ExistsAsync(x => x.Document == request.Document)) { throw new BusinessException("O documento já existe no sistema. Não é possível criar essa conta."); } var accountModel = new AccountModel( request.FirstName , request.LastName , request.Gender , request.Document , request.Email); if (request.ProfileNames.Any()) { accountModel.AddProfiles(await profile.GetIdsAsync(x => request.ProfileNames.Any(p => x.Name.Equals(p)))); } await account.AddAsync(accountModel); await occurrence.ExecuteAsync(new NewOccurrenceRequest("NewAccount", "Novo usuário foi criado.")); await email.ToSendAsync(new SendWelcomeEmailRequest("http://xpto", "Bem-vindo", "*****@*****.**", request.Email)); await businessContext.CommitTransactionAsync(); return(accountModel.Id); }
public abstract Task <Guid> CreateNewAsync(CreateNewRequest request);