private void EditStaffConfig_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            var listItem = sender as FrameworkElement;

            if (listItem != null)
            {
                var vm           = DataContext as AirportConfigurationViewModel;
                var oldPassenger = listItem.DataContext as AirportCheckpointPassengerConfiguration;
                if (vm != null && oldPassenger != null)
                {
                    var clonedItem = oldPassenger.DeepClone <AirportCheckpointPassengerConfiguration>();
                    foreach (var sc in clonedItem.StaffConfigurations)
                    {
                        sc.Qualification = vm.Qualifications.FirstOrDefault(x => x.QualificationId == sc.QualificationId);
                    }

                    var ctrl = new EditAirportStaffControl(clonedItem, vm.SelectedCheckpoint.PassengerConfigurations);
                    ctrl.OnEditFinished += newPassenger =>
                    {
                        vm.EditPassengerConfiguration(newPassenger, oldPassenger);
                    };

                    GSPApplicationService.Current.AppState.ShowPopup(ctrl, listItem);
                }
            }
        }
        private void AddCheckpointStaffBtn_OnClick(object sender, RoutedEventArgs e)
        {
            var vm   = DataContext as AirportConfigurationViewModel;
            var ctrl = new EditAirportStaffControl(new AirportCheckpointPassengerConfiguration(), vm.SelectedCheckpoint.PassengerConfigurations);

            ctrl.OnEditFinished += passengerConfiguration =>
            {
                //var vm = DataContext as AirportConfigurationViewModel;
                if (vm != null)
                {
                    vm.AddPassengerConfiguration(passengerConfiguration);
                }
            };

            GSPApplicationService.Current.AppState.ShowPopup(ctrl, AddCheckpointStaffBtn);
        }