public async Task <UserLoanApplication> PinApplication(string userName, long loanApplicationId)
        {
            LoanApplication loanApplication = await loanApplicationRepository.FindAsync(loanApplicationId);

            if (loanApplication is null)
            {
                return(null);
            }

            var userLoanApplication = new UserLoanApplication
            {
                CreatedBy         = userName,
                LoanApplicationId = loanApplicationId
            };

            dbContext.UserLoanApplications.Add(userLoanApplication);

            await dbContext.SaveChangesAsync();

            return(userLoanApplication);
        }
        public async Task <bool> SyncRepaymentSchedulesAsync(long loanApplicationId)
        {
            await loanApplicationRepository.IsValidAsync(loanApplicationId);

            LoanApplication loanApplication = await loanApplicationRepository.FindAsync(loanApplicationId);

            await DeleteByLoanApplication(loanApplicationId);

            loanApplication.RepaymentSchedules = new List <RepaymentScheduleCore>();

            var repaymentSchedules = GenerateRepaymentSchedules(loanApplication);

            loanApplication.RepaymentSchedules = repaymentSchedules.ToList();

            dbContext.LoanApplications.Attach(loanApplication);

            await dbContext.SaveChangesAsync();

            return(true);
        }