Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.IO
- Imports System.Text.RegularExpressions
- Public Class SMS
- Private _numberLength As Integer
- Private _ListOfNumbers As New Dictionary(Of String, String)
- Private _ListOfProviders As New Dictionary(Of String, String)
- Private _phonenumber As String
- Private _FilePath As String
- Private __defaultprovider As String
- #Region "Properties"
- Private Property PhoneNumber() As String
- Get
- Return _phonenumber
- End Get
- Set(ByVal value As String)
- _phonenumber = value
- End Set
- End Property
- Private Property Length() As Integer
- Get
- Return _numberLength
- End Get
- Set(ByVal value As Integer)
- _numberLength = value
- End Set
- End Property
- Private Property ListOfProviders() As Dictionary(Of String, String)
- Get
- Return _ListOfProviders
- End Get
- Set(ByVal value As Dictionary(Of String, String))
- _ListOfProviders = value
- End Set
- End Property
- Private Property ListOfNumbers() As Dictionary(Of String, String)
- Get
- Return _ListOfNumbers
- End Get
- Set(ByVal value As Dictionary(Of String, String))
- _ListOfNumbers = value
- End Set
- End Property
- Private Property DefaultProvidor() As String
- Get
- Return __defaultprovider
- End Get
- Set(ByVal value As String)
- __defaultprovider = value
- End Set
- End Property
- Public Property FilePath() As String
- Get
- Return _FilePath
- End Get
- Set(ByVal value As String)
- _FilePath = value
- End Set
- End Property
- #End Region
- #Region "Constructors"
- Public Sub New(ByVal df As String)
- Try
- If Not String.IsNullOrEmpty(df) Then
- DefaultProvidor = df
- Length = 10
- LoadProviders()
- Else
- Throw New Exception
- End If
- Catch ex As Exception
- 'log your error
- Console.WriteLine(ex.Message)
- End Try
- End Sub
- Public Sub New(ByVal df As String, ByVal l As Integer)
- Try
- If Not String.IsNullOrEmpty(df) Or Integer.Parse(l) Then
- DefaultProvidor = df
- Length = l
- LoadProviders()
- Else
- Throw New Exception("Default Provider must be a string")
- End If
- Catch ex As Exception
- 'handle your exception here.
- Console.WriteLine(ex.Message)
- End Try
- End Sub
- Public Sub New(ByVal df As String, ByVal fp As String)
- If Not String.IsNullOrEmpty(fp) Or Not String.IsNullOrEmpty(fp) Then
- DefaultProvidor = df
- Length = 10
- FilePath = fp
- Else
- Throw New Exception("Your filepath/Defaultprovider is invalid")
- End If
- End Sub
- #End Region
- #Region "Public Functions"
- 'public functions.
- Public Sub AddSingle(ByVal number As String, ByVal provider As String)
- PhoneNumber = number
- If CheckNumber() Then
- If DoesProviderExist(provider) Then
- ListOfNumbers.Add(PhoneNumber, provider)
- End If
- End If
- End Sub
- Public Sub AddSingle(ByVal number As String) 'uses the default provider
- PhoneNumber = number
- If CheckNumber() Then
- ListOfNumbers.Add(PhoneNumber, DefaultProvidor)
- End If
- End Sub
- Public Sub Delete(ByVal number As String)
- ListOfNumbers.Remove(number)
- End Sub
- Public Sub SendAll()
- Dim fullEmail As String = String.Empty
- For Each num In ListOfNumbers
- Dim pro As String = String.Empty
- If ListOfProviders.TryGetValue(num.Value, pro) Then
- Dim temp As String = pro.Replace("number", num.Key)
- SendEmail(temp)
- Else
- Console.WriteLine("Sendall failed")
- End If
- Next
- End Sub
- #End Region
- #Region "Private functions"
- Private Sub SendEmail(ByVal email As String)
- 'send your email here.
- Console.WriteLine(email)
- End Sub
- Private Sub LoadProviders()
- Dim reader As New IO.StreamReader(FilePath) ' create new streamreader
- Do Until reader.EndOfStream
- Dim line As String = reader.ReadLine 'read single line
- Dim proArray() As String = line.Split(",") 'split the line
- ListOfProviders.Add(proArray(0).Trim, proArray(1).Trim) 'store both parts into dictionary
- Loop
- reader.Close()
- End Sub
- 'this method parses the number, and removes any dashses.
- Private Function CheckNumber() As Boolean
- Dim ph As String = PhoneNumber
- 'remove one or zero.
- If ph.StartsWith(0) Or ph.StartsWith(1) Then
- ph = ph.Remove(0, 1)
- End If
- 'remove all dashes and check for length
- ph = ph.Replace("-", String.Empty)
- If ph.Length <> Length Or ph.Length + 1 <> Length + 1 Then
- Console.WriteLine("Length didnt match")
- Return False
- End If
- ' Check a (USA style) telephone number
- '1-800-201-1929 (true)
- '800-201-1929 (true)
- '201-1929 (false)
- Dim myRegex As New Regex( _
- "^1?\s*-?\s*(\d{3}|\(\s*\d{3}\s*\))\s*-?\s*\d{3}\s*-?\s*\d{4}$")
- If Not myRegex.IsMatch(ph) Then
- Console.WriteLine("not in right format")
- Return False
- End If
- PhoneNumber = ph
- Console.WriteLine(PhoneNumber)
- Return True
- End Function
- Private Function DoesProviderExist(ByVal name As String) As Boolean
- If ListOfProviders.ContainsKey(name.Trim) Then
- Console.WriteLine("provider exists: " & name)
- Return True
- Else
- Console.WriteLine("provider don't exist")
- Return False
- End If
- End Function
- #End Region
- End Class
- 'Provider info:
- 7-11 Speakout (USA GSM), number@cingularme.com
- Alaska Communications Systems, number@msg.acsalaska.com
- Alltel Wireless, number@message.alltel.com
- AT&T Mobility, number@mms.att.net
- Bell Mobility & Solo Mobile (Canada), number@txt.bell.ca
- Cellular One (Dobson), number@mobile.celloneusa.com
- Cingular (Postpaid), number@cingularme.com
- Centennial Wireless, number@cwemail.com
- Cingular (GoPhone prepaid), number@cingularme.com
- Claro (Nicaragua), number@ideasclaro-ca.com
- Cricket, number@mms.mycricket.com
- CTI, number@sms.ctimovil.com.ar
- Emtel(Mauritius), number@emtelworld.net
- Fido (Canada), number@fido.ca
- Globalstar, number@msg.globalstarusa.com
- Helio, number@messaging.sprintpcs.com
- Illinois Valley Cellular, number@ivctext.com
- IT Company Australia, number@itcompany.com.au
- Iridium (satellite), number@msg.iridium.com
- Meteor (Ireland), number@sms.mymeteor.ie
- MetroPCS, number@mymetropcs.com
- Movicom, number@movimensaje.com.ar
- Movistar (Colombia), number@movistar.com.co
- MTN (South Africa), number@sms.co.za
- MTS (Canada), number@text.mtsmobility.com
- President's Choice (Canada), number@txt.bell.ca
- Rogers (Canada), number@pcs.rogers.com
- Sasktel (Canada), number@sms.sasktel.com
- Setar Mobile email (Aruba), 297number@mas.aw
- SMSGlobal, number@sms.smsglobal.com.au
- Sprint (PCS), number@messaging.sprintpcs.com
- Sprint (Nextel), number@page.nextel.com
- Suncom, number@tms.suncom.com
- T-Mobile, number@tmomail.net
- T-Mobile (Austria), number@sms.t-mobile.at
- Telus Mobility (Canada), number@msg.telus.com
- Verizon, number@vtext.com
- Virgin Mobile (Canada), number@vmobile.ca
- Virgin Mobile (USA), number@vmobl.com
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement