public static Result <ChangeBalanceCmd> Create(int userId, decimal amount) { return(ParametersValidation.Validate( ParametersValidation.Ensure(() => userId > 0, "Invalid user"), ParametersValidation.NotDefaultValue(amount, nameof(amount)) ) .Combine() .Map(() => new ChangeBalanceCmd(userId, amount))); }