C# Template – Validator Usage

//should be inside the form
//call int before save

private bool ValidateUserForm()
{
    var validator = new Validator();

    bool isValid = validator.Validate(new List<ValidationRule>
    {
        new ValidationRule("Please enter a Username", () => !string.IsNullOrWhiteSpace(txtUserName.Text)),
        new ValidationRule("Please enter a Password", () => !string.IsNullOrWhiteSpace(txtPassword.Text)),
        new ValidationRule("Please enter First Name", () => !string.IsNullOrWhiteSpace(txtFirstName.Text)),
        new ValidationRule("Please enter Last Name", () => !string.IsNullOrWhiteSpace(txtLastName.Text))
    });

    if (!isValid)
    {
        MsgBox.Error(validator.FirstError());
        return false;
    }

    return true;
}


//save event
private void btnSave_Click(object sender, EventArgs e)
        {
            // Create model object
            var u = new Users
            {
                FirstName = txtFirstName.Text.Trim(),
                LastName = txtLastName.Text.Trim(),
                MiddleName = txtMiddleName.Text.Trim(),
                UserName = txtUserName.Text.Trim(),
                Password = Cryptograph.EncryptString(txtPassword.Text),
                IsActive = "Y",
                UserType = "Administrator"
            };

            // Save or update depending on mode
            switch (currentTranstype)
            {
                case TransTypes.Add:
                    u.Save();
                    MsgBox.Information("User saved.");
                    break;

                case TransTypes.Edit:
                    int id = Convert.ToInt32(dtData.GetFocusedDataRow()["Id"]);
                    u.Update(id);
                    MsgBox.Information("User updated.");
                    break;
            }

            // Refresh the data grid or UI
            viewData();
        }