private licensePlatePrefixLevel GetLicensePlatePrefixLevel(licensePlatePrefix licensePlatePrefix)
        {
            switch (licensePlatePrefix)
            {
            case licensePlatePrefix.CC:
                return(licensePlatePrefixLevel.two);

            case licensePlatePrefix.CD:
                return(licensePlatePrefixLevel.two);

            case licensePlatePrefix.DIS:
                return(licensePlatePrefixLevel.tree);

            case licensePlatePrefix.EXT:
                return(licensePlatePrefixLevel.tree);

            case licensePlatePrefix.MI:
                return(licensePlatePrefixLevel.two);

            case licensePlatePrefix.TC:
                return(licensePlatePrefixLevel.two);

            case licensePlatePrefix.TRC:
                return(licensePlatePrefixLevel.tree);

            default:
                return(licensePlatePrefixLevel.one);
            }
        }
        public void ByLisencePlate(licensePlatePrefix licensePlatePrefix, DataGridView dgv)
        {
            DataGridViewRowCollection collection = dgv.Rows;

            dgv.CurrentCell = null;

            int counter = 0;

            for (int i = 0; i < Administrator.listaVehiculos.Count; i++)
            {
                collection[i].Visible = true;

                licensePlatePrefixLevel prefixLevel = GetLicensePlatePrefixLevel(licensePlatePrefix);

                #region For two and three cases

                string licensePlatePrefixString = licensePlatePrefix.ToString();

                #endregion

                switch (prefixLevel)
                {
                case licensePlatePrefixLevel.one:

                    char licensePlatePrefixChar = Convert.ToChar(licensePlatePrefix.ToString());

                    if (licensePlatePrefixChar != Administrator.listaVehiculos[i].LicensePlate[0])
                    {
                        collection[i].Visible = false;
                        counter++;
                    }

                    break;

                case licensePlatePrefixLevel.two:

                    string licenPlaceFirstTwoChars
                        = Administrator.listaVehiculos[i].LicensePlate[0].ToString()
                          + Administrator.listaVehiculos[i].LicensePlate[1].ToString();

                    if (licensePlatePrefixString != licenPlaceFirstTwoChars)
                    {
                        collection[i].Visible = false;
                        counter++;
                    }

                    break;

                case licensePlatePrefixLevel.tree:

                    string licenPlaceFirstThreeChars
                        = Administrator.listaVehiculos[i].LicensePlate[0].ToString()
                          + Administrator.listaVehiculos[i].LicensePlate[1].ToString()
                          + Administrator.listaVehiculos[i].LicensePlate[2].ToString();

                    if (licensePlatePrefixString != licenPlaceFirstThreeChars)
                    {
                        collection[i].Visible = false;
                        counter++;
                    }

                    break;
                }
            }
        }