I wish to create an extension method that takes A function with a parameter of IEnumerable<T>
.
int NumberOfRetries = 3;
string TableName = "Table";
Method(EnumerableParameter).RetrySection(EnumerableParameter,TableName ,NumberOfRetries);
Function to be extended
bool Method(IEnumerable<int> param)
{
foreach(var item in param)
{
Console.WriteLine(item);
}
return true;
}
I am having difficulty making the code compile
RetrySection(() => Method(EnumerableParameter),EnumerableParameter,TableName ,NumberOfRetries);
for both options.
Method(EnumerableParameter).RetrySection(EnumerableParameter,TableName,NumberOfRetries);
Extension Method
public static void RetrySection(this Func<IEnumerable<T>,bool> action, IEnumerable<T> parameter,string databaseTable,int jobcount)
{
int jobRowCount = ValidateTable(databaseTable).GetAwaiter().GetResult();
int retry = 0;
do
{
action(parameter);
jobRowCount = ValidateTable(databaseTable).GetAwaiter().GetResult();
retry++;
}
while ((jobRowCount < (jobcount * 2)) && retry < 3);
}
I'm getting the error Func<IEnumerable<int>,bool>
does not take 0 arguments.