private void btnADD_Click(object sender, EventArgs e) { try { if (double.Parse(txtHoursInput.Text) < 0 || txtHoursInput.Text.GetType() is String) { throw new ArgumentException("Illegal value. Hours must be a positive number."); } if (txtCurrentWage.Text == String.Empty) { MessageBox.Show(@"Enter your wage via the setting window."); return; } var workday = new WorkDay { DateAndTime = dtpWork.Value, Hours = double.Parse(txtHoursInput.Text) }; foreach (var day in workDays) { if (day.DateAndTime.Date == workday.DateAndTime.Date) { MessageBox.Show(@"Error: Cannot add the same day twice."); return; } } lsbData.Items.Add(workday); workDays.Add(workday); } catch (Exception exception) { MessageBox.Show(exception.Message); } }
public static double LocalCalculate(WorkDay workday, RadioButton part) { double sum = 0; try { if (workday.DateAndTime.DayOfWeek == DayOfWeek.Friday || workday.DateAndTime.DayOfWeek == DayOfWeek.Saturday) { var weekendBasicWage = Wage.BasicWage * 1.5; var weekendOvertimeWage = Wage.Overtime * 1.5; if (PartOrFull(part)) { if (workday.Hours > 9) { sum += (workday.Hours - 9) * weekendOvertimeWage + 9 * weekendBasicWage; } else { sum += workday.Hours * weekendBasicWage; } } else { if (workday.Hours > 8) { sum += (workday.Hours - 8) * weekendOvertimeWage + 8 * weekendBasicWage; } else { sum += workday.Hours * weekendBasicWage; } } } else { if (PartOrFull(part)) { if (workday.Hours > 9) { sum += (workday.Hours - 9) * Wage.Overtime + 9 * Wage.BasicWage; } else { sum += workday.Hours * Wage.BasicWage; } } else { if (workday.Hours > 8) { sum += (workday.Hours - 8) * Wage.Overtime + 8 * Wage.BasicWage; } else { sum += workday.Hours * Wage.BasicWage; } } } return(sum); } catch (Exception) { return(0); } }