/// <summary>
        /// Constructor
        /// </summary>
        public MainWindowViewModel()
        {
            IsUIEnabled = true;

            FlipButtonText = ChipId;

            // Create view models
            SearchListViewModel   = new SearchListViewModel(this);
            EmptyControlViewModel = new EmptyControlViewModel {
                Text = GetString("info")
            };
            DogViewModel = new DogViewModel(this);
            CatViewModel = new CatViewModel(this);

            // Set the current view
            CurrentView = EmptyControlViewModel;

            // Initialize the USB RFID object
            _usbBgObject = new UsbReaderWriter(this);

            // Listen for shutdown event
            Application.Current.Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted;
        }
        private async void SearchAnimals()
        {
            try
            {
                DisableUI();
                EmptyControlViewModel.Text = "Söker...";
                CurrentView = EmptyControlViewModel;

                var djurslag = _catMode ? Djurslag.Katt : Djurslag.Hund;

                AnimalList responseObject = null;

                await Task.Run(() =>
                {
                    if (djurslag == Djurslag.Hund)
                    {
                        responseObject = skkSearch.SearchDogs(_idMode, TxtId);
                    }
                    else
                    {
                        responseObject = skkSearch.SearchCats(_idMode, TxtId);
                    }
                });

                if (responseObject.errorMessage != null && responseObject.errorMessage != String.Empty)
                {
                    // Got error message from service
                    if (responseObject.errorMessage == ErrorMessages.NoDogsFound)
                    {
                        EmptyControlViewModel.Text = GetString("ingaHundar");
                    }
                    else if (responseObject.errorMessage == ErrorMessages.NoCatsFound)
                    {
                        EmptyControlViewModel.Text = GetString("ingaKatter");
                    }
                    else
                    {
                        EmptyControlViewModel.Text = GetString("okäntFel");
                        // Lägg till felmeddelandet
                        EmptyControlViewModel.Text += "\n\n" + responseObject.errorMessage;
                    }

                    CurrentView = EmptyControlViewModel;
                }
                else
                {
                    // We got a result list, lets show it
                    SearchListViewModel.Update(responseObject);

                    if (responseObject.animals.Count == 1)
                    {
                        AnimalDoubleCkick(responseObject.animals.First());
                    }
                    else
                    {
                        CurrentView = SearchListViewModel;
                    }
                }

                EnableUI();
            }
            catch (Exception ex)
            {
                MessageBox_Show(null, ex.Message, "Fel", System.Windows.MessageBoxButton.OK);
                EnableUI();
            }
        }