Archive for Luglio 24th, 2008

Parse Full Name

CodeKeep C# Feed Luglio 24th, 2008

Description: Parse a string for firstname, middleinitial and lastname

Link: http://www.codekeep.net/snippets/a57fa506-0afe-4b60-8033-3589eb776315.aspx

        /// <summary>
        /// Parses the full name.
        /// </summary>
        /// <param name="FullName">The full name.</param>
        /// <param name="_firstName">Name of the _first.</param>
        /// <param name="_middleInitial">The _middle initial.</param>
        /// <param name="_lastName">Name of the _last.</param>
        public static void ParseFullName(string FullName, out string _firstName, out string _middleInitial, out string _lastName)
        {
            _firstName = "";
            _middleInitial = "";
            _lastName = "";

            string[] parts = new string[] { };
            string[] seperators = new string[1] { " " };
            parts = FullName.Split(seperators, StringSplitOptions.RemoveEmptyEntries);

            switch (parts.Length)
            {
                case 1:
                    {
                        // OPTIONS
                        //
                        // 0=firstname
                        //
                        _firstName = parts[0];      // 0=firstname
                        break;
                    }
                case 2:
                    {
                        // OPTIONS:
                        //
                        // option1: 0=salutation, 1=lastname
                        // option2: 0=firstname, 1=lastname
                        //
                        if (parts[0].EndsWith(".")) // option2
                        {
                            try
                            {
                                //TODO: parse salutation    // 0=salutation
                            }
                            catch
                            {
                                _firstName = parts[0];      // 0=firstname
                            }
                            _lastName = parts[1];           // 1=lastname
                        }
                        else // option2
                        {
                            _firstName = parts[0];          // 0=firstname
                            _lastName = parts[1];           // 1=lastname
                        }
                        break;
                    }
                case 3:
                    {
                        // OPTIONS:
                        //
                        // option1: 0=salutation, 1=firstname, 2=lastname
                        // option2: 0=firstname, 1=middle, 2=lastname
                        // option3: 0=firstname, 1=lastname, 3=namesuffix
                        //
                        if (parts[0].EndsWith("."))
                        {
                            //TODO: parse salutation                                    // 0=salutation
                            _firstName = parts[1];                                      // 1=firstname
                            _lastName = parts[2];                                       // 2=lastname
                        }
                        else
                        {
                            _firstName = parts[0];                                      // 0=firstname
                            if (parts[1].EndsWith(".") | parts[1].Length == 1)
                            {
                                _middleInitial = parts[1].Substring(0, 1).ToUpper();    // 1=middle
                                _lastName = parts[2];                                   // 2=lastname
                            }
                            else
                            {
                                if (parts[3].EndsWith(".") | parts[1].Length == 1)
                                {
                                    _firstName = parts[0];                              // 0=firstname
                                    _lastName = parts[1];                               // 1=lastname
                                    //TODO: parse namesuffix                            // 3=namesuffix
                                }
                            }
                        }
                        break;
                    }
                case 4:
                    {
                        // OPTIONS:
                        //
                        // option1: 0=salutation, 1=firstname, 2=lastname, 3=namesuffix
                        // option2: 0=salutation, 1=firstname, 2=middle, 3=lastname
                        // option3: 0=firstname, 1=middle, 2=lastname, 3=namesuffix
                        //
                        if (parts[0].EndsWith(".")) //option1
                        {
                            //TODO: parse salutation                                // 0=salutation
                            _firstName = parts[1];                                  // 1=firstname

                            if (parts[2].EndsWith(".")) //option2
                            {
                                _middleInitial = parts[2].Substring(0, 1).ToUpper(); // 2=middleinitial
                                _lastName = parts[3];                               // 3=lastname
                            }
                            else //option1
                            {
                                _lastName = parts[2];                               // 2=lastname                            
                                //TODO: parse namesuffix                            // 3=namesuffix
                            }
                        }
                        else //option3
                        {
                            _firstName = parts[0];                                  // 0=firstname
                            _middleInitial = parts[1].Substring(0, 1).ToUpper();     // 1=middle
                            _lastName = parts[2];                                   // 2=lastname
                            //TODO: parse namesuffix                                // 3=namesuffix
                        }
                        break;
                    }
            }
        }