NET Email Validation
ProgressEvent Event
Example 






KellermanSoftware.NetEmailValidation Namespace > EmailValidation Class : ProgressEvent Event
Occurs when progress information is available for asynchronous email validation.
Syntax
'Declaration
 
Public Event ProgressEvent As EmailValidation.ProgressChangedEventHandler
'Usage
 
Dim instance As EmailValidation
Dim handler As EmailValidation.ProgressChangedEventHandler
 
AddHandler instance.ProgressEvent, handler
public event EmailValidation.ProgressChangedEventHandler ProgressEvent
public event ProgressEvent: EmailValidation.ProgressChangedEventHandler; 
In JScript, you can handle the events defined by another class, but you cannot define your own.
public: __event EmailValidation.ProgressChangedEventHandler* ProgressEvent
public:
event EmailValidation.ProgressChangedEventHandler^ ProgressEvent
Event Data

The event handler receives an argument of type ProgressEventArgs containing data related to this event. The following ProgressEventArgs properties provide information specific to this event.

PropertyDescription
The amount of emails processed  
The percentage validated  
The total amount of emails to process  
Example
public void Example()
{
    EmailValidation emailValidator = new EmailValidation(); //Trial Mode
    //EmailValidation emailValidator = new EmailValidation("place user name here", "place license key here"); //License Mode
     
    emailValidator.FromEmail = "someone@somewhere.com";
    emailValidator.FromMailServer = "mail.somewhere.com";
     
    //Create a list of 100 email addresses with an id
    Dictionary<string, string> emailAddresses = new Dictionary<string, string>();
     
    for (int i = 1; i <= 100; i++)
        emailAddresses.Add(i.ToString(),string.Format("johnsmith{0}@hotmail.com", i));
     
    List<ValidationOptions> options = emailValidator.BestConnectionOptions();
     
    //Attach Events                
    emailValidator.ProgressEvent += new EmailValidation.ProgressChangedEventHandler(ProgressEvent);
    emailValidator.ValidationCompleteEvent += new AsyncCompletedEventHandler(CompletionEvent);
    emailValidator.ResponseReceivedEvent += new EmailValidation.ResponseReceivedEventHandler(ResponseReceivedEvent);
     
    //Begin asynchronous validation
    emailValidator.ValidateListAsync(emailAddresses, options);
     
    while (emailValidator.IsBusy)
    {
        //Sleep 1 second
        System.Threading.Thread.Sleep(1000);
    }
     
    //Remove the event connections
    emailValidator.ProgressEvent -= new EmailValidation.ProgressChangedEventHandler(ProgressEvent);
    emailValidator.ValidationCompleteEvent -= new AsyncCompletedEventHandler(CompletionEvent);
    emailValidator.ResponseReceivedEvent -= new EmailValidation.ResponseReceivedEventHandler(ResponseReceivedEvent);
}
 
 
public void CompletionEvent(object sender, AsyncCompletedEventArgs e)
{
    Console.WriteLine("Finished. Validated emails");
}
 
public void ProgressEvent(object sender, ProgressEventArgs args)
{
    Console.WriteLine(string.Format("{0}% ({1} of {2}", args.ProgressPercentage, args.EmailsProcessed, args.TotalEmailsToProcess));
}
 
public void ResponseReceivedEvent(object sender, Result result)
{
    if (result.IsValid)
    {
        //Do something
    }
    else
    {
        //Do something else
    }
 
    Console.WriteLine(result.Log);
}
Public Sub Example()
    Dim emailValidator As EmailValidation = New EmailValidation() 'Trial Mode
    'Dim emailValidator As EmailValidation = New EmailValidation("place user name here", "place license key here") 'License Mode
 
    emailValidator.FromEmail = "someone@somewhere.com"
    emailValidator.FromMailServer = "mail.somewhere.com"
     
    'Create a list of 100 email addresses with an id
    Dim emailAddresses As Dictionary(Of String, String) = New Dictionary(Of String, String)()
     
    For i As Integer = 1 To 100
        emailAddresses.Add(i.ToString(),String.Format("johnsmith{0}@hotmail.com", i))
    Next i
     
    Dim options As List(Of ValidationOptions) = emailValidator.BestConnectionOptions()
     
    'Attach Events                
    AddHandler emailValidator.ProgressEvent, AddressOf ProgressEvent
    AddHandler emailValidator.ValidationCompleteEvent, AddressOf CompletionEvent
    AddHandler emailValidator.ResponseReceivedEvent, AddressOf ResponseReceivedEvent
     
    'Begin asynchronous validation
    emailValidator.ValidateListAsync(emailAddresses, options)
     
    Do While emailValidator.IsBusy
        'Sleep 1 second
        System.Threading.Thread.Sleep(1000)
    Loop
     
    'Remove the event connections
    RemoveHandler emailValidator.ProgressEvent, AddressOf ProgressEvent
    RemoveHandler emailValidator.ValidationCompleteEvent, AddressOf CompletionEvent
    RemoveHandler emailValidator.ResponseReceivedEvent, AddressOf ResponseReceivedEvent
End Sub
    
 
Public Sub CompletionEvent(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs)
    Console.WriteLine("Finished. Validated emails")
End Sub
 
Public Sub ProgressEvent(ByVal sender As Object, ByVal args As ProgressEventArgs)
    Console.WriteLine(String.Format("{0}% ({1} of {2}", args.ProgressPercentage, args.EmailsProcessed, args.TotalEmailsToProcess))
End Sub
 
Public Sub ResponseReceivedEvent(ByVal sender As Object, ByVal result As Result)
    If result.IsValid Then
        'Do something
    Else
        'Do something else
    End If
 
    Console.WriteLine(result.Log)
End Sub
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also