Ejemplo n.º 1
0
        public async Task RegisterAuthClient()
        {
            string url = ApiPaths.CLIENT_REGISTER_PATH;

            ClientRegisterDTO registerDTO = new ClientRegisterDTO()
            {
                Email        = Helpers.RandomString(8) + GlobalConstants.AutoTestEmail,
                FullName     = Helpers.RandomString(5) + " " + Helpers.RandomString(8),
                ContactPhone = Helpers.Random.Next(1000000, 9999999).ToString(),
                Password     = Helpers.RandomString(10),
                Hint         = Helpers.RandomString(3)
            };

            string registerParam = JsonUtils.SerializeObject(registerDTO);
            var    response      = await this.Consumer.ExecuteRequest(url, Helpers.EmptyDictionary, registerParam, Method.POST);

            Assert.True(response.Status == System.Net.HttpStatusCode.OK);

            ClientDTO parsedResponse = JsonUtils.DeserializeJson <ClientDTO>(response.ResponseJson);

            PersonalDataEntity pdEntity = await this.PersonalDataRepository.TryGetAsync(
                p => p.PartitionKey == PersonalDataEntity.GeneratePartitionKey() && p.Email == registerDTO.Email.ToLower()) as PersonalDataEntity;

            Assert.NotNull(pdEntity);

            Assert.True(pdEntity.ContactPhone == registerDTO.ContactPhone);
            Assert.True(pdEntity.FullName == registerDTO.FullName);
            Assert.True(pdEntity.PasswordHint == registerDTO.Hint);

            TradersEntity traderEntity = await this.TradersRepository.TryGetAsync(
                t => t.PartitionKey == "Trader" && t.Id == pdEntity.RowKey
                ) as TradersEntity;

            Assert.NotNull(traderEntity);


            TradersEntity traderEmailEntity = await this.TradersRepository.TryGetAsync(
                t => t.PartitionKey == "IndexEmail" && t.Id == registerDTO.Email && t.PrimaryRowKey == pdEntity.RowKey
                ) as TradersEntity;

            Assert.NotNull(traderEmailEntity);

            //Authentication
            User newUser = new User()
            {
                Email    = registerDTO.Email,
                Password = registerDTO.Password
            };
            string userParam = JsonUtils.SerializeObject(newUser);


            string authUrl      = ApiPaths.CLIENT_BASE_PATH + "/auth";
            var    authResponse = await this.Consumer.ExecuteRequest(authUrl, Helpers.EmptyDictionary, userParam, Method.POST);

            Assert.True(authResponse.Status == HttpStatusCode.OK);
        }
        public async Task <ClientIdentity> RegisterClientAsync(
            string tenantId,
            string requestEmail,
            string requestPhone,
            string requestFullName,
            string requestCountryIso3Code,
            string requestAffiliateCode)
        {
            var iteration = 0;
            PersonalDataEntity entity;

            while (true)
            {
                iteration++;

                try
                {
                    var clientId = (long)(DateTime.UtcNow - DateTime.Parse("2020-01-01")).TotalSeconds;

                    entity                      = PersonalDataEntity.Generate(tenantId, clientId);
                    entity.Data.Email           = requestEmail;
                    entity.Data.FullName        = requestFullName;
                    entity.Data.Phone           = requestPhone;
                    entity.Data.AffiliateCode   = requestAffiliateCode;
                    entity.Data.CountryIso3Code = requestCountryIso3Code;

                    await _dataWriter.InsertAsync(entity);

                    break;
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"ERROR in PersonalDataMock.RegisterClientAsync. Iteration: {iteration}");
                    Console.WriteLine(ex);

                    if (iteration > 10)
                    {
                        throw;
                    }
                }
            }

            return(new ClientIdentity()
            {
                ClientId = entity.Data.ClientId,
                TenantId = entity.Data.TenantId
            });
        }
        private int SavePassedTest(int userId, PersonalDataEntity personalData, int testId)
        {
            int?professionId     = null;
            int expertAssessment = -1;

            if (personalData != null)
            {
                expertAssessment = personalData.ExpertAssessment;
                professionId     = personalData.ProfessionId;
            }

            var passedTestEntity = new PassedTestEntity
            {
                TestId          = testId,
                TestedId        = userId,
                ProfessionId    = professionId,
                ExpertAsessment = expertAssessment,
                Date            = DateTime.Now
            };

            _dbContext.Add(passedTestEntity);
            _dbContext.SaveChanges();
            return(passedTestEntity.Id);
        }