Esempio n. 1
0
        /// <summary>
        /// Fills <paramref name="contact"/> "First name", "Last name", "Middle name" fields using
        /// <paramref name="converter"/>.
        /// </summary>
        /// <param name="contact"><see cref="Terrasoft.Configuration.Contact"/> instance.</param>
        /// <param name="converter"><see cref="IContactFieldConverter"/> implementation.</param>
        public static void FillSgmFields(this Contact contact, IContactFieldConverter converter)
        {
            if (converter == null)
            {
                return;
            }
            ContactSgm contactSgm = converter.GetContactSgm(contact.Name);

            contact.Surname    = contactSgm.Surname;
            contact.GivenName  = contactSgm.GivenName;
            contact.MiddleName = contactSgm.MiddleName;
        }
        /// <summary>
        /// <see cref="IContactFieldConverter.GetContactSgm"/>
        /// </summary>
        /// <remarks>
        /// After splitting <paramref name="name"/> first element will be used as <see cref="ContactSgm.Surname"/>,
        /// second element as <see cref="ContactSgm.GivenName"/>, everything else as <see cref="ContactSgm.MiddleName"/>.
        /// </remarks>
        ContactSgm IContactFieldConverter.GetContactSgm(string name)
        {
            var sgm = new ContactSgm();

            if (string.IsNullOrEmpty(name))
            {
                return(sgm);
            }
            var array = name.Split(Separator, StringSplitOptions.RemoveEmptyEntries);

            switch (array.Length)
            {
            case 0:
                return(sgm);

            case 1:
                sgm.Surname = array[0];
                break;

            case 2:
                sgm.Surname   = array[0];
                sgm.GivenName = array[1];
                break;

            default:
                sgm.Surname   = array[0];
                sgm.GivenName = array[1];
                StringBuilder sb = new StringBuilder();
                for (var i = 2; i <= array.Length - 1; i++)
                {
                    sb.AppendFormat("{0} ", array[i]);
                }
                sgm.MiddleName += sb.ToString().Trim();
                break;
            }
            return(sgm);
        }
        /// <summary>
        /// <see cref="IContactFieldConverter.GetContactName"/>
        /// </summary>
        /// <remarks>
        /// "Full name" string will be created using "Surname Given name [Middle name]" rule.
        /// </remarks>
        public string GetContactName(ContactSgm sgm)
        {
            var concatChar = Separator.FirstOrDefault();

            return(new[] { sgm.Surname, sgm.GivenName, sgm.MiddleName }.ConcatIfNotEmpty(concatChar.ToString()));
        }