// Token: 0x0600313B RID: 12603 RVA: 0x001229A8 File Offset: 0x00120BA8
        private static void ProcessFreeBusyStatus(PersonalAutoAttendant pAA, ref bool isFirst, StringBuilder builder)
        {
            if (!isFirst)
            {
                builder.Append("\r\n");
                builder.Append(LocalizedStrings.GetHtmlEncoded(-56156833));
            }
            else
            {
                isFirst = false;
            }
            List <string> list = new List <string>();

            if ((pAA.FreeBusy & FreeBusyStatusEnum.Busy) != FreeBusyStatusEnum.None)
            {
                list.Add(LocalizedStrings.GetNonEncoded(1864090954));
            }
            if ((pAA.FreeBusy & FreeBusyStatusEnum.Free) != FreeBusyStatusEnum.None)
            {
                list.Add(LocalizedStrings.GetNonEncoded(-575819061));
            }
            if ((pAA.FreeBusy & FreeBusyStatusEnum.Tentative) != FreeBusyStatusEnum.None)
            {
                list.Add(LocalizedStrings.GetNonEncoded(-559850781));
            }
            if ((pAA.FreeBusy & FreeBusyStatusEnum.OutOfOffice) != FreeBusyStatusEnum.None)
            {
                list.Add(LocalizedStrings.GetNonEncoded(-856091954));
            }
            builder.Append(Utilities.HtmlEncode(string.Format(CultureInfo.CurrentCulture, LocalizedStrings.GetNonEncoded(1058580864), new object[]
            {
                string.Join(LocalizedStrings.GetNonEncoded(53305273), list.ToArray())
            })));
        }
        // Token: 0x0600313A RID: 12602 RVA: 0x00122920 File Offset: 0x00120B20
        private static void ProcessTimeOfDay(PersonalAutoAttendant pAA, ref bool isFirst, StringBuilder builder, UserContext userContext)
        {
            if (!isFirst)
            {
                builder.Append("\r\n");
                builder.Append(LocalizedStrings.GetHtmlEncoded(-56156833));
            }
            else
            {
                isFirst = false;
            }
            string s = string.Empty;

            switch (pAA.TimeOfDay)
            {
            case TimeOfDayEnum.WorkingHours:
                s = LocalizedStrings.GetNonEncoded(1604545240);
                break;

            case TimeOfDayEnum.NonWorkingHours:
                s = LocalizedStrings.GetNonEncoded(955250317);
                break;

            case TimeOfDayEnum.Custom:
                s = UnifiedMessagingUtilities.GetCustomWorkingHours(pAA, userContext);
                break;
            }
            builder.Append(Utilities.HtmlEncode(s));
        }
        // Token: 0x0600313F RID: 12607 RVA: 0x00122BFC File Offset: 0x00120DFC
        private static string GetCustomWorkingHours(PersonalAutoAttendant pAA, UserContext userContext)
        {
            if (DateTimeUtilities.GetHoursFormat(userContext.UserOptions.TimeFormat) == null)
            {
            }
            string timeDisplayValue  = UnifiedMessagingUtilities.GetTimeDisplayValue(pAA.WorkingPeriod.StartTimeInMinutes, userContext);
            string timeDisplayValue2 = UnifiedMessagingUtilities.GetTimeDisplayValue(pAA.WorkingPeriod.EndTimeInMinutes, userContext);
            string days = UnifiedMessagingUtilities.GetDays(pAA.WorkingPeriod.DayOfWeek);

            return(string.Format(CultureInfo.CurrentCulture, LocalizedStrings.GetNonEncoded(-250514213), new object[]
            {
                timeDisplayValue,
                timeDisplayValue2,
                days
            }));
        }
