public async Task FillInFormForLoan_Test() { var loanUtil = LoanGeneratorUtil.GenerateLoan(); var firstEmail = EmailGeneratorUtil.GenerateEmailFirst(); var mockEncodeDecodeService = new Mock <IEncodeDecodeService>().Object; var options = TestUtilities.GetOptions(nameof(FillInFormForLoan_Test)); using (var actContext = new E_MailApplicationsManagerContext(options)) { var email = await actContext.Emails.AddAsync(firstEmail); await actContext.SaveChangesAsync(); var loanDto = new LoanApplicantDto { Name = loanUtil.Name, EGN = loanUtil.EGN, PhoneNumber = loanUtil.PhoneNumber, GmailId = loanUtil.GmailId, UserId = loanUtil.GmailId }; var sut = new LoanService(actContext, mockEncodeDecodeService); var result = await sut.FillInFormForLoanAsync(loanDto); Assert.IsNotNull(result); } }
public async Task ThrowExeptionWhenPhoneNumberIsNullInFormForLoan_Test() { var loanUtil = LoanGeneratorUtil.GenerateLoan(); loanUtil.PhoneNumber = null; var mockEncodeDecodeService = new Mock <IEncodeDecodeService>().Object; var options = TestUtilities.GetOptions(nameof(ThrowExeptionWhenPhoneNumberIsNullInFormForLoan_Test)); using (var actContext = new E_MailApplicationsManagerContext(options)) { var loanDto = new LoanApplicantDto { Name = loanUtil.Name, EGN = loanUtil.EGN, PhoneNumber = loanUtil.PhoneNumber, GmailId = loanUtil.GmailId }; var sut = new LoanService(actContext, mockEncodeDecodeService); await sut.FillInFormForLoanAsync(loanDto); } }
public static void ValidatorGmailId(LoanApplicantDto loanApplicantDto) { if (loanApplicantDto.GmailId == null) { throw new LoanExeption($"Email with ID {loanApplicantDto.GmailId} does not exist!"); } }
public async Task ListEmailsWithStatusOpenAsync_Test() { var firstEmail = EmailGeneratorUtil.GenerateEmailFirst(); firstEmail.EmailStatusId = (int)EmailStatusesType.Open; var userId = firstEmail.UserId; var loanApplicantDto = new LoanApplicantDto { UserId = userId, }; var options = TestUtilities.GetOptions(nameof(ListEmailsWithStatusOpenAsync_Test)); using (var actContext = new E_MailApplicationsManagerContext(options)) { await actContext.Emails.AddAsync(firstEmail); await actContext.SaveChangesAsync(); var sut = new SearchService(actContext); var result = await sut.ListEmailsWithStatusOpenAsync(loanApplicantDto); Assert.IsNotNull(result); } }
public static void ValidatorDetailsOfLoanIfAreNull(LoanApplicantDto loanApplicantDto) { if (loanApplicantDto.Name == null || loanApplicantDto.EGN == null || loanApplicantDto.PhoneNumber == null) { throw new LoanExeption("Тhe details of the loan request have not been filled in correctly"); } }
public async Task <IActionResult> ListOpenStatusEmails() { var loanApplicantDto = new LoanApplicantDto { UserId = User.FindFirstValue(ClaimTypes.NameIdentifier) }; var openStatusEmails = await this.searchService.ListEmailsWithStatusOpenAsync(loanApplicantDto); var loanList = this.encodeDecodeService.DecodeLoanApplicantList(openStatusEmails); var listStatusOpenEmailsViewModel = new ListStatusOpenEmailsViewModel(loanList); return(View(listStatusOpenEmailsViewModel)); }
public async Task <LoanApplicant> FillInFormForLoanAsync(LoanApplicantDto loanApplicantDto) { ValidatorLoanService.ValidatorDetailsOfLoanIfAreNull(loanApplicantDto); ValidatorLoanService.ValidatorGmailId(loanApplicantDto); ValidatorLoanService.ValidatorDetailsOfLoan(loanApplicantDto); var isEgnCorrect = CheckEGNForDigit(loanApplicantDto.EGN); ValidatorLoanService.ValidatorEGN(isEgnCorrect); var user = await this.context.Users .Include(l => l.LoanApplicant) .Where(userId => userId.Id == loanApplicantDto.UserId) .FirstOrDefaultAsync(); var encodeName = this.encodeDecodeService.Encrypt(loanApplicantDto.Name); var encodeEGN = this.encodeDecodeService.Encrypt(loanApplicantDto.EGN); var encodePhoneNumber = this.encodeDecodeService.Encrypt(loanApplicantDto.PhoneNumber); var email = await this.context.Emails .Where(gmailId => gmailId.GmailId == loanApplicantDto.GmailId) .SingleOrDefaultAsync(); var loan = new LoanApplicant { Name = encodeName, EGN = encodeEGN, PhoneNumber = encodePhoneNumber, UserId = loanApplicantDto.UserId, User = user, Emails = email, GmailId = loanApplicantDto.GmailId }; email.SetCurrentStatus = DateTime.Now; email.EmailStatusId = (int)EmailStatusesType.Open; await this.context.LoanApplicants.AddAsync(loan); await this.context.SaveChangesAsync(); return(loan); }
public static void ValidatorDetailsOfLoan(LoanApplicantDto loanApplicantDto) { if (loanApplicantDto.EGN.Length != 10) { throw new LoanExeption("The EGN of the client must be exactly 10 digits!"); } if (loanApplicantDto.Name.Length < 3 || loanApplicantDto.Name.Length > 50) { throw new LoanExeption("The length of the client's name is not correct!"); } if (loanApplicantDto.PhoneNumber.Length < 8 || loanApplicantDto.PhoneNumber.Length > 50) { throw new LoanExeption("The length of the client's phone number is not correct!"); } }
public async Task <IActionResult> Loanform(string userData, string egnData, string phoneData, string idData) { try { var loanDto = new LoanApplicantDto { Name = userData, EGN = egnData, PhoneNumber = phoneData, GmailId = idData, UserId = User.FindFirstValue(ClaimTypes.NameIdentifier) }; var result = await this.loanService.FillInFormForLoanAsync(loanDto); } catch (LoanExeption) { return(Json(new { exeption = idData })); } return(Json(new { emailId = idData })); }
public async Task <IEnumerable <LoanApplicant> > ListEmailsWithStatusOpenAsync(LoanApplicantDto loanApplicantDto) { var loanList = await this.context.LoanApplicants .Include(u => u.User) .Include(eMail => eMail.Emails) .Where(currentUser => currentUser.UserId == loanApplicantDto.UserId && currentUser.Emails.EmailStatusId == (int)EmailStatusesType.Open) .ToListAsync(); return(loanList); }