public async Task <int> Handle(AddOrUpdateProductsCommand command) { command.Products.ProductName.ThrowIfNullOrEmpty("Invalid products name parameter", nameof(command.Products.ProductName)); command.UserId.ThrowIfNotPositiveNonZeroInt("Invalid user id parameter", nameof(command.UserId)); return(await _productsRepository.AddOrUpdateProductsAsync(command.Products, command.UserId).ConfigureAwait(false)); }