public UserSettingControlVM(Model.IDutyOfficerRepository _dutyOfficerRepository)
 {
     dutyOfficerRepository = _dutyOfficerRepository;
     Messenger.Default.Register <Model.DutyOfficer>(this, HandleDutyOfficer);
     SaveCommand = new RelayCommand(() =>
     {
         dutyOfficerRepository.SaveDutyOfficerSettings(DutyOfficer);
         DialogWindowVM.CloseWindow();
     });
     CancelCommand = new RelayCommand(() =>
     {
         DialogWindowVM.CloseWindow();
     });
     UnLoadedCommand = new RelayCommand(() =>
     {
         ViewModelLocator.Cleanup();
     });
 }
        public EditEmergencySituationControlVM(Model.IEmergencySituationRepositiry _emergencySituationRepositiry,
                                               Model.IDutyOfficerRepository _dutyOfficerRepository, Model.IVechicleRepository _vechicleRepository)
        {
            vechicleRepository           = _vechicleRepository;
            emergencySituationRepositiry = _emergencySituationRepositiry;
            dutyOfficerRepository        = _dutyOfficerRepository;
            Messenger.Default.Register <Model.DutyOfficer>(this, HandleDutyOfficer);
            Messenger.Default.Register <int>(this, HandleEmergencyID);
            Vechicle2Emergency = new ObservableCollection <Model.Vechicle2Emergency>();
            SuperiorOfficers   = new ObservableCollection <Model.SuperiorOfficer>();

            NeighborhoodList = new ObservableCollection <string>();
            FillOutNeighborhoodList();

            CurrentVechicle2Emergency = new Model.Vechicle2Emergency();
            RegionList = new List <string> {
                "Брестская область", "Витебская область", "Гомельская область", "Гродненская область", "Минская область", "Могилевская область", "г.Минск"
            };
            KindEmergencyList = new List <string> {
                "Загорание частного жилого дома",
                "Загорание частного нежилого дома",
                "Загорание дачного дома",
                "Загорание бытовок,вагончиков",
                "Загорание в гараже",
                "Загорание в квартире",
                "Загорание в административном здании",
                "Загорание на промышленном предприятии",
                "Загорание частного жилого дома",
                "Загорание на железнодорожном транспорте",
                "Загорание в сельскохозяйственной отрасли", "Загорание в учреждении образования",
                "Загорание в гостиницах, общежитиях",
                "Загорание автомобиля",
                "Загорание леса, травы и кустарников",
                "Загорание торфяника",
                "Загорание полигона ТБО",
                "Взрыв", "Обрушение",
                "ДТП",
                "Авария ЖКХ",
                "Происшествие по ЛС",
                "Прочее"
            };



            SelectionRegionCommand = new RelayCommand(() =>
            {
                switch (EmergencySituation.Region)
                {
                case "Брестская область":
                    {
                        NeighborhoodList.Clear();
                        NeighborhoodList.Add("Барановичский район");
                        NeighborhoodList.Add("Берёзовский район");
                        NeighborhoodList.Add("Брестский район");
                        NeighborhoodList.Add("Ганцевичский район");
                        NeighborhoodList.Add("Дрогичинский район");
                        NeighborhoodList.Add("Жабинковский район");
                        NeighborhoodList.Add("Ивановский район");
                        NeighborhoodList.Add("Ивацевичский район");
                        NeighborhoodList.Add("Каменецкий район");
                        NeighborhoodList.Add("Кобринский район");
                        NeighborhoodList.Add("Лунинецкий район");
                        NeighborhoodList.Add("Ляховичский район");
                        NeighborhoodList.Add("Малоритский район");
                        NeighborhoodList.Add("Пинский район");
                        NeighborhoodList.Add("Пружанский район");
                        NeighborhoodList.Add("Столинский район");
                        NeighborhoodList.Add("г.Брест");
                    }
                    break;

                case "Витебская область":
                    {
                        NeighborhoodList.Clear();
                        NeighborhoodList.Add("Бешенковичский район");
                        NeighborhoodList.Add("Браславский район");
                        NeighborhoodList.Add("Верхнедвинский район");
                        NeighborhoodList.Add("Витебский район");
                        NeighborhoodList.Add("Глубокский район");
                        NeighborhoodList.Add("Городокский район");
                        NeighborhoodList.Add("Докшицкий район");
                        NeighborhoodList.Add("Дубровенский район");
                        NeighborhoodList.Add("Лепельский район");
                        NeighborhoodList.Add("Лиозненский район");
                        NeighborhoodList.Add("Миорский район");
                        NeighborhoodList.Add("Оршанский район");
                        NeighborhoodList.Add("Полоцкий район");
                        NeighborhoodList.Add("Поставский район");
                        NeighborhoodList.Add("Россонский район");
                        NeighborhoodList.Add("Сенненский район");
                        NeighborhoodList.Add("Толочинский район");
                        NeighborhoodList.Add("Ушачский район");
                        NeighborhoodList.Add("Чашникский район");
                        NeighborhoodList.Add("Шарковщинский район");
                        NeighborhoodList.Add("Шумилинский район");
                        NeighborhoodList.Add("г.Витебск");
                    }
                    break;

                case "Гомельская область":
                    {
                        NeighborhoodList.Clear();
                        NeighborhoodList.Add("Брагинский район");
                        NeighborhoodList.Add("Буда-Кошелевский район");
                        NeighborhoodList.Add("Ветковский район");
                        NeighborhoodList.Add("Гомельский район");
                        NeighborhoodList.Add("Добрушский район");
                        NeighborhoodList.Add("Ельский район");
                        NeighborhoodList.Add("Житковичский район");
                        NeighborhoodList.Add("Жлобинский район");
                        NeighborhoodList.Add("Калинковичский район");
                        NeighborhoodList.Add("Кормянский район");
                        NeighborhoodList.Add("Лельчицкий район");
                        NeighborhoodList.Add("Лоевский район");
                        NeighborhoodList.Add("Мозырский район");
                        NeighborhoodList.Add("Наровлянский район");
                        NeighborhoodList.Add("Октябрьский район");
                        NeighborhoodList.Add("Петриковский район");
                        NeighborhoodList.Add("Речицкий район");
                        NeighborhoodList.Add("Рогачевский район");
                        NeighborhoodList.Add("Светлогорский район");
                        NeighborhoodList.Add("Хойникский район");
                        NeighborhoodList.Add("Чечерский район");
                        NeighborhoodList.Add("г.Гомель");
                    }
                    break;

                case "Гродненская область":
                    {
                        NeighborhoodList.Clear();
                        NeighborhoodList.Add("Берестовицкий район");
                        NeighborhoodList.Add("Волковысский район");
                        NeighborhoodList.Add("Вороновский район");
                        NeighborhoodList.Add("Гродненский район");
                        NeighborhoodList.Add("Дятловский район");
                        NeighborhoodList.Add("Зельвенский район");
                        NeighborhoodList.Add("Ивьевский район");
                        NeighborhoodList.Add("Кореличский район");
                        NeighborhoodList.Add("Лидский район");
                        NeighborhoodList.Add("Мостовский район");
                        NeighborhoodList.Add("Новогрудский район");
                        NeighborhoodList.Add("Островецкий район");
                        NeighborhoodList.Add("Ошмянский район");
                        NeighborhoodList.Add("Свислочский район");
                        NeighborhoodList.Add("Слонимский район");
                        NeighborhoodList.Add("Сморгонский район");
                        NeighborhoodList.Add("Щучинский район");
                        NeighborhoodList.Add("г.Гродно");
                    }
                    break;

                case "Минская область":
                    {
                        NeighborhoodList.Clear();
                        NeighborhoodList.Add("Березинский район");
                        NeighborhoodList.Add("Борисовский район");
                        NeighborhoodList.Add("Вилейский район");
                        NeighborhoodList.Add("Воложинский район");
                        NeighborhoodList.Add("Дзержинский район");
                        NeighborhoodList.Add("Клецкий район");
                        NeighborhoodList.Add("Копыльский район");
                        NeighborhoodList.Add("Крупский район");
                        NeighborhoodList.Add("Логойский район");
                        NeighborhoodList.Add("Любанский район");
                        NeighborhoodList.Add("Минский район");
                        NeighborhoodList.Add("Молодечненский район");
                        NeighborhoodList.Add("Мядельский район");
                        NeighborhoodList.Add("Несвижский район");
                        NeighborhoodList.Add("Пуховичский район");
                        NeighborhoodList.Add("Слуцкий район");
                        NeighborhoodList.Add("Смолевичский район");
                        NeighborhoodList.Add("Солигорский район");
                        NeighborhoodList.Add("Стародорожский район");
                        NeighborhoodList.Add("Столбцовский район");
                        NeighborhoodList.Add("Узденский район");
                        NeighborhoodList.Add("Червенский район");
                    }
                    break;

                case "Могилевская область":
                    {
                        NeighborhoodList.Clear();
                        NeighborhoodList.Add("Белыничский район");
                        NeighborhoodList.Add("Бобруйский район");
                        NeighborhoodList.Add("Быховский район");
                        NeighborhoodList.Add("Глусский район");
                        NeighborhoodList.Add("Горецкий район");
                        NeighborhoodList.Add("Дрибинский район");
                        NeighborhoodList.Add("Кировский район");
                        NeighborhoodList.Add("Климовичский район");
                        NeighborhoodList.Add("Кличевский район");
                        NeighborhoodList.Add("Костюковичский район");
                        NeighborhoodList.Add("Краснопольский район");
                        NeighborhoodList.Add("Кричевский район");
                        NeighborhoodList.Add("Круглянский район");
                        NeighborhoodList.Add("Могилевский район");
                        NeighborhoodList.Add("Мстиславский район");
                        NeighborhoodList.Add("Осиповичский район");
                        NeighborhoodList.Add("Славгородский район");
                        NeighborhoodList.Add("Хотимский район");
                        NeighborhoodList.Add("Чаусский район");
                        NeighborhoodList.Add("Чериковский район");
                        NeighborhoodList.Add("Шкловский район");
                        NeighborhoodList.Add("г.Могилев");
                    }
                    break;

                case "г.Минск":
                    {
                        NeighborhoodList.Clear();
                        NeighborhoodList.Add("Заводской район");
                        NeighborhoodList.Add("Ленинский район");
                        NeighborhoodList.Add("Московский район");
                        NeighborhoodList.Add("Октябрьский район");
                        NeighborhoodList.Add("Партизанский район");
                        NeighborhoodList.Add("Первомайский район");
                        NeighborhoodList.Add("Советский район");
                        NeighborhoodList.Add("Фрунзенский район");
                        NeighborhoodList.Add("Центральный район");
                    }
                    break;
                }
            });
            SaveCommand = new RelayCommand(() =>
            {
                try
                {
                    MyMessageBox _myMessageBox = new MyMessageBox();

                    if (checkString != FillCheckStringFromDB(EmergencyID))
                    {
                        Messenger.Default.Send("Информация о ЧС была обновлена.\nОткройте заново для редактирования\nактуальных сведений.");
                        _myMessageBox.Show();
                    }

                    else
                    {
                        EmergencySituation.EditLog += $"\n {DateTime.Now.ToShortDateString()} {DateTime.Now.ToString("HH:mm:ss")} редактировал {DutyOfficer.NameDutyOfficer}";
                        emergencySituationRepositiry.EditEmergency(EmergencySituation, SuperiorOfficers, Vechicle2Emergency, ReceivedMessage, Victim);
                        DialogWindowVM.CloseDialogWindow();
                    }
                }
                catch (Exception)
                {
                    MyMessageBox _myMessageBox = new MyMessageBox();
                    Messenger.Default.Send("Проверьте правильность \nвведенных данных");
                    _myMessageBox.Show();
                }
            });
            CancelCommand = new RelayCommand(() =>
            {
                DialogWindowVM.CloseWindow();
            });
            AddRowCommand = new RelayCommand(() =>
            {
                Vechicle2Emergency.Add(new Model.Vechicle2Emergency());
                IsButtonMinusEnable = true;
            });
            AddSpecialReportCommand = new RelayCommand(() =>
            {
                OpenFileDialog saveFileDialog = new OpenFileDialog();
                saveFileDialog.Filter         = "Text files (*.doc,*.docx)|*.doc;*.docx|All files (*.*)|*.*";
                if (saveFileDialog.ShowDialog() == true)
                {
                    PathSpecialReport                = Path.GetFileName(saveFileDialog.FileName);
                    IsButtonDeleteReportEnable       = true;
                    EmergencySituation.SpecialReport = File.ReadAllBytes(saveFileDialog.FileName);
                }
            });

            DeleteRowCommand = new RelayCommand(() =>
            {
                Vechicle2Emergency.Remove(CurrentVechicle2Emergency);
                if (Vechicle2Emergency.Count == 0)
                {
                    IsButtonMinusEnable = false;
                }
            });
            CheckedSuperiorOfficerCommand = new RelayCommand(() =>
            {
                CurrentSuperiorOfficer.StatusOfReport = true;
                string timeReport = DateTime.Now.ToString("HH:mm:ss");
                CurrentSuperiorOfficer.TimeReport = new TimeSpan(int.Parse(timeReport.Split(':')[0]),    // hours
                                                                 int.Parse(timeReport.Split(':')[1]), int.Parse(timeReport.Split(':')[2]));
            });
            UnCheckedSuperiorOfficerCommand = new RelayCommand(() =>
            {
                CurrentSuperiorOfficer.StatusOfReport = false;
                CurrentSuperiorOfficer.TimeReport     = null;
            });
            UnLoadedCommand = new RelayCommand(() =>
            {
                ViewModelLocator.Cleanup();
            });
            OpenSpecialReportCommand = new RelayCommand(() =>
            {
                if (PathSpecialReport != "Ссылка на документ отсутствует")
                {
                    string fileName = PathSpecialReport;
                    var bytes       = EmergencySituation.SpecialReport;
                    try
                    {
                        using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
                        {
                            foreach (var b in bytes)
                            {
                                fs.WriteByte(b);
                            }
                        }
                        Process prc            = new Process();
                        prc.StartInfo.FileName = fileName;
                        //prc.EnableRaisingEvents = true;
                        //prc.Exited += Prc_Exited;
                        prc.Start();
                    }
                    catch (Exception)
                    {
                        MyMessageBox _myMessageBox = new MyMessageBox();
                        Messenger.Default.Send("Данный файл уже открыт");
                        _myMessageBox.Show();
                    }
                }
            });
            DeleteSpecialReportCommand = new RelayCommand(() =>
            {
                PathSpecialReport                = "Ссылка на документ отсутствует";
                IsButtonDeleteReportEnable       = false;
                EmergencySituation.SpecialReport = null;
            });
        }