// Token: 0x0600138B RID: 5003 RVA: 0x000516E4 File Offset: 0x0004F8E4 private void Write3_Item(string n, string ns, TextMessagingHostingDataRegionsRegion o, bool isNullable, bool needType) { if (o == null) { if (isNullable) { base.WriteNullTagLiteral(n, ns); } return; } if (!needType) { Type type = o.GetType(); if (!(type == typeof(TextMessagingHostingDataRegionsRegion))) { throw base.CreateUnknownTypeException(o); } } base.WriteStartElement(n, ns, o, false, null); if (needType) { base.WriteXsiType(null, ""); } base.WriteAttribute("Iso2", "", o.Iso2); base.WriteElementString("CountryCode", "", o.CountryCode); base.WriteElementString("PhoneNumberExample", "", o.PhoneNumberExample); base.WriteEndElement(o); }
private void Refresh(TextMessagingHostingData hostingData) { TextMessagingHostingData textMessagingHostingData = hostingData ?? TextMessagingHostingDataCache.Instance.GetHostingData(); bool flag = false; try { Monitor.Enter(this, ref flag); this.regionList = new List <RegionData>(); this.carrierList = new Dictionary <string, CarrierData>(); this.voiceMailCarrierList = new Dictionary <string, CarrierData>(); foreach (TextMessagingHostingDataCarriersCarrier textMessagingHostingDataCarriersCarrier in textMessagingHostingData.Carriers.Carrier) { string text = textMessagingHostingDataCarriersCarrier.Identity.ToString("00000"); CarrierData carrierData = new CarrierData(); carrierData.ID = text; bool flag2 = false; foreach (TextMessagingHostingDataServicesService textMessagingHostingDataServicesService in textMessagingHostingData.Services.Service) { if (textMessagingHostingDataServicesService.CarrierIdentity == textMessagingHostingDataCarriersCarrier.Identity) { if (TextMessagingHostingDataServicesServiceType.SmtpToSmsGateway == textMessagingHostingDataServicesService.Type && textMessagingHostingDataServicesService.SmtpToSmsGateway != null) { carrierData.HasSmtpGateway = true; } else if (textMessagingHostingDataServicesService.Type == TextMessagingHostingDataServicesServiceType.VoiceCallForwarding && textMessagingHostingDataServicesService.VoiceCallForwarding != null) { carrierData.UnifiedMessagingInfo = new UnifiedMessagingInfo(textMessagingHostingDataServicesService.VoiceCallForwarding.Enable, textMessagingHostingDataServicesService.VoiceCallForwarding.Disable, textMessagingHostingDataServicesService.VoiceCallForwarding.Type.ToString()); flag2 = true; } } } Dictionary <string, string> dictionary = new Dictionary <string, string>(textMessagingHostingDataCarriersCarrier.LocalizedInfo.Length); for (int k = 0; k < textMessagingHostingDataCarriersCarrier.LocalizedInfo.Length; k++) { dictionary.Add(textMessagingHostingDataCarriersCarrier.LocalizedInfo[k].Culture, textMessagingHostingDataCarriersCarrier.LocalizedInfo[k].DisplayName); } carrierData.LocalizedNames = dictionary; this.carrierList.Add(text, carrierData); if (flag2) { this.voiceMailCarrierList.Add(text, carrierData); } } Dictionary <string, string> localizedCarrierNames = new Dictionary <string, string>(this.carrierList.Count); foreach (KeyValuePair <string, CarrierData> keyValuePair in this.carrierList) { localizedCarrierNames.Add(keyValuePair.Key, SmsServiceProviders.GetLocalizedName(keyValuePair.Value.LocalizedNames)); } TextMessagingHostingDataRegionsRegion[] region2 = textMessagingHostingData.Regions.Region; int l = 0; while (l < region2.Length) { TextMessagingHostingDataRegionsRegion region = region2[l]; RegionInfo regionInfo; try { regionInfo = new RegionInfo(region.Iso2); } catch (ArgumentException) { goto IL_3AD; } goto IL_26A; IL_3AD: l++; continue; IL_26A: int[] array = (from service in textMessagingHostingData.Services.Service where service.RegionIso2 == region.Iso2 group service by service.CarrierIdentity into servicesByCarrier select servicesByCarrier.Key).ToArray <int>(); if (array.Length == 0) { goto IL_3AD; } List <string> list = new List <string>(array.Length); foreach (int num in array) { string text2 = num.ToString("00000"); if (this.carrierList.ContainsKey(text2)) { list.Add(text2); } } if (list.Count != 0) { list.Sort((string x, string y) => string.Compare(localizedCarrierNames[x], localizedCarrierNames[y], StringComparison.CurrentCultureIgnoreCase)); RegionData regionData = new RegionData(); regionData.ID = region.Iso2.ToUpper(); regionData.RegionInfo = regionInfo; regionData.CountryCode = region.CountryCode; regionData.CarrierIDs = list.ToArray(); this.regionList.Add(regionData); goto IL_3AD; } goto IL_3AD; } } finally { if (flag) { Monitor.Exit(this); } } }