private void OnPerformSearch(object obj)
        {
            var items = new List <IDocumentHistoryItem>(_originalDocumentHistoryItems);

            if (!string.IsNullOrEmpty(SearchTerm))
            {
                switch (SearchFilters.IndexOf(SelectedSearchFilter))
                {
                case 0:
                case 5:
                    items.Remove(item => item.RegistrationNumber == null || !item.RegistrationNumber.ToLower().Contains(SearchTerm.ToLower()));
                    break;

                case 1:
                    items.Remove(item => item.CustomerContact == null || !item.CustomerContact.ToLower().Contains(SearchTerm.ToLower()));
                    break;

                case 2:
                    items.Remove(item => item.TechnicianName == null || !item.TechnicianName.ToLower().Contains(SearchTerm.ToLower()));
                    break;

                case 3:
                    items.Remove(item => item.Office == null || !item.Office.ToLower().Contains(SearchTerm.ToLower()));
                    break;

                case 4:
                    items.Remove(item => item.DocumentType == null || !item.DocumentType.ToLower().Contains(SearchTerm.ToLower()));
                    break;
                }
            }

            if (SelectedDocumentType != Resources.TXT_SELECT_ALL && SelectedDocumentType != Resources.TXT_ANALOGUE_ONLY)
            {
                items.Remove(item => item.Type != SelectedDocumentType);
            }

            if (SelectedDocumentType == Resources.TXT_ANALOGUE_ONLY)
            {
                items.Remove(item => item.Document == null || !(item.Document is TachographDocument) || ((TachographDocument)item.Document).IsDigital);
            }

            Documents.Clear();
            Documents.AddRange(items);
        }