Esempio n. 1
0
        public async Task Consume(ConsumeContext <IUserDeliveriesRequested> context)
        {
            try
            {
                var message = context.Message;

                var query = this._mapper.Map <UserDeliveriesRequestedQuery>(message);

                using (var scope = this._serviceScopeFactory.CreateScope())
                {
                    var mediator = scope.ServiceProvider.GetRequiredService <IMediator>();

                    var response = await mediator.Send(query);

                    await context.RespondAsync(response);
                }
            }
            catch (ValidationsException e)
            {
                var errors = e.Errors.Aggregate((curr, next) => $"{curr}; {next}");

                var internalErrorResponseDto = new InternalErrorResponseDto
                {
                    Message = "Please correct the validations errors and try again",
                    Details = errors,
                    Type    = InternalErrorResponseTypeEnum.Validation
                };
                await context.RespondAsync <InternalErrorResponseDto>(internalErrorResponseDto);

                // log ex
                this._logger.LogError(e, errors);
            }
            catch (Exception e)
            {
                var internalErrorResponseDto = new InternalErrorResponseDto
                {
                    Message = $"Something went wrong in {nameof(UserDeliveriesRequestedConsumer)}",
                    Details = "An error occured",
                    Type    = InternalErrorResponseTypeEnum.Error
                };
                await context.RespondAsync <InternalErrorResponseDto>(internalErrorResponseDto);

                this._logger.LogError(e, $"Something went wrong in {nameof(UserDeliveriesRequestedConsumer)}");
            }
        }
Esempio n. 2
0
 public HttpResponseException(InternalErrorResponseDto internalResponseDto)
 {
     this.ExceptionDto = internalResponseDto;
 }