コード例 #1
0
        public virtual async Task DoSomething(MyAuditTestDto input)
        {
            var reason = "Using Reason Provider by User form DoSomething: " + AbpSession.UserId;

            using (_reasonProvider.Use(reason))
            {
                await base.Update(input);

                //await CurrentUnitOfWork.SaveChangesAsync();
            }

            reason = "Entity with same value is created from Do Something Method";
            using (_reasonProvider.Use(reason))
            {
                input.Id = new Guid();
                await base.Create(input);
            }

            await CurrentUnitOfWork.SaveChangesAsync();
        }
コード例 #2
0
        public virtual async Task <RegisterOutput> Register(RegisterInput input)
        {
            try
            {
                CheckErrors(await _userManager.CheckDuplicateUsernameOrEmailAddressAsync(1, input.PhoneNumber, input.EmailAddress));
                var user = await _userRegistrationManager.RegisterAsync(
                    input.FirstName + " " + input.LastName,
                    input.LastName,
                    input.EmailAddress,
                    input.PhoneNumber //phone number become a user name
                    );

                //register user extra information
                var additionalUserInfo = new ApplicationUser
                {
                    UserId              = user.Id,
                    FirstName           = input.FirstName,
                    MiddleName          = input.MiddleName,
                    LastName            = input.LastName,
                    PrimaryEmailAddress = input.EmailAddress,
                    PrimaryMobileNumber = input.PhoneNumber,
                    IsVerified          = false,
                    IsActive            = false,
                    IsPasswordCreated   = false,
                    IsSuspended         = false,
                };
                var reason = "User Registration : Registration begin with basic information, Registered User Id is : " + user.Id;
                using (_reasonProvider.Use(reason))
                {
                    await _applicationUserReposatory.InsertAsync(additionalUserInfo);
                }

                var isEmailConfirmationRequiredForLogin = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.IsEmailConfirmationRequiredForLogin);

                var verificationEmailToken = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                var verificationPhoneTokne = await _userManager.GenerateChangePhoneNumberTokenAsync(user, input.PhoneNumber);

                try
                {
                    var message   = "Your verification code is " + verificationPhoneTokne + ". Thank you";
                    var emailList = new System.Collections.Generic.List <string>();
                    emailList.Add(additionalUserInfo.PrimaryEmailAddress);
                    var mailModel = new SendMailDto
                    {
                        Subject        = "Sunrise Bank User Registration",
                        Body           = message,
                        EmailAddresses = emailList
                    };
                    await _emailService.UserVerificationMailHelper(mailModel);
                }
                catch (Exception)
                {
                    throw new UserFriendlyException("Server response with an exception. Please try again.");
                }

                await CurrentUnitOfWork.SaveChangesAsync();

                return(new RegisterOutput
                {
                    CanLogin = user.IsActive && (user.IsEmailConfirmed || !isEmailConfirmationRequiredForLogin),
                    IsSuccess = true,
                    UserId = user.Id,
                    RegisterMessage = "User Successfully registered",
                    VerificationCode = "",
                    VerificationEmailToken = verificationEmailToken,
                    VerificationPhoneTokne = verificationPhoneTokne,
                });
            }
            catch (Exception ex)
            {
                return(new RegisterOutput
                {
                    CanLogin = false,
                    IsSuccess = false,
                    RegisterMessage = ex.Message
                });
            }
        }