Skip to main content
runpart3 and runpart4 were checking wrong cmdParts (no I do not want to edit 4 more characters!, sigh)
Source Link

Okay, here'shere is how I would reduce the code duplication (if I'mI am understanding the conditions correctly):

Edit: Original:

bool runCompleted(bool checked, string done)
{
    if( ( checked && done == "done" ) || !checked )
        return true;
    else
        return false;
}

New version based on Jerry's feedback:

bool runCompleted(bool checked, string done)
{
    return !checked || done == "done";
}

Then in your code:

if(    runCompleted(runPart1.Checked, cmdPart1 )
    && runCompleted(runpart2.Checked, cmdPart2 )
    && runCompleted(runpart3.Checked, cmdPart2cmdPart3 )
    && runCompleted(runpart4.Checked, cmdPart2cmdPart4 )
  )
    allDone();

Okay, here's how I would reduce the code duplication (if I'm understanding the conditions correctly):

Edit: Original:

bool runCompleted(bool checked, string done)
{
    if( ( checked && done == "done" ) || !checked )
        return true;
    else
        return false;
}

New version based on Jerry's feedback:

bool runCompleted(bool checked, string done)
{
    return !checked || done == "done";
}

Then in your code:

if(    runCompleted(runPart1.Checked, cmdPart1 )
    && runCompleted(runpart2.Checked, cmdPart2 )
    && runCompleted(runpart3.Checked, cmdPart2 )
    && runCompleted(runpart4.Checked, cmdPart2 )
  )
    allDone();

Okay, here is how I would reduce the code duplication (if I am understanding the conditions correctly):

Edit: Original:

bool runCompleted(bool checked, string done)
{
    if( ( checked && done == "done" ) || !checked )
        return true;
    else
        return false;
}

New version based on Jerry's feedback:

bool runCompleted(bool checked, string done)
{
    return !checked || done == "done";
}

Then in your code:

if(    runCompleted(runPart1.Checked, cmdPart1 )
    && runCompleted(runpart2.Checked, cmdPart2 )
    && runCompleted(runpart3.Checked, cmdPart3 )
    && runCompleted(runpart4.Checked, cmdPart4 )
  )
    allDone();
added 179 characters in body
Source Link
Mark Loeser
  • 1.8k
  • 1
  • 14
  • 15

Okay, here's how I would reduce the code duplication (if I'm understanding the conditions correctly):

Edit: Original:

bool runCompleted(bool checked, string done)
{
    if( ( checked && done == "done" ) || !checked )
        return true;
    else
        return false;
}

New version based on Jerry's feedback:

bool runCompleted(bool checked, string done)
{
    return !checked || done == "done";
}

Then in your code:

if(    runCompleted(runPart1.Checked, cmdPart1 )
    && runCompleted(runpart2.Checked, cmdPart2 )
    && runCompleted(runpart3.Checked, cmdPart2 )
    && runCompleted(runpart4.Checked, cmdPart2 )
  )
    allDone();

Okay, here's how I would reduce the code duplication (if I'm understanding the conditions correctly):

bool runCompleted(bool checked, string done)
{
    if( ( checked && done == "done" ) || !checked )
        return true;
    else
        return false;
}

Then in your code:

if(    runCompleted(runPart1.Checked, cmdPart1 )
    && runCompleted(runpart2.Checked, cmdPart2 )
    && runCompleted(runpart3.Checked, cmdPart2 )
    && runCompleted(runpart4.Checked, cmdPart2 )
  )
    allDone();

Okay, here's how I would reduce the code duplication (if I'm understanding the conditions correctly):

Edit: Original:

bool runCompleted(bool checked, string done)
{
    if( ( checked && done == "done" ) || !checked )
        return true;
    else
        return false;
}

New version based on Jerry's feedback:

bool runCompleted(bool checked, string done)
{
    return !checked || done == "done";
}

Then in your code:

if(    runCompleted(runPart1.Checked, cmdPart1 )
    && runCompleted(runpart2.Checked, cmdPart2 )
    && runCompleted(runpart3.Checked, cmdPart2 )
    && runCompleted(runpart4.Checked, cmdPart2 )
  )
    allDone();
Source Link
Mark Loeser
  • 1.8k
  • 1
  • 14
  • 15

Okay, here's how I would reduce the code duplication (if I'm understanding the conditions correctly):

bool runCompleted(bool checked, string done)
{
    if( ( checked && done == "done" ) || !checked )
        return true;
    else
        return false;
}

Then in your code:

if(    runCompleted(runPart1.Checked, cmdPart1 )
    && runCompleted(runpart2.Checked, cmdPart2 )
    && runCompleted(runpart3.Checked, cmdPart2 )
    && runCompleted(runpart4.Checked, cmdPart2 )
  )
    allDone();