protected virtual Participant[] Convert(Participant[] value, string destinationRoutingType)
        {
            IMailboxSession mailboxSession = this.Session as IMailboxSession;

            if (mailboxSession == null)
            {
                ExTraceGlobals.ConvertersTracer.TraceDebug <string>(0L, "Provided session ({0}) is not supported for participant conversion.", this.Session.GetType().Name);
                return(value);
            }
            if (string.Equals(destinationRoutingType, "SMTP", StringComparison.OrdinalIgnoreCase))
            {
                return(ParticipantRoutingTypeConverter.ConvertToSmtp(value, mailboxSession));
            }
            Participant[] array  = ParticipantRoutingTypeConverter.ResolveParticipantsFromAD(value, destinationRoutingType, mailboxSession);
            Participant[] array2 = new Participant[array.Length];
            for (int i = 0; i < array.Length; i++)
            {
                array2[i] = (array[i] ?? value[i]);
            }
            return(array2);
        }