public void BrowseSaleStateChanges_UsesQuery_WithEnforcedParentSaleId_ReturnsResultOfDispatch() { var parentSaleId = TestIds.A; var query = new BrowseSaleStateChanges(TestIds.B); var result = new Mock <IPagedResult <SaleStateChangeDto> >(MockBehavior.Strict).Object; _dispatcherMock.Setup(d => d.QueryAsync(It.Is <BrowseSaleStateChanges>(q => q == query && q.ParentSaleId == parentSaleId))).ReturnsAsync(result).Verifiable(); Assert.AreEqual(result, _controller.BrowseSaleStateChanges(parentSaleId, query).GetAwaiter().GetResult()); _dispatcherMock.Verify(); }
public async Task <IPagedResult <SaleStateChangeDto> > HandleAsync(BrowseSaleStateChanges query) { var sale = await _salesRepository.GetAsync(query.ParentSaleId); if (sale is null) { throw new BaristaException("sale_not_found", $"Could not find sale with ID {query.ParentSaleId}"); } var results = await _paginator.PaginateAsync(sale.StateChanges, query); return(_mapper.Map <IPagedResult <SaleStateChangeDto> >(results)); }
public async Task <IPagedResult <SaleStateChangeDto> > BrowseSaleStateChanges(Guid parentSaleId, [FromQuery] BrowseSaleStateChanges query) { query.Bind(q => q.ParentSaleId, parentSaleId); return(await QueryAsync(query)); }