Advertisement
Guest User

Untitled

a guest
May 7th, 2017
1,095
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 7.80 KB | None | 0 0
  1. Imports System.IO
  2. Imports System.Text.RegularExpressions
  3.  
  4. Public Class SMS
  5.     Private _numberLength As Integer
  6.     Private _ListOfNumbers As New Dictionary(Of String, String)
  7.     Private _ListOfProviders As New Dictionary(Of String, String)
  8.     Private _phonenumber As String
  9.     Private _FilePath As String
  10.     Private __defaultprovider As String
  11.  
  12. #Region "Properties"
  13.  
  14.     Private Property PhoneNumber() As String
  15.         Get
  16.             Return _phonenumber
  17.         End Get
  18.         Set(ByVal value As String)
  19.             _phonenumber = value
  20.         End Set
  21.     End Property
  22.  
  23.  
  24.     Private Property Length() As Integer
  25.         Get
  26.             Return _numberLength
  27.         End Get
  28.         Set(ByVal value As Integer)
  29.             _numberLength = value
  30.         End Set
  31.     End Property
  32.    
  33.     Private Property ListOfProviders() As Dictionary(Of String, String)
  34.         Get
  35.             Return _ListOfProviders
  36.         End Get
  37.         Set(ByVal value As Dictionary(Of String, String))
  38.             _ListOfProviders = value
  39.         End Set
  40.     End Property
  41.  
  42.  
  43.     Private Property ListOfNumbers() As Dictionary(Of String, String)
  44.         Get
  45.             Return _ListOfNumbers
  46.         End Get
  47.         Set(ByVal value As Dictionary(Of String, String))
  48.             _ListOfNumbers = value
  49.         End Set
  50.     End Property
  51.  
  52.  
  53.     Private Property DefaultProvidor() As String
  54.         Get
  55.             Return __defaultprovider
  56.         End Get
  57.         Set(ByVal value As String)
  58.             __defaultprovider = value
  59.         End Set
  60.     End Property
  61.  
  62.     Public Property FilePath() As String
  63.         Get
  64.             Return _FilePath
  65.         End Get
  66.         Set(ByVal value As String)
  67.             _FilePath = value
  68.         End Set
  69.     End Property
  70. #End Region
  71. #Region "Constructors"
  72.  
  73.     Public Sub New(ByVal df As String)
  74.         Try
  75.             If Not String.IsNullOrEmpty(df) Then
  76.                 DefaultProvidor = df
  77.                 Length = 10
  78.                 LoadProviders()
  79.             Else
  80.                 Throw New Exception
  81.             End If
  82.         Catch ex As Exception
  83.             'log your error
  84.             Console.WriteLine(ex.Message)
  85.         End Try
  86.  
  87.     End Sub
  88.     Public Sub New(ByVal df As String, ByVal l As Integer)
  89.         Try
  90.             If Not String.IsNullOrEmpty(df) Or Integer.Parse(l) Then
  91.                 DefaultProvidor = df
  92.                 Length = l
  93.                 LoadProviders()
  94.             Else
  95.                 Throw New Exception("Default Provider must be a string")
  96.             End If
  97.         Catch ex As Exception
  98.             'handle your exception here.
  99.             Console.WriteLine(ex.Message)
  100.         End Try
  101.        
  102.     End Sub
  103.  
  104.     Public Sub New(ByVal df As String, ByVal fp As String)
  105.         If Not String.IsNullOrEmpty(fp) Or Not String.IsNullOrEmpty(fp) Then
  106.             DefaultProvidor = df
  107.             Length = 10
  108.             FilePath = fp
  109.         Else
  110.             Throw New Exception("Your filepath/Defaultprovider is invalid")
  111.         End If
  112.     End Sub
  113. #End Region
  114. #Region "Public Functions"
  115.  
  116.  
  117.     'public functions.
  118.     Public Sub AddSingle(ByVal number As String, ByVal provider As String)
  119.         PhoneNumber = number
  120.         If CheckNumber() Then
  121.             If DoesProviderExist(provider) Then
  122.                 ListOfNumbers.Add(PhoneNumber, provider)
  123.             End If
  124.         End If
  125.     End Sub
  126.  
  127.     Public Sub AddSingle(ByVal number As String) 'uses the default provider
  128.         PhoneNumber = number
  129.         If CheckNumber() Then
  130.             ListOfNumbers.Add(PhoneNumber, DefaultProvidor)
  131.         End If
  132.     End Sub
  133.  
  134.     Public Sub Delete(ByVal number As String)
  135.         ListOfNumbers.Remove(number)
  136.     End Sub
  137.  
  138.     Public Sub SendAll()
  139.  
  140.         Dim fullEmail As String = String.Empty
  141.  
  142.         For Each num In ListOfNumbers
  143.             Dim pro As String = String.Empty
  144.             If ListOfProviders.TryGetValue(num.Value, pro) Then
  145.                 Dim temp As String = pro.Replace("number", num.Key)
  146.                 SendEmail(temp)
  147.             Else
  148.                 Console.WriteLine("Sendall failed")
  149.             End If
  150.         Next
  151.     End Sub
  152. #End Region
  153. #Region "Private functions"
  154.  
  155.  
  156.     Private Sub SendEmail(ByVal email As String)
  157.         'send your email here.
  158.         Console.WriteLine(email)
  159.     End Sub
  160.  
  161.     Private Sub LoadProviders()
  162.         Dim reader As New IO.StreamReader(FilePath) ' create new streamreader
  163.         Do Until reader.EndOfStream
  164.             Dim line As String = reader.ReadLine 'read single line
  165.             Dim proArray() As String = line.Split(",") 'split the line
  166.             ListOfProviders.Add(proArray(0).Trim, proArray(1).Trim) 'store both parts into dictionary
  167.         Loop
  168.         reader.Close()
  169.     End Sub
  170.     'this method parses the number, and removes any dashses.
  171.     Private Function CheckNumber() As Boolean
  172.         Dim ph As String = PhoneNumber
  173.         'remove one or zero.
  174.         If ph.StartsWith(0) Or ph.StartsWith(1) Then
  175.             ph = ph.Remove(0, 1)
  176.         End If
  177.  
  178.  
  179.         'remove all dashes and check for length
  180.         ph = ph.Replace("-", String.Empty)
  181.         If ph.Length <> Length Or ph.Length + 1 <> Length + 1 Then
  182.             Console.WriteLine("Length didnt match")
  183.             Return False
  184.         End If
  185.  
  186.         ' Check a (USA style) telephone number
  187.         '1-800-201-1929 (true)
  188.         '800-201-1929 (true)
  189.         '201-1929 (false)
  190.         Dim myRegex As New Regex( _
  191.            "^1?\s*-?\s*(\d{3}|\(\s*\d{3}\s*\))\s*-?\s*\d{3}\s*-?\s*\d{4}$")
  192.  
  193.         If Not myRegex.IsMatch(ph) Then
  194.             Console.WriteLine("not in right format")
  195.             Return False
  196.         End If
  197.  
  198.         PhoneNumber = ph
  199.         Console.WriteLine(PhoneNumber)
  200.         Return True
  201.     End Function
  202.  
  203.  
  204.     Private Function DoesProviderExist(ByVal name As String) As Boolean
  205.         If ListOfProviders.ContainsKey(name.Trim) Then
  206.             Console.WriteLine("provider exists: " & name)
  207.  
  208.             Return True
  209.         Else
  210.             Console.WriteLine("provider don't exist")
  211.             Return False
  212.         End If
  213.     End Function
  214. #End Region
  215. End Class
  216.  
  217. 'Provider info:
  218. 7-11 Speakout (USA GSM), number@cingularme.com  
  219. Alaska Communications Systems, number@msg.acsalaska.com
  220. Alltel Wireless, number@message.alltel.com  
  221. AT&T Mobility, number@mms.att.net
  222. Bell Mobility & Solo Mobile (Canada), number@txt.bell.ca
  223. Cellular One (Dobson), number@mobile.celloneusa.com  
  224. Cingular (Postpaid), number@cingularme.com
  225. Centennial Wireless, number@cwemail.com  
  226. Cingular (GoPhone prepaid), number@cingularme.com
  227. Claro (Nicaragua), number@ideasclaro-ca.com  
  228. Cricket, number@mms.mycricket.com
  229. CTI, number@sms.ctimovil.com.ar
  230. Emtel(Mauritius), number@emtelworld.net
  231. Fido (Canada), number@fido.ca
  232. Globalstar, number@msg.globalstarusa.com
  233. Helio, number@messaging.sprintpcs.com
  234. Illinois Valley Cellular, number@ivctext.com
  235. IT Company Australia, number@itcompany.com.au
  236. Iridium (satellite), number@msg.iridium.com
  237. Meteor (Ireland), number@sms.mymeteor.ie  
  238. MetroPCS, number@mymetropcs.com  
  239. Movicom, number@movimensaje.com.ar
  240. Movistar (Colombia), number@movistar.com.co
  241. MTN (South Africa), number@sms.co.za
  242. MTS (Canada), number@text.mtsmobility.com
  243. President's Choice (Canada), number@txt.bell.ca  
  244. Rogers (Canada), number@pcs.rogers.com
  245. Sasktel (Canada), number@sms.sasktel.com
  246. Setar Mobile email (Aruba), 297number@mas.aw
  247. SMSGlobal, number@sms.smsglobal.com.au
  248. Sprint (PCS), number@messaging.sprintpcs.com
  249. Sprint (Nextel), number@page.nextel.com
  250. Suncom, number@tms.suncom.com
  251. T-Mobile, number@tmomail.net
  252. T-Mobile (Austria), number@sms.t-mobile.at
  253. Telus Mobility (Canada), number@msg.telus.com
  254. Verizon, number@vtext.com
  255. Virgin Mobile (Canada), number@vmobile.ca  
  256. Virgin Mobile (USA), number@vmobl.com
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement