コード例 #1
0
        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);
        }