예제 #1
0
    public void logHoursWorked(object sender,
                               HoursWorkedEventArgs e)
    {
        string text = "Adding Hours Worked\n";

        text += "EmployeeID: " + e.ID.ToString();
        text += ", Hours Worked: " + e.Hours.ToString();
        log(text);
    }
예제 #2
0
 // Called by event whenever a new add hours worked message
 // appears in the message queue. Notice the signature matches
 // that requried by System.Event
 public void addHoursWorked(object sender, HoursWorkedEventArgs e)
 {
     Console.WriteLine("In delegate, adding employee hours\r\n");
     foreach (Employee employee in m_employees)
     {
         if (employee.ID == e.ID)
         {
             if (employee.GetType().ToString() == "HourlyEmployee")
             {
                 HourlyEmployee hourlyEmp = (HourlyEmployee)employee;
                 hourlyEmp.HoursWorked = e.Hours;
             }
         }
     }
 }
예제 #3
0
    // Drain the queue.
    public void start()
    {
        if (m_employees == null)
        {
            return;
        }

        // Process all queue messages.
        while (m_queue.moreMessages() == true)
        {
            try
            {
                EmployeeMessage msg = m_queue.getNextMessage();
                if (msg.MessageType == MsgType.Add)
                {
                    AddEmployeEventArgs args = new AddEmployeEventArgs(
                        (AddEmployeeMessage)msg);
                    OnAddEmployee(this, args);
                }
                else
                {
                    HoursWorkedEventArgs args = new HoursWorkedEventArgs(
                        (PayrollMessage)msg);
                    OnHoursWorked(this, args);
                }
            }
            catch (Exception e)
            {
                m_errLogger.logError(e);
            }
        }

        // Now read one more message to see our custom exception
        // thrown
        try
        {
            EmployeeMessage msg = m_queue.getNextMessage();
        }
        catch (Exception e)
        {
            m_errLogger.logError(e);
        }
    }