コード例 #1
0
        private void AddScheduleRenovationButton(int row, RenovationDto renovation)
        {
            Button scheduleBtn = CreateScheduleButton();

            Grid.SetRow(scheduleBtn, row);
            Grid.SetColumn(scheduleBtn, DynamicGrid.ColumnDefinitions.Count - 2);
            DynamicGrid.Children.Add(scheduleBtn);

            SchedulingDto schDto = renovation.toSchedulingDto();

            timeInterval = new TimeInterval(schDto.TimeInterval.Start, schDto.TimeInterval.End);

            scheduleBtn.Click += (s, e) =>
            {
                List <int> doctors = doctorServerController.GetDoctorsByRoomsAndShifts(schDto).ToList();
                foreach (int doctorId in doctors)
                {
                    renovationServerController.ScheduleRenovation(renovation.TimeInterval, doctorId, AllConstants.PatientIdForRenovation);
                }
                MessageBox.Show("Renovation is successfully scheduled!");
                foreach (Window window in Application.Current.Windows)
                {
                    if (window.GetType() == typeof(RoomRenovation))
                    {
                        if ((window as RoomRenovation).RenovationTypeComboBox.Text.Equals("Complex"))
                        {
                            RoomInformation roomInformation = new RoomInformation(schDto);

                            if ((window as RoomRenovation).ComplexRenovationTypeComboBox.Text.Equals("Separate room"))
                            {
                                roomInformation.MergingStackPanel.Visibility  = Visibility.Hidden;
                                roomInformation.DividingStackPanel.Visibility = Visibility.Visible;
                                roomInformation.Room1Name.Text = mapObjectController.GetMapObjectById(renovation.SourceRoomId).Name;
                                int workTime = mapObjectController.GetMapObjectById(renovation.SourceRoomId).MapObjectDescription.Information.Split("=")[1].Length;
                                roomInformation.WorkTime1.Text = mapObjectController.GetMapObjectById(renovation.SourceRoomId).MapObjectDescription.Information.Split("=")[1].Substring(0, workTime - 1);
                            }
                            else if ((window as RoomRenovation).ComplexRenovationTypeComboBox.Text.Equals("Join rooms"))
                            {
                                roomInformation.DividingStackPanel.Visibility = Visibility.Hidden;
                                roomInformation.MergingStackPanel.Visibility  = Visibility.Visible;
                                roomInformation.RoomName.Text = mapObjectController.GetMapObjectById(renovation.SourceRoomId).Name;
                                int workTime = mapObjectController.GetMapObjectById(renovation.SourceRoomId).MapObjectDescription.Information.Split("=")[1].Length;
                                roomInformation.WorkTime.Text = mapObjectController.GetMapObjectById(renovation.SourceRoomId).MapObjectDescription.Information.Split("=")[1].Substring(0, workTime - 1);
                                List <int> doctors1 = doctorServerController.GetDoctorsByRoomsAndShifts(schDto).ToList();
                                foreach (int doctorId in doctors1)
                                {
                                    startDate = schDto.TimeInterval.Start.AddDays(1);
                                    examinationServerController.ScheduleExamination(startDate, doctorId, AllConstants.PatientIdForRelocation);
                                }
                            }
                            roomInformation.ShowDialog();
                        }
                    }
                }
                this.Close();
            };
        }
コード例 #2
0
        private void ScheduleRenovation(SchedulingDto schDto)
        {
            List <int> doctors = doctorServerController.GetDoctorsByRoomsAndShifts(schDto).ToList();

            foreach (int doctorId in doctors)
            {
                renovationServerController.ScheduleRenovation(timeInterval, doctorId, AllConstants.PatientIdForRenovation);
            }
            DestinationRoomComboBox.SelectedIndex = 0;
            MessageBox.Show("Renovation is successfully scheduled!");
            if (RenovationTypeComboBox.Text.Equals("Complex"))
            {
                RoomInformation roomInformation = new RoomInformation(schDto);

                if (ComplexRenovationTypeComboBox.Text.Equals("Separate room"))
                {
                    roomInformation.MergingStackPanel.Visibility  = Visibility.Hidden;
                    roomInformation.DividingStackPanel.Visibility = Visibility.Visible;
                    roomInformation.Room1Name.Text = mapObjectController.GetMapObjectById(mapObjectId).Name;
                    int workTime = mapObjectController.GetMapObjectById(mapObjectId).MapObjectDescription.Information.Split("=")[1].Length;
                    roomInformation.WorkTime1.Text = mapObjectController.GetMapObjectById(mapObjectId).MapObjectDescription.Information.Split("=")[1].Substring(0, workTime - 1);
                }
                else if (ComplexRenovationTypeComboBox.Text.Equals("Join rooms"))
                {
                    roomInformation.DividingStackPanel.Visibility = Visibility.Hidden;
                    roomInformation.MergingStackPanel.Visibility  = Visibility.Visible;
                    roomInformation.RoomName.Text = mapObjectController.GetMapObjectById(mapObjectId).Name;
                    int workTime = mapObjectController.GetMapObjectById(mapObjectId).MapObjectDescription.Information.Split("=")[1].Length;
                    roomInformation.WorkTime.Text = mapObjectController.GetMapObjectById(mapObjectId).MapObjectDescription.Information.Split("=")[1].Substring(0, workTime - 1);
                    List <int> doctors1 = doctorServerController.GetDoctorsByRoomsAndShifts(schDto).ToList();
                    foreach (int doctorId in doctors1)
                    {
                        startDate = schDto.TimeInterval.Start.AddDays(1);
                        examinationServerController.ScheduleExamination(startDate, doctorId, AllConstants.PatientIdForRelocation);
                    }
                }

                roomInformation.ShowDialog();
            }
            this.Close();
        }