public string ToMachineForm() { string accNumber = string.Empty; if (AccountNumber.Length < 8 || AccountNumber.Length > 14 || AccountNumber[6] != '-') { return("Invalid account number. Proper account number is 8-14 numbers long and contains dash after first 6 numbers"); } accNumber = AccountNumber.Remove(6, 1); if (!accNumber.All(Char.IsDigit)) { return("Invalid account number. No letters allowed"); } if (accNumber[0].Equals('4') || accNumber[0].Equals('5')) { while (accNumber.Length < 14) { accNumber = accNumber.Insert(7, "0"); } } else { while (accNumber.Length < 14) { accNumber = accNumber.Insert(6, "0"); } } string checksum = HasValidChecksum(accNumber); if (checksum == accNumber.Substring(accNumber.Length - 1)) { Message = "Account number is valid. Checksum " + checksum + " is equal to the last digit."; } else { Message = "Account number is invalid. Checksum " + checksum + " is not equal to the last digit."; } return("Account number " + AccountNumber + " in machine form is: " + accNumber); }