public async Task <IActionResult> ExternalEstimationResponse(Guid caseNumber, [FromBody] ExternalEstimationProcessed request) { RandomFailureGenerator.RandomFail( failThreshold: Constants.FailureThresholds.ApplicationReceivingExternalEstimations, // Exception is thrown if a random value between 0 and 1 is greater or equal this value url: Request.GetDisplayUrl(), _logger); _logger.LogInformation("Response received from the external estimations service for case number {caseNumber}", caseNumber); var source = new MemoryStream(new byte[1024]); source.Write(Encoding.UTF8.GetBytes(request.Estimation)); source.Position = 0; var attachment = await _bus.Advanced.DataBus.CreateAttachment(source); var message = new EstimationCompleted { CaseNumber = caseNumber, EstimationTicket = attachment.Id }; await _bus.Send(message); return(Accepted()); }
public async Task Handle(EstimationCompleted message) { _logger.LogInformation( "Estimation received for case number {caseNumber}", message.CaseNumber); Data.EstimationTicket = message.EstimationTicket; Data.State = EstimationStates.EstimationReady; await _bus.Send(new EstimationStateChanged { CaseNumber = Data.CaseNumber, State = Data.State }); await _bus.Send(new EstimationReady { CaseNumber = Data.CaseNumber, CallbackUri = Data.CallbackUrl, EstimationId = Data.EstimationTicket }); }