Ejemplo n.º 4
0
 public void Delete()
 {
     using (IPAAStore ipaastore = PAAStore.Create(base.UserContext.ExchangePrincipal))
     {
         Guid identity = new Guid(Convert.FromBase64String((string)base.GetParameter("Id")));
         PersonalAutoAttendant personalAutoAttendant = null;
         ipaastore.TryGetAutoAttendant(identity, PAAValidationMode.None, out personalAutoAttendant);
         if (personalAutoAttendant != null)
         {
             ipaastore.DeleteAutoAttendant(identity);
         }
         IList <PersonalAutoAttendant> personalAutoAttendants = null;
         ipaastore.TryGetAutoAttendants(PAAValidationMode.StopOnFirstError, out personalAutoAttendants);
         this.RefreshList(personalAutoAttendants);
     }
 }
Ejemplo n.º 5
0
 private void AddFindMe(PersonalAutoAttendant paa)
 {
     PAAFindMeInfo[] array = (PAAFindMeInfo[])base.GetParameter("FndMe");
     if (array == null)
     {
         return;
     }
     foreach (PAAFindMeInfo paafindMeInfo in array)
     {
         if (!string.IsNullOrEmpty(paafindMeInfo.Ph1))
         {
             paa.KeyMappingList.AddFindMe(paafindMeInfo.Key, paafindMeInfo.Desc, paafindMeInfo.Ph1, paafindMeInfo.Tm1);
         }
         if (!string.IsNullOrEmpty(paafindMeInfo.Ph2))
         {
             paa.KeyMappingList.AddFindMe(paafindMeInfo.Key, paafindMeInfo.Desc, paafindMeInfo.Ph2, paafindMeInfo.Tm2);
         }
     }
 }
