-1

I'm a beginner C# dev and I am forgetting something. The (!ValidateCleared(actionsChecked))code is throwing and error the Operator ! cannot be applied to a void. Not sure how to fix this in this example. I tried keeping it a bool and using a break, but the actions didn't behave as expected. It only checked the one action.

protected void btnSubmit_Click(object sender, EventArgs e)
{
    ValidateActionSelected();enter code here
    ValidateCleared(actionsChecked);

    if (!ValidateCleared(actionsChecked))
    {
        if (String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX YYY") || String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX ZZZ"))
        {
            reqEffectiveDate.ErrorMessage = "";
        }

        if (ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYY ||
            ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYYDenial ||
            ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXzzz)
        {
            ValidateXXXYYY(actionsChecked, ddlActionsAndDocuments.Text);
        }

        if (ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.WWW ||
            ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYZZZ ||
            ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWWW ||
            ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWaived)
        {
            ValidateCertificate(actionsChecked, ddlActionsAndDocuments.Text);
        }
    }
}

private void ValidateCleared(List<xxCaseEntity> actionsChecked)
{

    //bool error = false;

    foreach (xxCaseEntity ACTIONyy in actionsChecked)
    {
        if (ACTIONyy.XXStatusCode == 40 || ACTIONyy.XXStatusCode == 45)
        {
            //error = true;
            DisplayErrorMessage("FR Action Cannot Apply to " + ACTIONyy.CaseIdentifier);

            actionsChecked.Remove(ACTIONyy);
            //break;
        }

    }
    return;

    //return error;
}
Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194

1 Answers1

-2

The fixed code is below

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        ValidateActionSelected();enter code here
        ValidateCleared(actionsChecked);

        if (!ValidateCleared(actionsChecked))
        {
            if (String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX YYY") || String.Equals(ddlActionsAndDocuments.SelectedItem.Text.ToString(), "XXX ZZZ"))
            {
                reqEffectiveDate.ErrorMessage = "";
            }

            if (ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYY ||
                ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXYYYDenial ||
                ddlActionsAndDocuments.SelectedValue == ActionTypes.XXXzzz)
            {
                ValidateXXXYYY(actionsChecked, ddlActionsAndDocuments.Text);
            }

            if (ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.WWW ||
                ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYZZZ ||
                ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWWW ||
                ddlActionsAndDocuments.SelectedValue == InsuranceActionTypes.YYYWaived)
            {
                ValidateCertificate(actionsChecked, ddlActionsAndDocuments.Text);
            }
        }
    }

    private bool ValidateCleared(List<xxCaseEntity> actionsChecked)
    {
        List<xxCaseEntity> removeItems = new List<xxCaseEntity>();
        foreach (xxCaseEntity ACTIONyy in actionsChecked)
        {
            if (ACTIONyy.XXStatusCode == 40 || ACTIONyy.XXStatusCode == 45)
            {
                DisplayErrorMessage("FR Action Cannot Apply to " + ACTIONyy.CaseIdentifier);

                //actionsChecked.Remove(ACTIONyy);
                removeItems.Add(ACTIONyy);
            }
        }
        foreach(xxCaseEntity ACTIONyy in removeItems)
        {
            actionsChecked.Remove(ACTIONyy);
        }
        return true;
    }
Wizengamot
  • 150
  • 1
  • 7