/// <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);
     }
 }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
        /// <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;
        }
コード例 #4
0
        /// <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);
        }