Example #1
0
 /// <summary>
 /// Executes the Filter task over the data provided by the input pipe
 /// and writes the result to the output pipe.
 /// Is est, executes the operation: OutputPipe.Write(FilterTask(InputPipe.Read()));
 /// </summary>
 public virtual void FilterNext()
 {
     Monitor.Enter(oLock);
     outputPipe.Write(FilterTask(inputPipe.Read()));
     Monitor.PulseAll(oLock);
     Monitor.Exit(oLock);
 }
Example #2
0
        public async Task ProcessQueueMessage(
            [TimerTrigger("%TriggerTime%")] TimerInfo timer,
            TextWriter log)
        {
            logger.Information(
                "LoanRequestRetriever triggered at {@timer}...retrieving submitted loan requests...",
                timer);
            var submittedLoanRequests = await loanRequestRepository
                                        .AllSubmittedLoanRequests();

            logger.Information(
                $"Loaded {submittedLoanRequests.Count} loan requests!");
            await pipe.Write(submittedLoanRequests);

            logger.Information("Loan Request Retriver Done!!!");
        }
Example #3
0
 public async Task ProcessQueueMessage(
     [QueueTrigger("submitted-loan-requests")] string loanRequestPayload,
     TextWriter log)
 {
     logger.Information("Retrieving submitted loan requests...");
     var submittedLoanRequest = JsonConvert
         .DeserializeObject<LoanRequest>(
         loanRequestPayload);
     logger.Information("Sending request {@request} " +
         $"for credit check...", submittedLoanRequest);
     var enrichedLoanRequest = await creditCheckFilter
         .PerformCreditCheck(submittedLoanRequest);
     logger.Information("Credit Check finished! Response was: {@response} " +
         "Preparing for request submissions...", enrichedLoanRequest);
     await pipe.Write(enrichedLoanRequest);
     logger.Information("Credit Checker Done!!!");
 }
Example #4
0
        public async Task ProcessQueueMessage([QueueTrigger("credit-checked-loan-requests")] string message, TextWriter log)
        {
            logger.Information("Retrieving credit checked loan request...");
            dynamic creditCheckedLoanRequest = JsonConvert.DeserializeObject(message);
            var     loanQuoteRequest         = new LoanQuoteRequest
            {
                BSN = creditCheckedLoanRequest.OriginalLoanRequest.CitizenServiceNumber,

                CreditRating = $"{creditCheckedLoanRequest.CreditCheckReport.CreditScore} " +
                               $"({creditCheckedLoanRequest.CreditCheckReport.CreditRating})",

                LoanAmount = creditCheckedLoanRequest.OriginalLoanRequest.RequestedLoanAmount
            };

            logger.Information("Now sending the loan quote {@request} to all the registered banks...", loanQuoteRequest);
            var quoteResponse = await loanRequestSenderFilter.GetLoanQuotesFromRegisteredBanks(loanQuoteRequest);

            await pipe.Write(quoteResponse);

            logger.Information("Loan Request Sender Done!");
        }