private async Task <Result <Product> > ActiveProductOrError(Product product) { var result = product.Active(); if (result.Failure) { return(Result.Fail <Product>(result.Message)); } IProductAdapter productAdapter = new OutputProductAdapter(product); result = await _productRepository.Save(productAdapter); if (result.Failure) { return(Result.Fail <Product>(result.Message)); } return(Result.Ok(product)); }