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());
        }
Example #2
0
        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
            });
        }