public static void ValidatorApproveLoan(ApproveLoanDto approveLoanDto)
 {
     if (approveLoanDto.GmailId == null || approveLoanDto.IsApprove == null)
     {
         throw new LoanExeption($"Тhe details of the loan request are invalid");
     }
 }
Beispiel #2
0
        public async Task ApproveLoan_Test()
        {
            var expectedResult = "1";

            var loanUtil = LoanGeneratorUtil.GenerateLoan();

            var firstEmail = EmailGeneratorUtil.GenerateEmailFirst();

            var mockEncodeDecodeService = new Mock <IEncodeDecodeService>().Object;

            var options = TestUtilities.GetOptions(nameof(ApproveLoan_Test));

            using (var actContext = new E_MailApplicationsManagerContext(options))
            {
                var loan = await actContext.LoanApplicants.AddAsync(
                    new LoanApplicant
                {
                    GmailId     = loanUtil.GmailId,
                    EGN         = loanUtil.GmailId,
                    Name        = loanUtil.Name,
                    PhoneNumber = loanUtil.PhoneNumber,
                    UserId      = loanUtil.UserId
                });

                await actContext.Emails.AddAsync(firstEmail);

                await actContext.SaveChangesAsync();

                var loanDto = new ApproveLoanDto
                {
                    GmailId   = loanUtil.GmailId,
                    IsApprove = expectedResult
                };

                var sut = new LoanService(actContext, mockEncodeDecodeService);

                var result = await sut.ApproveLoanAsync(loanDto);

                Assert.IsTrue(result);
            }
        }
Beispiel #3
0
        public async Task ThrowExeptionWhenExpectedResultIsNullIn_ApproveLoan_Test()
        {
            string expectedResult = null;
            var    gmailId        = "TestGmailId";

            var mockEncodeDecodeService = new Mock <IEncodeDecodeService>().Object;

            var options = TestUtilities.GetOptions(nameof(ThrowExeptionWhenExpectedResultIsNullIn_ApproveLoan_Test));

            using (var actContext = new E_MailApplicationsManagerContext(options))
            {
                var loanDto = new ApproveLoanDto
                {
                    GmailId   = gmailId,
                    IsApprove = expectedResult
                };

                var sut = new LoanService(actContext, mockEncodeDecodeService);

                await sut.ApproveLoanAsync(loanDto);
            }
        }
        public async Task <bool> ApproveLoanAsync(ApproveLoanDto approveLoanDto)
        {
            ValidatorLoanService.ValidatorApproveLoan(approveLoanDto);

            int expectedResult = int.Parse(approveLoanDto.IsApprove);

            var loan = await this.context.LoanApplicants
                       .Where(gmailId => gmailId.GmailId == approveLoanDto.GmailId)
                       .FirstOrDefaultAsync();

            var email = await this.context.Emails
                        .Where(gmailId => gmailId.GmailId == approveLoanDto.GmailId)
                        .FirstOrDefaultAsync();

            var user = await this.context.Users
                       .Where(id => id.Id == approveLoanDto.UserId)
                       .SingleOrDefaultAsync();

            if (expectedResult == rejectLoan)
            {
                loan.IsApproved = false;
                loan.User       = user;
            }

            if (expectedResult == approveLoan)
            {
                loan.IsApproved = true;
                loan.User       = user;
            }

            email.SetCurrentStatus = DateTime.Now;
            email.EmailStatusId    = (int)EmailStatusesType.Closed;
            email.SetTerminalState = DateTime.Now;

            await this.context.SaveChangesAsync();

            return(true);
        }
        public async Task <IActionResult> ApproveLoan(string approveData, string rejectData)
        {
            string[] expectedResult = null;
            try
            {
                if (approveData != null)
                {
                    expectedResult = approveData.Split(' ');
                    var approveDto = new ApproveLoanDto
                    {
                        IsApprove = expectedResult[0],
                        GmailId   = expectedResult[1],
                        UserId    = User.FindFirstValue(ClaimTypes.NameIdentifier)
                    };

                    await this.loanService.ApproveLoanAsync(approveDto);
                }
                else if (rejectData != null)
                {
                    expectedResult = rejectData.Split(' ');
                    var approveDto = new ApproveLoanDto
                    {
                        IsApprove = expectedResult[0],
                        GmailId   = expectedResult[1],
                        UserId    = User.FindFirstValue(ClaimTypes.NameIdentifier)
                    };

                    await this.loanService.ApproveLoanAsync(approveDto);
                }
            }
            catch (LoanExeption ex)
            {
                return(Json(new { message = ex }));
            }

            return(Json(new { emailId = expectedResult[1] }));
        }