NBitcoin Transaction sign(secret, bool) is giving error. Instead of bool it says to pass Coin Object I am using NBitcoin (I'm new to it) to sign a transaction. Here Transaction sign(secret, bool) method is giving error. (I've searched the Internet, but got no help.) Instead of bool it says to pass Coin object, I'm using the latest stable version of NBitcoin. How should I do this? Here's my code:
var fee = Money.Coins(0.0001m);

        Transaction payment=Transaction.Create(bitcoinNetwork);
        payment.Inputs.Add(new TxIn()
        {
            PrevOut = new OutPoint(fundingTransaction.GetHash(), 1)
        });

        payment.Outputs.Add(new TxOut()
        {
            Value = amount-fee,
            ScriptPubKey = toAddress.ScriptPubKey
        });

        var output = fundingTransaction.Outputs[0];
       

        payment.Outputs.Add(new TxOut()
        {
            Value = output.Value - amount - fee,
            ScriptPubKey = output.ScriptPubKey
        });

        var message = &quot;Thanks :)&quot;;
        var bytes = Encoding.UTF8.GetBytes(message);
        payment.Outputs.Add(new TxOut()
        {
            Value = Money.Zero,
            ScriptPubKey = TxNullDataTemplate.Instance.GenerateScriptPubKey(bytes)
        });

        Console.WriteLine(payment);

        payment.Inputs[0].ScriptSig = fundingTransaction.Outputs[1].ScriptPubKey;

        payment.Sign(secret, false); // the problem arises here

        using (var node = Node.Connect(Network.Main))
        {
            Console.WriteLine(&quot;Doing version handshake&quot;);
            node.VersionHandshake();
            Console.WriteLine(&quot;Sending message&quot;);
            node.SendMessage(new InvPayload(InventoryType.MSG_TX, payment.GetHash()));
            node.SendMessage(new TxPayload(payment));
            Thread.Sleep(500);
        }
Sign method expects two arguments: private key and coins to be spent
false makes no sense in that line according to the documentation mentioned in the below link but I found similar code in another question NBitcoin: signing a transaction in TestNet so I will have to try on my system in VS 2019:
https://programmingblockchain.gitbook.io/programmingblockchain/bitcoin_transfer/spend_your_coin#sign-your-transaction

transaction.Sign(bitcoinPrivateKey, receivedCoins.ToArray());

UPDATE(I tried the below things and it worked for me):
Create a Private key and get address:

Send some amount to the address: https://blockstream.info/testnet/tx/6266c8262610ab0790f9f1841930bb27666588be8ab343a7e0470b7bb48a655b
Use the below code to create a Tx, sign and broadcast it:

            var bitcoinPrivateKey = new BitcoinSecret("cPof7e5g6xfgB6AZrc6XVTVwA4efLJurh9kVxa6FRChbr8Jyqaon", Network.TestNet);
            var network = bitcoinPrivateKey.Network;
            var address = bitcoinPrivateKey.GetAddress(ScriptPubKeyType.Legacy);

            var client = new QBitNinjaClient(network);
            var transactionId = uint256.Parse("6266c8262610ab0790f9f1841930bb27666588be8ab343a7e0470b7bb48a655b");
            var transactionResponse = client.GetTransaction(transactionId).Result;


            var receivedCoins = transactionResponse.ReceivedCoins;
            OutPoint outPointToSpend = null;
            foreach (var coin in receivedCoins)
            {
                if (coin.TxOut.ScriptPubKey == bitcoinPrivateKey.ScriptPubKey)
                {
                    outPointToSpend = coin.Outpoint;
                }
            }

            var transaction = Transaction.Create(network);
            transaction.Inputs.Add(new TxIn()
            {
                PrevOut = outPointToSpend
            });

            var myAddress = BitcoinAddress.Create("tb1q5va20jy9dg30zdyy0nakg5y95trdr3gtw5jy9d", Network.TestNet);

            
            var txOutAmount = new Money(0.01m, MoneyUnit.BTC);

            // Tx fee
            var minerFee = new Money(0.0005m, MoneyUnit.BTC);

            // Change
            var txInAmount = (Money)receivedCoins[(int)outPointToSpend.N].Amount;
            var changeAmount = txInAmount - txOutAmount - minerFee;

            transaction.Outputs.Add(txOutAmount, myAddress.ScriptPubKey);
            transaction.Outputs.Add(changeAmount, bitcoinPrivateKey.ScriptPubKey);

           
            transaction.Inputs[0].ScriptSig = address.ScriptPubKey;

            //Sign Tx
            transaction.Sign(bitcoinPrivateKey, receivedCoins.ToArray());

            //Broadcast Tx
            BroadcastResponse broadcastResponse = client.Broadcast(transaction).Result;

            if (!broadcastResponse.Success)
            {
                Console.Error.WriteLine("ErrorCode: " + broadcastResponse.Error.ErrorCode);
                Console.Error.WriteLine("Error message: " + broadcastResponse.Error.Reason);
            }
            else
            {
                Console.WriteLine("Success! Tx:");
                Console.WriteLine(transaction.GetHash());
            }


Tx: https://blockstream.info/testnet/tx/0ada6696fb134ebc4f96a55a3d5b60d90e5a723ec2e27634bb1777730e7df914