Example #1
0
 /// <summary>
 /// Runs this instance.
 /// </summary>
 public void Run()
 {
     this.ExecutingThread = Thread.CurrentThread;
     try
     {
         _proc.Execute();
         EtlProcess       p      = _proc.ToEtlProcess();
         List <Exception> errors = new List <Exception>(p.GetAllErrors());
         if (errors.Count > 0)
         {
             this.ProcessMessage(this, new MessageEventArgs(errors.Count + " errors in total were found during the ETL process."));
             //Log these errors
             LogExceptions(errors);
         }
     }
     catch (ThreadAbortException)
     {
         //FIXME: Sometimes this doesn't terminate cleanly. I'm guessing the proper
         //way would be to implement a "kill switch" in EtlProcess and
         //for this code block to flick this switch
         Thread.ResetAbort();
     }
 }