Example #1
0
        public async Task Handle(EstimationRequested message)
        {
            _logger.LogInformation(
                "New case number received {caseNumber} with {imageNumber} image(s)",
                message.CaseNumber,
                message.ImageUrls.Count);

            Data.CaseNumber  = message.CaseNumber;
            Data.ClientId    = message.ClientId;
            Data.CallbackUrl = message.CallbackUri;
            Data.State       = EstimationStates.New;
            Data.Images      = message.ImageUrls.Select((url, index) => new CaseImage
            {
                Id  = index,
                Url = url
            }).ToArray();

            await _bus.Send(new EstimationStateChanged
            {
                CaseNumber = message.CaseNumber,
                State      = Data.State
            });

            foreach (var image in Data.Images)
            {
                await _bus.Send(new ImageUrlReceived
                {
                    CaseNumber = message.CaseNumber,
                    ImageId    = image.Id,
                    ImageUrl   = image.Url
                });
            }
        }
        public async Task <ActionResult <NewEstimationResponse> > ProcessNewEstimation([FromBody] NewEstimationRequest request)
        {
            var message = new EstimationRequested
            {
                CaseNumber  = Guid.NewGuid(),
                ClientId    = "From auth",
                CallbackUri = request.CallBackUri,
                ImageUrls   = request.ImageUrls
            };

            await _bus.Send(message);

            return(Accepted(new NewEstimationResponse {
                Token = message.CaseNumber.ToString("D")
            }));
        }