Changeset 8953 for branches/SlaveShutdown/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.cs
- Timestamp:
- 11/27/12 19:57:06 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SlaveShutdown/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ScheduleView.cs
r8075 r8953 91 91 } 92 92 93 private bool CreateAppointment( ) {93 private bool CreateAppointment(DowntimeType dtType) { 94 94 DateTime from, to; 95 95 … … 98 98 //whole day appointment, only dates are visible 99 99 if (DateTime.TryParse(dtpFrom.Text, out from) && DateTime.TryParse(dtpTo.Text, out to) && from <= to) 100 offlineTimes.Add(CreateAppointment(from, to.AddDays(1), true ));100 offlineTimes.Add(CreateAppointment(from, to.AddDays(1), true, dtType)); 101 101 else 102 102 MessageBox.Show("Incorrect date format", "Schedule Error", MessageBoxButtons.OK, MessageBoxIcon.Error); … … 105 105 if (DateTime.TryParse(dtpFrom.Text + " " + txttimeFrom.Text, out from) && DateTime.TryParse(dtpTo.Text + " " + txttimeTo.Text, out to) && from < to) { 106 106 if (from.Date == to.Date) 107 offlineTimes.Add(CreateAppointment(from, to, false ));107 offlineTimes.Add(CreateAppointment(from, to, false, dtType)); 108 108 else { 109 109 //more than 1 day selected 110 110 while (from.Date != to.Date) { 111 offlineTimes.Add(CreateAppointment(from, new DateTime(from.Year, from.Month, from.Day, to.Hour, to.Minute, 0, 0), false ));111 offlineTimes.Add(CreateAppointment(from, new DateTime(from.Year, from.Month, from.Day, to.Hour, to.Minute, 0, 0), false, dtType)); 112 112 from = from.AddDays(1); 113 113 } 114 offlineTimes.Add(CreateAppointment(from, new DateTime(from.Year, from.Month, from.Day, to.Hour, to.Minute, 0, 0), false ));114 offlineTimes.Add(CreateAppointment(from, new DateTime(from.Year, from.Month, from.Day, to.Hour, to.Minute, 0, 0), false, dtType)); 115 115 } 116 116 } else … … 125 125 } 126 126 127 private HiveAppointment CreateAppointment(DateTime startDate, DateTime endDate, bool allDay ) {127 private HiveAppointment CreateAppointment(DateTime startDate, DateTime endDate, bool allDay, DowntimeType downtimeType) { 128 128 HiveAppointment app = new HiveAppointment(); 129 129 app.StartDate = startDate; … … 132 132 app.BorderColor = Color.Red; 133 133 app.Locked = true; 134 app.Subject = "Offline";134 app.Subject = downtimeType.ToString(); 135 135 app.Recurring = false; 136 136 return app; 137 137 } 138 138 139 private HiveAppointment CreateAppointment(DateTime startDate, DateTime endDate, bool allDay, bool recurring, Guid recurringId ) {139 private HiveAppointment CreateAppointment(DateTime startDate, DateTime endDate, bool allDay, bool recurring, Guid recurringId, DowntimeType downtimeType) { 140 140 HiveAppointment app = new HiveAppointment(); 141 141 app.StartDate = startDate; … … 144 144 app.BorderColor = Color.Red; 145 145 app.Locked = true; 146 app.Subject = "Offline";146 app.Subject = downtimeType.ToString(); 147 147 app.Recurring = recurring; 148 148 app.RecurringId = recurringId; … … 164 164 recurringAppointments.ForEach(appointment => appointment.StartDate = new DateTime(appointment.StartDate.Year, appointment.StartDate.Month, appointment.StartDate.Day, hourfrom, 0, 0)); 165 165 recurringAppointments.ForEach(appointment => appointment.EndDate = new DateTime(appointment.EndDate.Year, appointment.EndDate.Month, appointment.EndDate.Day, hourTo, 0, 0)); 166 167 DeleteRecurringAppointment(recurringId);168 offlineTimes.AddRange(recurringAppointments);169 166 } 170 167 171 168 public void DialogClosed(RecurrentEvent e) { 172 CreateDailyRecurrenceAppointments(e.DateFrom, e.DateTo, e.AllDay, e.WeekDays );173 } 174 175 private void CreateDailyRecurrenceAppointments(DateTime dateFrom, DateTime dateTo, bool allDay, HashSet<DayOfWeek> daysOfWeek ) {169 CreateDailyRecurrenceAppointments(e.DateFrom, e.DateTo, e.AllDay, e.WeekDays, e.AppointmentType); 170 } 171 172 private void CreateDailyRecurrenceAppointments(DateTime dateFrom, DateTime dateTo, bool allDay, HashSet<DayOfWeek> daysOfWeek, DowntimeType appointmentType) { 176 173 DateTime incDate = dateFrom; 177 174 Guid guid = Guid.NewGuid(); … … 179 176 while (incDate.Date <= dateTo.Date) { 180 177 if (daysOfWeek.Contains(incDate.Date.DayOfWeek)) 181 offlineTimes.Add(CreateAppointment(incDate, new DateTime(incDate.Year, incDate.Month, incDate.Day, dateTo.Hour, dateTo.Minute, 0), allDay, true, guid ));178 offlineTimes.Add(CreateAppointment(incDate, new DateTime(incDate.Year, incDate.Month, incDate.Day, dateTo.Hour, dateTo.Minute, 0), allDay, true, guid, appointmentType)); 182 179 incDate = incDate.AddDays(1); 183 180 } … … 284 281 private void btCreate_Click(object sender, EventArgs e) { 285 282 if (dvOnline.Selection != SelectionType.Appointment) { 286 CreateAppointment(); 283 DowntimeType dtType; 284 DialogResult result; 285 AppointmentTypeDialog dialog = new AppointmentTypeDialog(); 286 result = dialog.ShowDialog(this); 287 dtType = dialog.AppointmentType; 288 dialog.Dispose(); 289 if (result == DialogResult.Cancel) return; 290 CreateAppointment(dtType); 287 291 } else { 288 292 //now we want to change an existing appointment 289 293 if (!dvOnline.SelectedAppointment.Recurring) { 290 if (CreateAppointment( ))294 if (CreateAppointment(GetDowntimeTypeOfSelectedAppointment())) 291 295 DeleteAppointment(); 292 296 } else { … … 295 299 DialogResult res = MessageBox.Show("Change all events in this series?", "Change recurrences", MessageBoxButtons.YesNo, MessageBoxIcon.Question); 296 300 if (res != DialogResult.Yes) { 297 if (CreateAppointment( ))301 if (CreateAppointment(GetDowntimeTypeOfSelectedAppointment())) 298 302 DeleteAppointment(); 299 303 } else … … 339 343 BorderColor = Color.Red, 340 344 Locked = true, 341 Subject = "Offline",345 Subject = downtime.DowntimeType.ToString(), 342 346 Changed = downtime.Modified, 343 347 Id = downtime.Id … … 354 358 RecurringId = app.RecurringId, 355 359 ResourceId = HiveAdminClient.Instance.DowntimeForResourceId, 356 Id = app.Id 360 Id = app.Id, 361 DowntimeType = (DowntimeType)Enum.Parse(typeof(DowntimeType), app.Subject) 357 362 }; 358 363 return downtime; 359 364 } 365 366 private DowntimeType GetDowntimeTypeOfSelectedAppointment() { 367 return (DowntimeType)Enum.Parse(typeof(DowntimeType), ((HiveAppointment)dvOnline.SelectedAppointment).Subject); 368 } 360 369 } 361 370 }
Note: See TracChangeset
for help on using the changeset viewer.