/// <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); }
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!!!"); }
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!!!"); }
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!"); }