public AdminController(IGetProductsUseCase getProductsUseCase, GetProductsPresenter getProductsPresenter, IGetProductDetailUseCase getProductDetailUseCase, GetProductDetailPresenter getProductDetailPresenter, ICreateProductUseCase createProductUseCase, CreateProductPresenter createProductPresenter, IUpdateProductDetailUseCase updateProductDetailUseCase, UpdateProductDetailPresenter updateProductDetailPresenter, IRemoveProductUseCase removeProductUseCase, RemoveProductPresenter removeProductPresenter) { _getProductsUseCase = getProductsUseCase; _getProductsPresenter = getProductsPresenter; _getProductDetailUseCase = getProductDetailUseCase; _getProductDetailPresenter = getProductDetailPresenter; _createProductUseCase = createProductUseCase; _createProductPresenter = createProductPresenter; _updateProductDetailUseCase = updateProductDetailUseCase; _updateProductDetailPresenter = updateProductDetailPresenter; _removeProductUseCase = removeProductUseCase; _removeProductPresenter = removeProductPresenter; }
public async Task <IActionResult> GetProductsAsync( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "products/{filterParam?}")] HttpRequest req, string filterParam = null) { _ = int.TryParse(req.Query["pageNumber"], out int pageNumber); _ = int.TryParse(req.Query["pageSize"], out int pageSize); var parameters = new PageParameters(pageNumber, pageSize); var presenter = new GetProductsPresenter(); var request = new GetProductsRequest(parameters, filterParam); await _getProductsUseCase.Handle(request, presenter); if (presenter.PageMetadata != null) { req.HttpContext.Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(presenter.PageMetadata)); } return(presenter.ContentResult); }
static bool handleResponse(GetProductsRequest input, GetProductsPresenter output) { output.Handle(new GetProductsResponse(TestModelFactory.GetProductSample())); return(true); }