Ejemplo n.º 1
0
        public async Task <IClientAccount> RegisterClientAsync(string email, string firstName, string lastName,
                                                               string phone, string password, string hint, string clientInfo, string ip, string changer, string language)
        {
            IClientAccount clientAccount = ClientAccount.Create(email, phone);

            clientAccount = await _clientAccountsRepository.RegisterAsync(clientAccount, password);

            var personalData = FullPersonalData.Create(clientAccount, firstName, lastName, hint);
            await _personalDataRepository.SaveAsync(personalData);

            await SetDefaultAssetGroups(clientAccount.Id);

            var fullname = personalData.GetFullName();

            var logEvent = RegistrationLogEvent.Create(clientAccount.Id, email, fullname, phone, clientInfo, ip);
            await _registrationLogs.RegisterEventAsync(logEvent);

            await _auditLogRepository.AddAuditRecordAsync(clientAccount.Id, null, personalData,
                                                          AuditRecordType.PersonalData, changer);

            await _srvEmailsFacade.SendWelcomeEmail(clientAccount.Email, clientAccount.Id);

            foreach (var registrationConsumer in _registrationConsumers)
            {
                registrationConsumer.ConsumeRegistration(clientAccount, ip, language);
            }

            return(clientAccount);
        }
Ejemplo n.º 2
0
        public async Task OptionalFields_AreAdded_ToUserIdentity()
        {
            //arrange
            var client = new ClientAccount
            {
                Email = "*****@*****.**",
                Id    = "test"
            };

            var personalData = new FullPersonalData
            {
                FirstName    = "test",
                LastName     = "test",
                ContactPhone = "11",
                Country      = "Test"
            };

            //act
            var personalDataService = Substitute.For <IPersonalDataService>();

            personalDataService.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(personalData);

            var userManager = CreateUserManager(personalDataService);
            var result      = await userManager.CreateUserIdentityAsync(client.Id, client.Email, "test");

            //assert
            Assert.Equal(personalData.FirstName, result.GetClaim(OpenIdConnectConstants.Claims.GivenName));
            Assert.Equal(personalData.LastName, result.GetClaim(OpenIdConnectConstants.Claims.FamilyName));
            Assert.Equal(client.Email, result.GetClaim(OpenIdConnectConstants.Claims.Email));
            Assert.Equal(personalData.Country, result.GetClaim(OpenIdConnectConstantsExt.Claims.Country));
            Assert.Equal(7, result.Claims.Count());
        }
Ejemplo n.º 3
0
        public async Task HalfCompletedAccount_CompletionPercentage_Is_Correct()
        {
            //data
            var fullPersonalData = new FullPersonalData
            {
                FirstName = "test",
                LastName  = "test",
                City      = "test",
                Address   = "test"
            };

            var kycDocuments = new List <KycDocument>
            {
                new KycDocument {
                    Type = KycDocumentTypes.ProofOfAddress
                },
                new KycDocument {
                    Type = KycDocumentTypes.BankAccount
                }
            };

            var personalDataRepo = Substitute.For <IPersonalDataRepository>();

            personalDataRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(fullPersonalData);
            var kycDocRepo = Substitute.For <IKycDocumentsRepository>();

            kycDocRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(kycDocuments);

            var profileActionHandler = CreateProfileActionHandler(personalDataRepo, kycDocRepo);

            //act
            var completionPercentage = await profileActionHandler.GetStatusBarModelAsync();

            Assert.Equal("50%", completionPercentage.CompletionPercentage);
        }
Ejemplo n.º 4
0
        public async Task EmptyAccount_CompletionPercentage_Is_Correct()
        {
            //data
            var fullPersonalData = new FullPersonalData();

            var kycDocuments = new List <KycDocument>();

            var personalDataRepo = Substitute.For <IPersonalDataRepository>();

            personalDataRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(fullPersonalData);
            var kycDocRepo = Substitute.For <IKycDocumentsRepository>();

            kycDocRepo.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(kycDocuments);

            var profileActionHandler = CreateProfileActionHandler(personalDataRepo, kycDocRepo);

            //act
            var completionPercentage = await profileActionHandler.GetStatusBarModelAsync();

            Assert.Equal("0%", completionPercentage.CompletionPercentage);
        }
Ejemplo n.º 5
0
        public async Task Email_IsRequired_ForUserIdentity()
        {
            //arrange
            var client = new ClientAccount
            {
                Email = null,
                Id    = "test"
            };

            var personalData = new FullPersonalData();

            //act
            var personalDataService = Substitute.For <IPersonalDataService>();

            personalDataService.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(personalData);

            var userManager = CreateUserManager(personalDataService);

            //assert
            await
            Assert.ThrowsAsync <ArgumentNullException>(
                async() => await userManager.CreateUserIdentityAsync(client.Id, client.Email, client.Email));
        }
Ejemplo n.º 6
0
        public async Task <IClientAccount> RegisterClientAsync(string email, string fullname, string phone, string password,
                                                               string hint, string clientInfo, string ip, string changer, double?iosVersion = null)
        {
            IClientAccount clientAccount = ClientAccount.Create(email, phone);

            clientAccount = await _clientAccountsRepository.RegisterAsync(clientAccount, password);

            await _clientSettingsRepository.SetSettings(clientAccount.Id, new HashedPwdSettings { IsPwdHashed = true });

            var personalData = FullPersonalData.Create(clientAccount, fullname, hint);
            await _personalDataRepository.SaveAsync(personalData);

            await SetDefaultAssetGroups(clientAccount.Id, iosVersion);

            var logEvent = RegistrationLogEvent.Create(clientAccount.Id, email, fullname, phone, clientInfo, ip);
            await _registrationLogs.RegisterEventAsync(logEvent);

            await _auditLogRepository.AddAuditRecordAsync(clientAccount.Id, null, personalData,
                                                          AuditRecordType.PersonalData, changer);

            await _srvEmailsFacade.SendWelcomeEmail(clientAccount.Email, clientAccount.Id);

            await
            _backgroundWorkRequestProducer.ProduceRequest(WorkType.SetGeolocation,
                                                          new SetGeolocationContext(clientAccount.Id, ip));

            await
            _backgroundWorkRequestProducer.ProduceRequest(WorkType.SetReferralCode,
                                                          new SetReferralCodeContext(clientAccount.Id, ip));

            await
            _backgroundWorkRequestProducer.ProduceRequest(WorkType.SetAntiFraudRecord,
                                                          new SetAntiFraudContext(clientAccount.Id, ip, email, fullname, phone));

            return(clientAccount);
        }