Beispiel #1
0
        public async Task <Pagination <OfferListPreviewDto> > Handle(GetSellerOffersQuery request, CancellationToken cancellationToken)
        {
            var sellerId         = Guid.Parse(request.SellerId);
            var offersPagination = await _offerRepository.GetAllActiveByUserIdAsync(sellerId, request.OfferFilter);

            var offersDtoPagination = offersPagination.Transform(offers =>
                                                                 offers.Select(offer => offer.ToOfferListPreviewDto()));

            return(offersDtoPagination);
        }
        public override async Task Handle(UserLockedIntegrationEvent @event)
        {
            _logger.LogWithProps(LogLevel.Information,
                                 $"Handling {nameof(UserLockedIntegrationEvent)} integration event",
                                 "EventId".ToKvp(@event.Id),
                                 "UserId".ToKvp(@event.UserId));

            var offersPagination = await _offerRepository.GetAllActiveByUserIdAsync(@event.UserId,
                                                                                    new OfferFilter { PageSize = Int32.MaxValue });

            foreach (var offer in offersPagination.Items)
            {
                offer.EndOffer();
                _offerRepository.Update(offer);
            }

            await _offerRepository.UnitOfWork.SaveChangesAndDispatchDomainEventsAsync();

            _logger.LogWithProps(LogLevel.Information,
                                 $"Ended {offersPagination.Items.Count} offers",
                                 "EventId".ToKvp(@event.Id),
                                 "UserId".ToKvp(@event.UserId),
                                 "OfferIds".ToKvp(string.Join(",", offersPagination.Items.Select(x => x.Id))));
        }