Ejemplo n.º 6
0
        // Token: 0x06002EDD RID: 11997 RVA: 0x0010D9C0 File Offset: 0x0010BBC0
        private static PersonalAutoAttendant FindAutoAttendantByGuid(IList <PersonalAutoAttendant> autoattendants, Guid identity, out int index)
        {
            index = -1;
            PersonalAutoAttendant result = null;

            if (autoattendants != null)
            {
                for (int i = 0; i < autoattendants.Count; i++)
                {
                    if (autoattendants[i].Identity == identity)
                    {
                        index  = i;
                        result = autoattendants[i];
                        break;
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 7
0
 public void Move()
 {
     using (IPAAStore ipaastore = PAAStore.Create(base.UserContext.ExchangePrincipal))
     {
         IList <PersonalAutoAttendant> list = null;
         ipaastore.TryGetAutoAttendants(PAAValidationMode.StopOnFirstError, out list);
         Guid identity = new Guid(Convert.FromBase64String((string)base.GetParameter("Id")));
         int  num;
         PersonalAutoAttendant personalAutoAttendant = PersonalAutoAttendantOptionsEventHandler.FindAutoAttendantByGuid(list, identity, out num);
         if (personalAutoAttendant != null)
         {
             if (this.IsOrderChanged(list))
             {
                 base.RenderPartialFailure(-846213614, OwaEventHandlerErrorCode.UnexpectedError);
             }
             else
             {
                 int num2 = (int)base.GetParameter("op");
                 if ((num2 != 1 || num == 0) && (num2 != 2 || num >= list.Count - 1))
                 {
                     throw new OwaInvalidRequestException("Event name and parameter doesn't match");
                 }
                 list.RemoveAt(num);
                 if (num2 == 1)
                 {
                     list.Insert(num - 1, personalAutoAttendant);
                 }
                 else
                 {
                     list.Insert(num + 1, personalAutoAttendant);
                 }
                 ipaastore.Save(list);
                 ipaastore.TryGetAutoAttendants(PAAValidationMode.StopOnFirstError, out list);
             }
         }
         else
         {
             base.RenderPartialFailure(-289549140, OwaEventHandlerErrorCode.ItemNotFound);
         }
         this.RefreshList(list);
     }
 }
Ejemplo n.º 8
0
        private void AddDuration(PersonalAutoAttendant paa)
        {
            PAADurationInfo paadurationInfo = (PAADurationInfo)base.GetParameter("Dur");

            if (paadurationInfo == null)
            {
                return;
            }
            if (paadurationInfo.IsCustomDuration)
            {
                paa.TimeOfDay     = TimeOfDayEnum.Custom;
                paa.WorkingPeriod = new WorkingPeriod((DaysOfWeek)paadurationInfo.DaysOfWeek, paadurationInfo.StartTimeMinutes, paadurationInfo.EndTimeMinutes);
                return;
            }
            if (paadurationInfo.IsWorkingHours)
            {
                paa.TimeOfDay = TimeOfDayEnum.WorkingHours;
                return;
            }
            paa.TimeOfDay = TimeOfDayEnum.NonWorkingHours;
        }
 // Token: 0x0600313C RID: 12604 RVA: 0x00122A8C File Offset: 0x00120C8C
 private static void ProcessOutofOfficeStatus(PersonalAutoAttendant pAA, ref bool isFirst, StringBuilder builder)
 {
     if (!isFirst)
     {
         builder.Append("\r\n");
         builder.Append(LocalizedStrings.GetHtmlEncoded(-56156833));
     }
     else
     {
         isFirst = false;
     }
     builder.Append(LocalizedStrings.GetHtmlEncoded(-2042562863));
     if (pAA.OutOfOffice == OutOfOfficeStatusEnum.Oof)
     {
         builder.Append(LocalizedStrings.GetHtmlEncoded(-856091954));
         return;
     }
     if (pAA.OutOfOffice == OutOfOfficeStatusEnum.NotOof)
     {
         builder.Append(LocalizedStrings.GetHtmlEncoded(727321927));
     }
 }
Ejemplo n.º 10
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());
            }
        }
Ejemplo n.º 11
0
 public void Enable()
 {
     using (IPAAStore ipaastore = PAAStore.Create(base.UserContext.ExchangePrincipal))
     {
         IList <PersonalAutoAttendant> list = null;
         ipaastore.TryGetAutoAttendants(PAAValidationMode.StopOnFirstError, out list);
         Guid identity = new Guid(Convert.FromBase64String((string)base.GetParameter("Id")));
         int  index;
         PersonalAutoAttendant personalAutoAttendant = PersonalAutoAttendantOptionsEventHandler.FindAutoAttendantByGuid(list, identity, out index);
         if (personalAutoAttendant != null)
         {
             int num = (int)base.GetParameter("op");
             if (num == 3)
             {
                 personalAutoAttendant.Enabled = true;
             }
             else
             {
                 if (num != 4)
                 {
                     throw new OwaInvalidRequestException("Event name and parameter doesn't match");
                 }
                 personalAutoAttendant.Enabled = false;
             }
             ipaastore.Save(list);
             ipaastore.TryGetAutoAttendants(PAAValidationMode.StopOnFirstError, out list);
             personalAutoAttendant = list[index];
             this.Writer.Write("<div id=\"ret\" enbl=");
             this.Writer.Write(personalAutoAttendant.Enabled ? 1 : 0);
             this.Writer.Write("></div>");
         }
         else
         {
             base.RenderPartialFailure(-289549140, OwaEventHandlerErrorCode.ItemNotFound);
             this.RefreshList(list);
         }
     }
 }
Ejemplo n.º 12
0
 private void AddTransferTo(PersonalAutoAttendant paa)
 {
     PAATransferToInfo[] array = (PAATransferToInfo[])base.GetParameter("XfrTo");
     if (array == null)
     {
         return;
     }
     foreach (PAATransferToInfo paatransferToInfo in array)
     {
         if (!string.IsNullOrEmpty(paatransferToInfo.Ph))
         {
             paa.KeyMappingList.AddTransferToNumber(paatransferToInfo.Key, paatransferToInfo.Desc, paatransferToInfo.Ph);
         }
         else
         {
             if (string.IsNullOrEmpty(paatransferToInfo.Contact))
             {
                 throw new OwaInvalidRequestException("Required field 'Contact' legacy distinguished name is null or empty string");
             }
             if (!Utilities.IsValidLegacyDN(paatransferToInfo.Contact))
             {
                 throw new OwaInvalidRequestException(string.Format(CultureInfo.InvariantCulture, "Required field 'Contact' legacy distinguished name is invalid {0}", new object[]
                 {
                     paatransferToInfo.Contact
                 }));
             }
             if (paatransferToInfo.VM)
             {
                 paa.KeyMappingList.AddTransferToADContactMailbox(paatransferToInfo.Key, paatransferToInfo.Desc, paatransferToInfo.Contact);
             }
             else
             {
                 paa.KeyMappingList.AddTransferToADContactPhone(paatransferToInfo.Key, paatransferToInfo.Desc, paatransferToInfo.Contact);
             }
         }
     }
 }
        // Token: 0x06003137 RID: 12599 RVA: 0x00122510 File Offset: 0x00120710
        internal static string CreatePAAPreviewString(PersonalAutoAttendant pAA, UserContext userContext)
        {
            StringBuilder stringBuilder = new StringBuilder();
            bool          flag          = true;

            stringBuilder.Append(LocalizedStrings.GetHtmlEncoded(-1942641301));
            if (pAA.ExtensionList != null && pAA.ExtensionList.Count > 0)
            {
                stringBuilder.Append(LocalizedStrings.GetHtmlEncoded(-1452720339));
                flag = false;
            }
            if (pAA.CallerIdList != null && pAA.CallerIdList.Count > 0)
            {
                UnifiedMessagingUtilities.ProcessCallerIdList(pAA, ref flag, stringBuilder, userContext);
            }
            if (pAA.TimeOfDay != TimeOfDayEnum.None)
            {
                UnifiedMessagingUtilities.ProcessTimeOfDay(pAA, ref flag, stringBuilder, userContext);
            }
            if (pAA.FreeBusy != FreeBusyStatusEnum.None)
            {
                UnifiedMessagingUtilities.ProcessFreeBusyStatus(pAA, ref flag, stringBuilder);
            }
            if (pAA.OutOfOffice != OutOfOfficeStatusEnum.None)
            {
                UnifiedMessagingUtilities.ProcessOutofOfficeStatus(pAA, ref flag, stringBuilder);
            }
            if (string.CompareOrdinal(stringBuilder.ToString(), LocalizedStrings.GetHtmlEncoded(-1942641301)) == 0)
            {
                stringBuilder.Length = 0;
                stringBuilder.Append(LocalizedStrings.GetHtmlEncoded(-194809129));
            }
            stringBuilder.Append("\r\n");
            stringBuilder.Append(UnifiedMessagingUtilities.CreatePAAPreviewActionString(pAA, userContext));
            return(stringBuilder.ToString());
        }
        // Token: 0x06003139 RID: 12601 RVA: 0x00122678 File Offset: 0x00120878
        private static void ProcessCallerIdList(PersonalAutoAttendant pAA, ref bool isFirst, StringBuilder builder, UserContext userContext)
        {
            if (!isFirst)
            {
                builder.Append("\r\n");
                builder.Append(LocalizedStrings.GetHtmlEncoded(-56156833));
            }
            else
            {
                isFirst = false;
            }
            bool          flag  = false;
            List <string> list  = new List <string>();
            List <string> list2 = new List <string>();
            List <string> list3 = new List <string>();
            List <string> list4 = new List <string>();

            foreach (CallerIdBase callerIdBase in pAA.CallerIdList)
            {
                switch (callerIdBase.CallerIdType)
                {
                case CallerIdTypeEnum.Number:
                {
                    string phoneNumberString = ((PhoneNumberCallerId)callerIdBase).PhoneNumberString;
                    if (!string.IsNullOrEmpty(phoneNumberString))
                    {
                        list.Add(phoneNumberString);
                        continue;
                    }
                    continue;
                }

                case CallerIdTypeEnum.ContactItem:
                    using (Contact contact = UnifiedMessagingUtilities.GetContact(((ContactItemCallerId)callerIdBase).StoreObjectId, userContext))
                    {
                        string item = (contact != null && !string.IsNullOrEmpty(contact.DisplayName)) ? contact.DisplayName : LocalizedStrings.GetNonEncoded(-1626952556);
                        list2.Add(item);
                        continue;
                    }
                    break;

                case CallerIdTypeEnum.DefaultContactFolder:
                    flag = true;
                    continue;

                case CallerIdTypeEnum.ADContact:
                    break;

                default:
                    continue;
                }
                list3.Add(((ADContactCallerId)callerIdBase).LegacyExchangeDN);
            }
            builder.Append(LocalizedStrings.GetHtmlEncoded(235538885));
            bool flag2 = false;
            bool flag3 = false;

            if (list.Count > 0)
            {
                builder.Append(Utilities.HtmlEncode(string.Format(CultureInfo.CurrentCulture, LocalizedStrings.GetNonEncoded(1695555698), new object[]
                {
                    string.Join(", ", list.ToArray())
                })));
                flag2 = true;
            }
            if (list3.Count > 0)
            {
                list4 = UnifiedMessagingUtilities.GetContactNamesFromLegacyDN(list3, userContext);
                flag3 = true;
            }
            if (list2.Count > 0 || flag3)
            {
                string[] array = new string[list2.Count + list3.Count];
                if (flag3)
                {
                    Array.Copy(list4.ToArray(), array, list4.Count);
                }
                if (list2.Count > 0)
                {
                    Array.Copy(list2.ToArray(), 0, array, list4.Count, list2.Count);
                }
                if (flag2)
                {
                    builder.Append(LocalizedStrings.GetHtmlEncoded(53305273));
                }
                builder.Append(Utilities.HtmlEncode(string.Format(CultureInfo.CurrentCulture, LocalizedStrings.GetNonEncoded(435094942), new object[]
                {
                    string.Join(", ", array)
                })));
                flag3 = true;
            }
            if (flag)
            {
                if (flag2 || flag3)
                {
                    builder.Append(LocalizedStrings.GetHtmlEncoded(53305273));
                }
                builder.Append(LocalizedStrings.GetHtmlEncoded(623331318));
            }
        }
Ejemplo n.º 15
0
        public void Save()
        {
            string text = (string)base.GetParameter("Name");

            if (!string.IsNullOrEmpty(text))
            {
                text = text.Trim();
            }
            if (string.IsNullOrEmpty(text))
            {
                base.RenderPartialFailure(-1816947001);
                return;
            }
            if (text.Length > 256)
            {
                text = text.Substring(0, 256);
            }
            string text2 = (string)base.GetParameter("Id");

            using (IPAAStore ipaastore = PAAStore.Create(base.UserContext.ExchangePrincipal))
            {
                IList <PersonalAutoAttendant> list = null;
                ipaastore.TryGetAutoAttendants(PAAValidationMode.None, out list);
                if (list.Count >= 9 && string.IsNullOrEmpty(text2))
                {
                    base.RenderPartialFailure(1125061902);
                }
                else
                {
                    PersonalAutoAttendant personalAutoAttendant = PersonalAutoAttendant.CreateNew();
                    personalAutoAttendant.Name = text;
                    string[] array = (string[])base.GetParameter("Ext");
                    if (array != null)
                    {
                        foreach (string item in array)
                        {
                            personalAutoAttendant.ExtensionList.Add(item);
                        }
                    }
                    if (base.IsParameterSet("SchS"))
                    {
                        int freeBusy = (int)base.GetParameter("SchS");
                        personalAutoAttendant.FreeBusy = (FreeBusyStatusEnum)freeBusy;
                    }
                    this.AddDuration(personalAutoAttendant);
                    this.AddCallerId(personalAutoAttendant);
                    if (base.GetParameter("OOF") != null)
                    {
                        personalAutoAttendant.OutOfOffice = OutOfOfficeStatusEnum.Oof;
                    }
                    this.AddFindMe(personalAutoAttendant);
                    this.AddTransferTo(personalAutoAttendant);
                    if (base.GetParameter("RecVM") == null)
                    {
                        personalAutoAttendant.KeyMappingList.Remove(10);
                    }
                    personalAutoAttendant.EnableBargeIn = (bool)base.GetParameter("Intrpt");
                    personalAutoAttendant.Enabled       = true;
                    if (string.IsNullOrEmpty(text2))
                    {
                        list.Add(personalAutoAttendant);
                    }
                    else
                    {
                        Guid identity = new Guid(Convert.FromBase64String(text2));
                        personalAutoAttendant.Identity = identity;
                        PersonalAutoAttendant autoAttendant = ipaastore.GetAutoAttendant(identity, PAAValidationMode.None);
                        int index = list.Count;
                        if (autoAttendant != null)
                        {
                            index = list.IndexOf(autoAttendant);
                            list.RemoveAt(index);
                        }
                        list.Insert(index, personalAutoAttendant);
                    }
                    if (base.IsParameterSet("SvO"))
                    {
                        this.Writer.Write("<div id=paaId>");
                        Utilities.HtmlEncode(Convert.ToBase64String(personalAutoAttendant.Identity.ToByteArray()), this.Writer);
                        this.Writer.Write("</div>");
                    }
                    ipaastore.Save(list);
                }
            }
        }
        // Token: 0x06003142 RID: 12610 RVA: 0x00122D80 File Offset: 0x00120F80
        private static string CreatePAAPreviewActionString(PersonalAutoAttendant pAA, UserContext userContext)
        {
            StringBuilder stringBuilder = new StringBuilder();
            bool          flag          = false;

            stringBuilder.Append("\r\n");
            stringBuilder.Append(LocalizedStrings.GetHtmlEncoded(1230987283));
            if (pAA.KeyMappingList.Count == 0)
            {
                return(LocalizedStrings.GetHtmlEncoded(-1306184482));
            }
            foreach (KeyMappingBase keyMappingBase in pAA.KeyMappingList.SortedMenu)
            {
                switch (keyMappingBase.KeyMappingType)
                {
                case KeyMappingTypeEnum.TransferToNumber:
                    UnifiedMessagingUtilities.TransferToPhoneNumber(keyMappingBase, stringBuilder, flag);
                    if (!flag)
                    {
                        flag = true;
                    }
                    break;

                case KeyMappingTypeEnum.TransferToADContactMailbox:
                    UnifiedMessagingUtilities.TransferToContact(keyMappingBase, userContext, stringBuilder, KeyMappingTypeEnum.TransferToADContactMailbox, flag);
                    if (!flag)
                    {
                        flag = true;
                    }
                    break;

                case KeyMappingTypeEnum.TransferToADContactPhone:
                    UnifiedMessagingUtilities.TransferToContact(keyMappingBase, userContext, stringBuilder, KeyMappingTypeEnum.TransferToADContactPhone, flag);
                    if (!flag)
                    {
                        flag = true;
                    }
                    break;

                case KeyMappingTypeEnum.TransferToVoicemail:
                    if (flag)
                    {
                        stringBuilder.Append("\r\n");
                    }
                    stringBuilder.Append(LocalizedStrings.GetHtmlEncoded(-246907567));
                    if (!flag)
                    {
                        flag = true;
                    }
                    break;

                case KeyMappingTypeEnum.FindMe:
                {
                    if (flag)
                    {
                        stringBuilder.Append("\r\n");
                    }
                    string text = UnifiedMessagingUtilities.AddContext(keyMappingBase);
                    stringBuilder.Append(Utilities.HtmlEncode(string.Format(CultureInfo.CurrentCulture, LocalizedStrings.GetNonEncoded(-578565389), new object[]
                        {
                            text,
                            keyMappingBase.Key
                        })));
                    if (!flag)
                    {
                        flag = true;
                    }
                    break;
                }
                }
            }
            return(stringBuilder.ToString());
        }
 protected void RenderPersonalAutoAttendantPreviewString(TextWriter writer, PersonalAutoAttendant personalAutoAttendant)
 {
     writer.Write(UnifiedMessagingUtilities.CreatePAAPreviewString(personalAutoAttendant, this.userContext));
 }