/// <summary> /// editor layout /// </summary> /// <param name="sender">return the object</param> /// <param name="e">Schedule Appointment Modified Event args</param> private void OnEditorLayoutAppointmentModified(object sender, ScheduleAppointmentModifiedEventArgs e) { this.editorLayout.IsVisible = false; if (e.IsModified) { (this.schedule.DataSource as ObservableCollection <Meeting>).Add(e.Appointment); } }
/// <summary> /// method for appointment modified /// </summary> /// <param name="e">Schedule Appointment Modified Event Args</param> public virtual void OnAppointmentModified(ScheduleAppointmentModifiedEventArgs e) { EventHandler <ScheduleAppointmentModifiedEventArgs> handler = this.AppointmentModified; if (handler != null) { handler(this, e); } }
/// <summary> /// Method for cancel. /// </summary> /// <param name="sender">Return the object</param> /// <param name="e">Event Args</param> private void CancelButton_Clicked(object sender, EventArgs e) { ScheduleAppointmentModifiedEventArgs args = new ScheduleAppointmentModifiedEventArgs(); args.Appointment = null; args.IsModified = false; (this.editorLayout.BindingContext as EditorLayoutViewModel).OnAppointmentModified(args); this.editorLayout.IsVisible = false; }
/// <summary> /// Method for appointment details. /// </summary> private void AppointmentDetails() { if (this.selectedAppointment == null) { this.selectedAppointment = new Meeting(); } if (this.eventNameText.Text != null) { this.selectedAppointment.EventName = this.eventNameText.Text.ToString(); if (string.IsNullOrEmpty(this.selectedAppointment.EventName)) { this.selectedAppointment.EventName = "Untitled"; } } if (this.organizerText.Text != null) { this.selectedAppointment.Organizer = this.organizerText.Text.ToString(); } this.selectedAppointment.From = this.startDatePicker.Date.Add(this.startTimePicker.Time); this.selectedAppointment.To = this.endDatePicker.Date.Add(this.endTimePicker.Time); this.selectedAppointment.IsAllDay = this.switchAllDay.IsToggled; var resources = new ObservableCollection <object>(); if (this.resourcePicker.SelectedItem != null) { var meetingRoomInfo = (MeetingRoomInfo)this.resourcePicker.SelectedItem; resources.Add(meetingRoomInfo.Id); this.selectedAppointment.Color = meetingRoomInfo.Color; } this.selectedAppointment.ResourceIdCollection = resources; var filteredEvents = AppointmentEditorHelper.Appointments.Where(x => x.From.Date == this.selectedAppointment.From.Date); //Prevent to add booking on cells which are already occupied. foreach (Meeting meeting in filteredEvents) { if (meeting.ResourceIdCollection[0] == this.selectedAppointment.ResourceIdCollection[0]) { if (meeting.From == this.selectedAppointment.From || (meeting.From >= this.selectedAppointment.From && this.selectedAppointment.To >= meeting.To)) { Application.Current.MainPage.DisplayAlert(" ", "This room is already reserved!!!", "OK"); return; } else if (selectedAppointment.IsAllDay && meeting.From.Date == this.selectedAppointment.From.Date) { Application.Current.MainPage.DisplayAlert(" ", "This room is already reserved!!!", "OK"); return; } } } //Prevent to add booking on past dates. if (this.selectedAppointment.From.Date < DateTime.Now.Date) { Application.Current.MainPage.DisplayAlert(" ", "Can't book the rooms on dates before current date!!!", "OK"); return; } //Prevent to add bookings on special time region. var lunchStartTime = new DateTime(this.selectedAppointment.From.Year, this.selectedAppointment.From.Month, this.selectedAppointment.From.Day, 13, 0, 0); var lunchEndTime = new DateTime(this.selectedAppointment.From.Year, this.selectedAppointment.From.Month, this.selectedAppointment.From.Day, 14, 0, 0); if ((this.selectedAppointment.From <= lunchStartTime && this.selectedAppointment.To > lunchStartTime) || ((this.selectedAppointment.From >= lunchStartTime && this.selectedAppointment.To <= lunchEndTime))) { Application.Current.MainPage.DisplayAlert(" ", "Can't book the rooms during non-accessible time ranges!!!", "OK"); return; } ScheduleAppointmentModifiedEventArgs args = new ScheduleAppointmentModifiedEventArgs(); args.Appointment = this.selectedAppointment; args.IsModified = true; (this.editorLayout.BindingContext as EditorLayoutViewModel).OnAppointmentModified(args); }