예제 #1
0
        private void AddCallerId(PersonalAutoAttendant paa)
        {
            PAACallerIdInfo paacallerIdInfo = (PAACallerIdInfo)base.GetParameter("CllrId");

            if (paacallerIdInfo == null)
            {
                return;
            }
            if (paacallerIdInfo.HasPhoneNumbers)
            {
                string[] array = (string[])base.GetParameter("CPh");
                foreach (string phoneNumber in array)
                {
                    paa.CallerIdList.Add(CallerIdBase.CreatePhoneNumber(phoneNumber));
                }
            }
            if (paacallerIdInfo.HasContacts)
            {
                RecipientInfo[] array3 = (RecipientInfo[])base.GetParameter("CRcps");
                foreach (RecipientInfo recipientInfo in array3)
                {
                    CallerIdBase item = null;
                    if (recipientInfo.AddressOrigin == AddressOrigin.Store)
                    {
                        item = CallerIdBase.CreateContactItem(recipientInfo.StoreObjectId);
                    }
                    else if (recipientInfo.AddressOrigin == AddressOrigin.Directory)
                    {
                        item = new ADContactCallerId(recipientInfo.RoutingAddress);
                    }
                    paa.CallerIdList.Add(item);
                }
            }
            if (paacallerIdInfo.IsInContactFolder)
            {
                paa.CallerIdList.Add(new ContactFolderCallerId());
            }
        }
예제 #2
0
        public void ValidateCallerId()
        {
            PAACallerIdInfo paacallerIdInfo = (PAACallerIdInfo)base.GetParameter("CllrId");
            string          text            = null;

            using (IPAAStore ipaastore = PAAStore.Create(base.UserContext.ExchangePrincipal))
            {
                if (paacallerIdInfo.HasPhoneNumbers)
                {
                    string[] array = (string[])base.GetParameter("CPh");
                    if (array.Length > 50)
                    {
                        text = Utilities.HtmlEncode(string.Format(CultureInfo.CurrentCulture, LocalizedStrings.GetNonEncoded(1755659442), new object[]
                        {
                            50
                        }));
                    }
                    if (text == null)
                    {
                        text = UnifiedMessagingUtilities.ValidatePhoneNumbers(new UnifiedMessagingUtilities.ValidatePhoneNumber(ipaastore.ValidatePhoneNumberCallerId), array);
                    }
                }
                IDataValidationResult dataValidationResult = null;
                if (text == null && paacallerIdInfo.HasContacts)
                {
                    RecipientInfo[] array2 = (RecipientInfo[])base.GetParameter("CRcps");
                    if (array2.Length > 50)
                    {
                        text = Utilities.HtmlEncode(string.Format(CultureInfo.CurrentCulture, LocalizedStrings.GetNonEncoded(2034140420), new object[]
                        {
                            50
                        }));
                    }
                    if (text == null)
                    {
                        foreach (RecipientInfo recipientInfo in array2)
                        {
                            if (recipientInfo.AddressOrigin == AddressOrigin.Store)
                            {
                                ipaastore.ValidateContactItemCallerId(recipientInfo.StoreObjectId, out dataValidationResult);
                            }
                            else if (recipientInfo.AddressOrigin == AddressOrigin.Directory)
                            {
                                ipaastore.ValidateADContactCallerId(recipientInfo.RoutingAddress, out dataValidationResult);
                            }
                            if (dataValidationResult.PAAValidationResult != PAAValidationResult.Valid)
                            {
                                text = UnifiedMessagingUtilities.GetErrorResourceId(dataValidationResult.PAAValidationResult, recipientInfo.DisplayName);
                                break;
                            }
                        }
                    }
                }
                if (text == null && paacallerIdInfo.IsInContactFolder)
                {
                    ipaastore.ValidateContactFolderCallerId(out dataValidationResult);
                    if (dataValidationResult.PAAValidationResult != PAAValidationResult.Valid)
                    {
                        text = UnifiedMessagingUtilities.GetErrorResourceId(dataValidationResult.PAAValidationResult, null);
                    }
                }
            }
            if (!string.IsNullOrEmpty(text))
            {
                this.RenderErrorInfobar(text);
            }
        }