private static void SetNullFieldsEmpty(Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData data)
 {
     if (data == null)
     {
         throw new ArgumentNullException("data");
     }
     if (data.Regions == null)
     {
         data.Regions = new TextMessagingHostingDataRegions();
     }
     if (data.Regions.Region == null)
     {
         data.Regions.Region = new TextMessagingHostingDataRegionsRegion[0];
     }
     if (data.Carriers == null)
     {
         data.Carriers = new TextMessagingHostingDataCarriers();
     }
     if (data.Carriers.Carrier == null)
     {
         data.Carriers.Carrier = new TextMessagingHostingDataCarriersCarrier[0];
     }
     if (data.Services == null)
     {
         data.Services = new TextMessagingHostingDataServices();
     }
     if (data.Services.Service == null)
     {
         data.Services.Service = new TextMessagingHostingDataServicesService[0];
     }
 }
 private void AssignHostingData(Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData data)
 {
     if (data == null)
     {
         data = new Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData();
     }
     TextMessagingHostingDataCache.SetNullFieldsEmpty(data);
     try
     {
         this.rwLock.EnterWriteLock();
         this.data = data;
     }
     finally
     {
         try
         {
             this.rwLock.ExitWriteLock();
         }
         catch (SynchronizationLockException)
         {
         }
     }
 }
        private static Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData Convert(Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.HostingData.System.TextMessagingHostingData dataSet)
        {
            if (dataSet == null)
            {
                throw new ArgumentNullException("dataSet");
            }
            Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData result = null;
            XmlSerializer xmlSerializer = new TextMessagingHostingDataSerializer();

            using (MemoryStream memoryStream = new MemoryStream())
            {
                dataSet.WriteXml(memoryStream);
                memoryStream.Seek(0L, SeekOrigin.Begin);
                result = (Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData)xmlSerializer.Deserialize(memoryStream);
            }
            return(result);
        }
        public TextMessagingHostingDataServicesService GetService(string regionIso2, string carrierId, TextMessagingHostingDataServicesServiceType type)
        {
            Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData hostingData = this.GetHostingData();
            if (hostingData == null || hostingData.Services == null || hostingData.Services.Service == null || hostingData.Services.Service.Length == 0)
            {
                return(null);
            }
            int num = -1;

            if (!int.TryParse(carrierId, out num))
            {
                return(null);
            }
            foreach (TextMessagingHostingDataServicesService textMessagingHostingDataServicesService in hostingData.Services.Service)
            {
                if (string.Equals(textMessagingHostingDataServicesService.RegionIso2, regionIso2, StringComparison.OrdinalIgnoreCase) && textMessagingHostingDataServicesService.CarrierIdentity == num && textMessagingHostingDataServicesService.Type == type)
                {
                    switch (textMessagingHostingDataServicesService.Type)
                    {
                    case TextMessagingHostingDataServicesServiceType.SmtpToSmsGateway:
                        if (textMessagingHostingDataServicesService.SmtpToSmsGateway != null && textMessagingHostingDataServicesService.SmtpToSmsGateway.MessageRendering != null && textMessagingHostingDataServicesService.SmtpToSmsGateway.MessageRendering.Capacity != null && 0 < textMessagingHostingDataServicesService.SmtpToSmsGateway.MessageRendering.Capacity.Length && textMessagingHostingDataServicesService.SmtpToSmsGateway.RecipientAddressing != null && !string.IsNullOrEmpty(textMessagingHostingDataServicesService.SmtpToSmsGateway.RecipientAddressing.SmtpAddress))
                        {
                            return(textMessagingHostingDataServicesService);
                        }
                        goto IL_104;
                    }
                    return(textMessagingHostingDataServicesService);
                }
                IL_104 :;
            }
            return(null);
        }
        public TextMessagingHostingDataCarriersCarrier GetCarrier(string id)
        {
            Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData hostingData = this.GetHostingData();
            if (hostingData == null || hostingData.Carriers == null || hostingData.Carriers.Carrier == null || hostingData.Carriers.Carrier.Length == 0)
            {
                return(null);
            }
            int num = -1;

            if (!int.TryParse(id, out num))
            {
                return(null);
            }
            foreach (TextMessagingHostingDataCarriersCarrier textMessagingHostingDataCarriersCarrier in hostingData.Carriers.Carrier)
            {
                if (textMessagingHostingDataCarriersCarrier.Identity == num)
                {
                    return(textMessagingHostingDataCarriersCarrier);
                }
            }
            return(null);
        }
 public TextMessagingHostingDataRegionsRegion GetRegion(string iso2)
 {
     Microsoft.Exchange.Data.ApplicationLogic.TextMessaging.TextMessagingHostingData hostingData = this.GetHostingData();
     if (hostingData == null || hostingData.Regions == null || hostingData.Regions.Region == null || hostingData.Regions.Region.Length == 0)
     {
         return(null);
     }
     foreach (TextMessagingHostingDataRegionsRegion textMessagingHostingDataRegionsRegion in hostingData.Regions.Region)
     {
         if (string.Equals(textMessagingHostingDataRegionsRegion.Iso2, iso2, StringComparison.OrdinalIgnoreCase))
         {
             return(textMessagingHostingDataRegionsRegion);
         }
     }
     return(null);
 }