示例#1
0
        public async Task <IActionResult> SetPaymentAndTerms([FromBody] UserProfileRegPaymentRequestInfo u)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(this.ApiErrorMessage400BadRequest(this.ModelState));
                }

                var jwtPayloadInfo = this.GetJwtPayloadInfo();

                var userId = await _bl.GetCachedUserId_byExternalReferenceIdAsync(jwtPayloadInfo.ExtReferenceId);

                if (userId == null)
                {
                    return(this.ApiErrorMessage400BadRequestUserIdInTokenNotFound(jwtPayloadInfo.ExtReferenceId));
                }

                var bl_usrProReg = new BL_UserProfile
                {
                    HasAgreedToPrivacyPolicy = u.HasAgreedToPrivacyPolicy,
                    HasAgreedToRefundPolicy  = u.HasAgreedToRefundPolicy,
                    HasAgreedToTandC         = u.HasAgreedToTandC,

                    Id = userId,
                };
                await _bl.SetUserAsync(bl_usrProReg);

                return(this.ApiPutMessage204NotContent());
            }
            catch (Exception exc)
            {
                return(this.ApiErrorMessage400BadRequest(exc));
            }
        }
示例#2
0
        public async Task <IActionResult> SetAboutYou([FromBody] UserProfileRegAboutYouRequestInfo usrProRegAboYouReqInfo)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(this.ApiErrorMessage400BadRequest(this.ModelState));
                }

                var jwtPayloadInfo = this.GetJwtPayloadInfo();

                var userProfileId = await _bl.GetCachedUserId_byExternalReferenceIdAsync(jwtPayloadInfo.ExtReferenceId);

                if (userProfileId == null)
                {
                    return(this.ApiErrorMessage400BadRequestUserIdInTokenNotFound(jwtPayloadInfo.ExtReferenceId));
                }



                var bl_usrProReg = new BL_UserProfile
                {
                    Id                 = userProfileId,
                    PrimaryEmail       = usrProRegAboYouReqInfo.Email,
                    DateOfBirth        = usrProRegAboYouReqInfo.DateOfBirth,
                    FirstName          = usrProRegAboYouReqInfo.FirstName,
                    Gender             = usrProRegAboYouReqInfo.Gender,
                    NotificationOption = usrProRegAboYouReqInfo.NotificationOption,
                    LastName           = usrProRegAboYouReqInfo.LastName,
                    PrimaryMobileNr    = usrProRegAboYouReqInfo.MobilePhone,
                };
                await _bl.SetUserAsync(bl_usrProReg);

                return(this.ApiPutMessage204NotContent());
            }
            catch (Exception exc)
            {
                return(this.ApiErrorMessage400BadRequest(exc));
            }
        }
示例#3
0
        public async Task SetAndCheckIndexes()
        {
            var extRefid = $"{GetType().Name}.{GetCallerMemberName()}";
            var testUser = await BL.CreateUserAsync($"{extRefid}@lifecouple.net", extRefid, true, "fName", "lName", null);

            var up = await BL.GetUserProfile_byExtRefIdAsync(testUser.ExternalRefId);

            up.FirstName = "John";
            up.LastName  = "Doe";
            await BL.SetUserAsync(up);

            var userQ = await BL.GetUserQuestionnaire_ByUserIdAsync(testUser.Id, QuestionnaireTemplate.QuestionnaireType.OnBoarding);

            Assert.Null(userQ);

            var onboardingQuestionnaire = await BL.GetQuestionnaireTemplate_ByUserQuestionnaire(userQ, QuestionnaireTemplate.QuestionnaireType.OnBoarding, testUser.Gender);

            var answers = new BL_QuestionnaireAnswers
            {
                Answers = new List <BL_QuestionnaireAnswers.Answer>(),
                QuestionnaireTemplateId = onboardingQuestionnaire.Id,
                UserprofileId           = testUser.Id
            };
            var v = 1;

            foreach (var q in onboardingQuestionnaire.QuestionnaireSets.First().Questions)
            {
                answers.Answers.Add(new BL_QuestionnaireAnswers.Answer
                {
                    QuestionId = q.Id,
                    Value      = $"{v}",
                });

                v++;
                if (v > 10)
                {
                    v = 1;
                }
            }
            var idUpdatedOrCreated = await BL.SetUserQuestionnaireAsync(answers);

            userQ = await BL.GetUserQuestionnaire_ByUserIdAsync(testUser.Id, QuestionnaireTemplate.QuestionnaireType.OnBoarding);

            Assert.NotNull(userQ);
            Assert.Equal(onboardingQuestionnaire.QuestionnaireSets.First().Questions.Count, userQ.Answers.Count);
            Assert.True(userQ.IsQuestionnaireTemplateComplete);

            testUser = await BL.GetUserProfile_byExtRefIdAsync(extRefid);

            Assert.Equal(up.FirstName, testUser.FirstName);
            Assert.Equal(up.LastName, testUser.LastName);
            Assert.Equal(up.PrimaryEmail, testUser.PrimaryEmail);
            Assert.Equal(up.PrimaryMobileNr, testUser.PrimaryMobileNr);
            Assert.Equal(5, testUser.Indexes?.Count);
            Assert.Equal(100, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Communication).Value);
            Assert.Equal(30, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.ConflictResolution).Value);
            Assert.Equal(20, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Intimacy).Value);
            Assert.Equal(45, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Overall).Value);
            Assert.Equal(20, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Trust).Value);

            //Test updating user profile and ensure Indexes and other data is still intact
            var toBeUpdated_testUser = new BL_UserProfile
            {
                LastName = $"updateLastName{testUser.LastName}",
                Id       = testUser.Id
            };
            await BL.SetUserAsync(toBeUpdated_testUser);

            var latestImageOf_testUser = await BL.GetUserProfile_byExtRefIdAsync(extRefid);

            Assert.Equal(latestImageOf_testUser.FirstName, testUser.FirstName);
            Assert.Equal(latestImageOf_testUser.LastName, toBeUpdated_testUser.LastName);
            Assert.Equal(latestImageOf_testUser.PrimaryEmail, testUser.PrimaryEmail);
            Assert.Equal(latestImageOf_testUser.PrimaryMobileNr, testUser.PrimaryMobileNr);
            Assert.Equal(latestImageOf_testUser.Indexes?.Count, testUser.Indexes?.Count);
            Assert.Equal(latestImageOf_testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Communication).Value, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Communication).Value);
            Assert.Equal(latestImageOf_testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.ConflictResolution).Value, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.ConflictResolution).Value);
            Assert.Equal(latestImageOf_testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Intimacy).Value, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Intimacy).Value);
            Assert.Equal(latestImageOf_testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Overall).Value, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Overall).Value);
            Assert.Equal(latestImageOf_testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Trust).Value, testUser.Indexes.Single(e => e.TypeOfIndex == IndexTypeEnum.Trust).Value);
        }