private void FlushAfterHourSettings() { if (this.afterHourSettings != null) { this.AfterHourFeatures = AutoAttendantSettings.ToXml(this.afterHourSettings); } }
private LocalizedString ValidateSettings(AutoAttendantSettings aa, AASettingsEnum settings, string operatorExtension) { string text = (settings == AASettingsEnum.BusinessHourSettings) ? "BusinessHours" : "AfterHours"; if (aa.WelcomeGreetingEnabled && string.IsNullOrEmpty(aa.WelcomeGreetingFilename)) { return(DirectoryStrings.InvalidAutoAttendantSetting(text + "WelcomeGreetingEnabled", text + "WelcomeGreetingFilename")); } if (!string.IsNullOrEmpty(aa.WelcomeGreetingFilename) && !this.VerifyValidCustomGreetingFile(aa.WelcomeGreetingFilename)) { return(DirectoryStrings.InvalidCustomGreetingFilename(text + "WelcomeGreetingFilename")); } if (aa.MainMenuCustomPromptEnabled && string.IsNullOrEmpty(aa.MainMenuCustomPromptFilename)) { return(DirectoryStrings.InvalidAutoAttendantSetting(text + "MainMenuCustomPromptEnabled", text + "MainMenuCustomPromptFilename")); } if (!string.IsNullOrEmpty(aa.MainMenuCustomPromptFilename) && !this.VerifyValidCustomGreetingFile(aa.MainMenuCustomPromptFilename)) { return(DirectoryStrings.InvalidCustomGreetingFilename(text + "MainMenuCustomPromptFilename")); } if (aa.KeyMappingEnabled && (aa.KeyMapping == null || aa.KeyMapping.Length == 0)) { return(DirectoryStrings.InvalidAutoAttendantSetting(text + "KeyMappingEnabled", text + "KeyMapping")); } if (aa.KeyMapping != null && aa.KeyMapping.Length > 10) { return(DirectoryStrings.TooManyKeyMappings(text)); } return(LocalizedString.Empty); }
private void FlushBusinessHourSettings() { if (this.businessHourSettings != null) { this.BusinessHourFeatures = AutoAttendantSettings.ToXml(this.businessHourSettings); } }
private static AutoAttendantSettings GetAASettingsFromPropertyBag(IPropertyBag propertyBag, AASettingsEnum settingsType) { ADPropertyDefinition propertyDefinition = (settingsType == AASettingsEnum.BusinessHourSettings) ? UMAutoAttendantSchema.BusinessHourFeatures : UMAutoAttendantSchema.AfterHourFeatures; string text = (string)propertyBag[propertyDefinition]; if (string.IsNullOrEmpty(text)) { return(new AutoAttendantSettings()); } return(AutoAttendantSettings.FromXml(text)); }
private void Write4_AutoAttendantSettings(string n, string ns, AutoAttendantSettings o, bool isNullable, bool needType) { if (o == null) { if (isNullable) { base.WriteNullTagLiteral(n, ns); } return; } if (!needType) { Type type = o.GetType(); if (!(type == typeof(AutoAttendantSettings))) { throw base.CreateUnknownTypeException(o); } } base.WriteStartElement(n, ns, o, false, null); if (needType) { base.WriteXsiType("AutoAttendantSettings", string.Empty); } base.WriteElementString("TimeZoneKeyName", string.Empty, o.TimeZoneKeyName); base.WriteElementStringRaw("IsBusinessHourSetting", string.Empty, XmlConvert.ToString(o.IsBusinessHourSetting)); base.WriteElementString("WelcomeGreetingFilename", string.Empty, o.WelcomeGreetingFilename); base.WriteElementStringRaw("WelcomeGreetingEnabled", string.Empty, XmlConvert.ToString(o.WelcomeGreetingEnabled)); base.WriteElementString("GlobalInfoAnnouncementFilename", string.Empty, o.GlobalInfoAnnouncementFilename); base.WriteElementStringRaw("MainMenuCustomPromptEnabled", string.Empty, XmlConvert.ToString(o.MainMenuCustomPromptEnabled)); base.WriteElementString("MainMenuCustomPromptFilename", string.Empty, o.MainMenuCustomPromptFilename); base.WriteElementStringRaw("TransferToOperatorEnabled", string.Empty, XmlConvert.ToString(o.TransferToOperatorEnabled)); base.WriteElementString("GlobalOperatorExtension", string.Empty, o.GlobalOperatorExtension); base.WriteElementStringRaw("KeyMappingEnabled", string.Empty, XmlConvert.ToString(o.KeyMappingEnabled)); CustomMenuKeyMapping[] keyMapping = o.KeyMapping; if (keyMapping != null) { base.WriteStartElement("KeyMapping", string.Empty, null, false); for (int i = 0; i < keyMapping.Length; i++) { this.Write3_CustomMenuKeyMapping("CustomMenuKeyMapping", string.Empty, keyMapping[i], true, false); } base.WriteEndElement(); } base.WriteEndElement(o); }
internal AutoAttendantSettings GetCurrentSettings(out HolidaySchedule holidaySettings, ref bool isBusinessHour) { ExTimeZone exTimeZone = null; string timeZone = this.TimeZone; if (string.IsNullOrEmpty(timeZone)) { ExTraceGlobals.UMAutoAttendantTracer.TraceDebug <string>((long)this.GetHashCode(), "AA [Name = \"{0}\"] TZ Id = empty string, defaulting to using Current machine timezone", base.Name); exTimeZone = ExTimeZone.CurrentTimeZone; } else if (!ExTimeZoneEnumerator.Instance.TryGetTimeZoneByName(this.TimeZone, out exTimeZone)) { throw new InvalidOperationException(DirectoryStrings.InvalidTimeZoneId(this.TimeZone)); } ExDateTime utcNow = ExDateTime.UtcNow; ExDateTime exDateTime = exTimeZone.ConvertDateTime(utcNow); ExTraceGlobals.UMAutoAttendantTracer.TraceDebug((long)this.GetHashCode(), "AA [Name = \"{0}\"] UTC = {1} LOCAL = {2} TZ Id = {3}", new object[] { base.Name, utcNow.ToString("R"), exDateTime.ToString("R"), this.TimeZone }); AutoAttendantSettings autoAttendantSettings = null; HolidaySchedule holidaySchedule = null; MultiValuedProperty <HolidaySchedule> holidaySchedule2 = this.HolidaySchedule; if (holidaySchedule2 != null && holidaySchedule2.Count > 0) { using (MultiValuedProperty <HolidaySchedule> .Enumerator enumerator = holidaySchedule2.GetEnumerator()) { while (enumerator.MoveNext()) { HolidaySchedule holidaySchedule3 = enumerator.Current; if ((ExDateTime)holidaySchedule3.StartDate.Date <= exDateTime.Date && (ExDateTime)holidaySchedule3.EndDate.Date >= exDateTime.Date) { ExTraceGlobals.UMAutoAttendantTracer.TraceDebug((long)this.GetHashCode(), "AA: {0} Call Time: {1} Matched with holiday: {2} {3}-{4}", new object[] { base.Name, exDateTime.ToString("R"), holidaySchedule3.Name, holidaySchedule3.StartDate.ToString("R"), holidaySchedule3.EndDate.ToString("R") }); autoAttendantSettings = this.AfterHourSettings; isBusinessHour = false; if (holidaySchedule == null) { holidaySchedule = holidaySchedule3; } else if (holidaySchedule3.StartDate.Date > holidaySchedule.StartDate.Date) { holidaySchedule = holidaySchedule3; } else if (holidaySchedule3.StartDate.Date == holidaySchedule.StartDate.Date) { int num = string.Compare(holidaySchedule.Name, holidaySchedule3.Name, StringComparison.OrdinalIgnoreCase); holidaySchedule = ((num > 0) ? holidaySchedule3 : holidaySchedule); } } } goto IL_290; } } ExTraceGlobals.UMAutoAttendantTracer.TraceDebug <string, string>((long)this.GetHashCode(), "AA: {0} Call Time: {1} No holiday schedule found", base.Name, exDateTime.ToString("R")); IL_290: holidaySettings = holidaySchedule; if (autoAttendantSettings != null) { return(autoAttendantSettings); } autoAttendantSettings = this.AfterHourSettings; isBusinessHour = false; foreach (ScheduleInterval scheduleInterval in this.BusinessHoursSchedule) { ExTraceGlobals.UMAutoAttendantTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "AA: {0} Call Time: {1} BusinessHour: {2}", base.Name, exDateTime.ToString("R"), scheduleInterval.ToString()); if (scheduleInterval.Contains(new WeekDayAndTime((DateTime)exDateTime))) { ExTraceGlobals.UMAutoAttendantTracer.TraceDebug <string, string, string>((long)this.GetHashCode(), "AA: {0} Call Time: {1} Matched with BusinessHour: {2}", base.Name, exDateTime.ToString("R"), scheduleInterval.ToString()); isBusinessHour = true; autoAttendantSettings = this.BusinessHourSettings; break; } } if (!isBusinessHour) { ExTraceGlobals.UMAutoAttendantTracer.TraceDebug <string, string>((long)this.GetHashCode(), "AA: {0} Call Time: {1} Returning AfterHour settings", base.Name, exDateTime.ToString("R")); } return(autoAttendantSettings); }
private AutoAttendantSettings Read4_AutoAttendantSettings(bool isNullable, bool checkType) { XmlQualifiedName xmlQualifiedName = checkType ? base.GetXsiType() : null; bool flag = false; if (isNullable) { flag = base.ReadNull(); } if (checkType && !(xmlQualifiedName == null) && (xmlQualifiedName.Name != this.id1_AutoAttendantSettings || xmlQualifiedName.Namespace != this.id2_Item)) { throw base.CreateUnknownTypeException(xmlQualifiedName); } if (flag) { return(null); } AutoAttendantSettings autoAttendantSettings = new AutoAttendantSettings(); bool[] array = new bool[11]; while (base.Reader.MoveToNextAttribute()) { if (!base.IsXmlnsAttribute(base.Reader.Name)) { base.UnknownNode(autoAttendantSettings); } } base.Reader.MoveToElement(); if (base.Reader.IsEmptyElement) { base.Reader.Skip(); return(autoAttendantSettings); } base.Reader.ReadStartElement(); base.Reader.MoveToContent(); int num = 0; int readerCount = base.ReaderCount; while (base.Reader.NodeType != XmlNodeType.EndElement && base.Reader.NodeType != XmlNodeType.None) { if (base.Reader.NodeType == XmlNodeType.Element) { if (!array[0] && base.Reader.LocalName == this.id3_TimeZoneKeyName && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.TimeZoneKeyName = base.Reader.ReadElementString(); array[0] = true; } else if (!array[1] && base.Reader.LocalName == this.id4_IsBusinessHourSetting && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.IsBusinessHourSetting = XmlConvert.ToBoolean(base.Reader.ReadElementString()); array[1] = true; } else if (!array[2] && base.Reader.LocalName == this.id5_WelcomeGreetingFilename && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.WelcomeGreetingFilename = base.Reader.ReadElementString(); array[2] = true; } else if (!array[3] && base.Reader.LocalName == this.id6_WelcomeGreetingEnabled && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.WelcomeGreetingEnabled = XmlConvert.ToBoolean(base.Reader.ReadElementString()); array[3] = true; } else if (!array[4] && base.Reader.LocalName == this.id7_GlobalInfoAnnouncementFilename && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.GlobalInfoAnnouncementFilename = base.Reader.ReadElementString(); array[4] = true; } else if (!array[5] && base.Reader.LocalName == this.id8_MainMenuCustomPromptEnabled && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.MainMenuCustomPromptEnabled = XmlConvert.ToBoolean(base.Reader.ReadElementString()); array[5] = true; } else if (!array[6] && base.Reader.LocalName == this.id9_MainMenuCustomPromptFilename && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.MainMenuCustomPromptFilename = base.Reader.ReadElementString(); array[6] = true; } else if (!array[7] && base.Reader.LocalName == this.id10_TransferToOperatorEnabled && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.TransferToOperatorEnabled = XmlConvert.ToBoolean(base.Reader.ReadElementString()); array[7] = true; } else if (!array[8] && base.Reader.LocalName == this.id11_GlobalOperatorExtension && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.GlobalOperatorExtension = base.Reader.ReadElementString(); array[8] = true; } else if (!array[9] && base.Reader.LocalName == this.id12_KeyMappingEnabled && base.Reader.NamespaceURI == this.id2_Item) { autoAttendantSettings.KeyMappingEnabled = XmlConvert.ToBoolean(base.Reader.ReadElementString()); array[9] = true; } else if (base.Reader.LocalName == this.id13_KeyMapping && base.Reader.NamespaceURI == this.id2_Item) { if (!base.ReadNull()) { CustomMenuKeyMapping[] array2 = null; int num2 = 0; if (base.Reader.IsEmptyElement) { base.Reader.Skip(); } else { base.Reader.ReadStartElement(); base.Reader.MoveToContent(); int num3 = 0; int readerCount2 = base.ReaderCount; while (base.Reader.NodeType != XmlNodeType.EndElement && base.Reader.NodeType != XmlNodeType.None) { if (base.Reader.NodeType == XmlNodeType.Element) { if (base.Reader.LocalName == this.id14_CustomMenuKeyMapping && base.Reader.NamespaceURI == this.id2_Item) { array2 = (CustomMenuKeyMapping[])base.EnsureArrayIndex(array2, num2, typeof(CustomMenuKeyMapping)); array2[num2++] = this.Read3_CustomMenuKeyMapping(true, true); } else { base.UnknownNode(null, ":CustomMenuKeyMapping"); } } else { base.UnknownNode(null, ":CustomMenuKeyMapping"); } base.Reader.MoveToContent(); base.CheckReaderCount(ref num3, ref readerCount2); } base.ReadEndElement(); } autoAttendantSettings.KeyMapping = (CustomMenuKeyMapping[])base.ShrinkArray(array2, num2, typeof(CustomMenuKeyMapping), false); } } else { base.UnknownNode(autoAttendantSettings, ":TimeZoneKeyName, :IsBusinessHourSetting, :WelcomeGreetingFilename, :WelcomeGreetingEnabled, :GlobalInfoAnnouncementFilename, :MainMenuCustomPromptEnabled, :MainMenuCustomPromptFilename, :TransferToOperatorEnabled, :GlobalOperatorExtension, :KeyMappingEnabled, :KeyMapping"); } } else { base.UnknownNode(autoAttendantSettings, ":TimeZoneKeyName, :IsBusinessHourSetting, :WelcomeGreetingFilename, :WelcomeGreetingEnabled, :GlobalInfoAnnouncementFilename, :MainMenuCustomPromptEnabled, :MainMenuCustomPromptFilename, :TransferToOperatorEnabled, :GlobalOperatorExtension, :KeyMappingEnabled, :KeyMapping"); } base.Reader.MoveToContent(); base.CheckReaderCount(ref num, ref readerCount); } base.ReadEndElement(); return(autoAttendantSettings); }
public static string ToXml(AutoAttendantSettings aa) { return(SerializationHelper.Serialize(aa)); }