Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/03/09 14:35:19 (15 years ago)
Author:
whackl
Message:

added recurring appoinment (#468)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Hive.Client.Console/Recurrence.cs

    r1333 r1511  
    11using System;
    22using System.Collections.Generic;
    3 using System.ComponentModel;
    4 using System.Data;
    5 using System.Drawing;
    6 using System.Linq;
    7 using System.Text;
    83using System.Windows.Forms;
    94
    10 namespace HeuristicLab.Hive.Client.Console {
    11   public partial class Recurrence : Form {
    12     public Recurrence() {
     5namespace HeuristicLab.Hive.Client.Console
     6{
     7
     8  public enum RecurrenceMode
     9  {
     10    Daily,
     11    Weekly
     12  }
     13
     14  public partial class Recurrence : Form
     15  {
     16
     17    public OnDialogClosedDelegate dialogClosedDelegate;
     18
     19    public Recurrence()
     20    {
    1321      InitializeComponent();
    1422    }
    1523
    16     private void rbtDaily_CheckedChanged(object sender, EventArgs e) {
    17       if (rbtDaily.Checked) {
    18         gbDaily.Visible = true;
    19         gbWeekly.Visible = false;
    20       } else if (rbtWeekly.Checked) {
    21         gbDaily.Visible = false;
    22         gbWeekly.Visible = true;
    23       }
    24     }
    25 
    26     private void btCancelRecurrence_Click(object sender, EventArgs e) {
     24    private void btCancelRecurrence_Click(object sender, EventArgs e)
     25    {
    2726      this.Close();
    2827    }
    2928
    30     private void gbAppointment_Enter(object sender, EventArgs e) {
     29    private void btSaveRecurrence_Click(object sender, EventArgs e)
     30    {
     31      DateTime dateFrom, dateTo;
     32      RecurrenceMode mode = RecurrenceMode.Daily;
     33      int incWeek = 0;
     34      HashSet<DayOfWeek> days = new HashSet<DayOfWeek>();
    3135
     36      days = GetDays();
     37
     38      //check if valid
     39      if (InputIsValid())
     40      {
     41        //set entity
     42
     43        dateFrom = DateTime.Parse(dtpStart.Text + " " + dtpFromTime.Text);
     44        dateTo = DateTime.Parse(dtpEnd.Text + " " + dtpToTime.Text);
     45
     46        if (int.TryParse(txtDays.Text, out incWeek))
     47          mode = RecurrenceMode.Weekly;
     48        else
     49          mode = RecurrenceMode.Daily;
     50
     51        RecurrentEvent recurrentEvent = new RecurrentEvent()
     52        {
     53          DateFrom = dateFrom,
     54          DateTo = dateTo,
     55          AllDay = chbade.Checked,
     56          WeekDays = days,
     57          IncWeeks = incWeek,
     58        };
     59
     60        //fire delegate and close the dialog
     61        dialogClosedDelegate(recurrentEvent);
     62        this.Close();
     63      }
     64      else
     65        MessageBox.Show("Incorrect date format", "Schedule Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    3266    }
    3367
    34     private void cmbEnd_Click(object sender, EventArgs e) {
     68    private HashSet<DayOfWeek> GetDays()
     69    {
     70      HashSet<DayOfWeek> days = new HashSet<DayOfWeek>();
    3571
     72      if (cbMonday.Checked)
     73        days.Add(DayOfWeek.Monday);
     74      if (cbTuesday.Checked)
     75        days.Add(DayOfWeek.Tuesday);
     76      if (cbWednesday.Checked)
     77        days.Add(DayOfWeek.Wednesday);
     78      if (cbThursday.Checked)
     79        days.Add(DayOfWeek.Thursday);
     80      if (cbFriday.Checked)
     81        days.Add(DayOfWeek.Friday);
     82      if (cbSaturday.Checked)
     83        days.Add(DayOfWeek.Saturday);
     84      if (cbSunday.Checked)
     85        days.Add(DayOfWeek.Sunday);
     86
     87      return days;
    3688    }
    3789
    38     private void dtpToTime_ValueChanged(object sender, EventArgs e) {
     90    private bool InputIsValid()
     91    {
     92      DateTime dateFrom, dateTo;
     93      int i = 0;
    3994
    40     }
     95      dateFrom = DateTime.Parse(dtpStart.Text + " " + dtpFromTime.Text);
     96      dateTo = DateTime.Parse(dtpEnd.Text + " " + dtpToTime.Text);
    4197
    42     private void chbade_CheckedChanged(object sender, EventArgs e) {
    43         dtpFromTime.Visible = !chbade.Checked;
    44         dtpToTime.Visible = !chbade.Checked;
     98      if (dateFrom < dateTo && dateFrom.TimeOfDay < dateTo.TimeOfDay && int.TryParse(txtDays.Text, out i))
     99        return true;
     100      else
     101        return false;
    45102    }
    46103  }
Note: See TracChangeset for help on using the changeset viewer.