From bd807b16eaa60662042bb0d5e3bd0c5bc25c75c5 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Wed, 16 Oct 2013 15:14:38 +0200 Subject: [PATCH] check if a nfc or qrtag is an btutag --- .../Pages/Campusmap/CampusMapPage.xaml.cs | 4 +- .../CampusAppWP8/Pages/Dev/QRScanner.xaml.cs | 8 +++- .../CampusAppWP8/Pages/StartPage.xaml.cs | 44 ++++++++++++++----- .../Resources/AppResources.Designer.cs | 18 ++++---- .../CampusAppWP8/Resources/AppResources.resx | 6 +-- .../CampusAppWP8/Resources/Constants.resx | 3 ++ .../Resources/Constants1.Designer.cs | 9 ++++ .../CampusAppWP8/Utility/Wp8StringManager.cs | 14 ++++++ 8 files changed, 79 insertions(+), 27 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs index f34c25c9..0b2fae14 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs @@ -533,11 +533,11 @@ namespace CampusAppWP8.Pages.Campusmap // Errorcase if (this.Dispatcher != null) { - this.Dispatcher.BeginInvoke(new Action(() => MessageBoxes.ShowMainModelErrorMessageBox(AppResources.ScarNfc_Fail))); + this.Dispatcher.BeginInvoke(new Action(() => MessageBoxes.ShowMainModelErrorMessageBox(AppResources.BTUTag_WrongTag))); } else { - MessageBoxes.ShowMainModelErrorMessageBox(AppResources.ScarNfc_Fail); + MessageBoxes.ShowMainModelErrorMessageBox(AppResources.BTUTag_WrongTag); } } diff --git a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs index d0740f3a..453bd611 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs @@ -226,10 +226,16 @@ namespace CampusAppWP8.Pages.Dev var result = this.barcodeReader.Decode(this.bit); - if (result != null) + if (result != null ) { Dispatcher.BeginInvoke(delegate { + + if (!Wp8StringManager.IsBTUQRTag(result.Text)) + { + MessageBoxes.ShowMainModelErrorMessageBox(AppResources.BTUTag_WrongTag); + return; + } if (this.resultAppStoreKey != null) { if (NavigationService.CanGoBack) diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs index 8cdbd02d..6b98afdb 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs @@ -411,26 +411,46 @@ namespace CampusAppWP8.Pages { // create ndefMessage this.device.StopSubscribingForMessage(message.SubscriptionId); - - if (AppSettings.BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler) + var ndefMessage = message.Data; + byte[] data = ndefMessage.ToArray(); + NDEFMessage ndef = new NDEFMessage(data); + string nfcContent = ndef.GetContent(); + if (nfcContent == null) { - var ndefMessage = message.Data; - byte[] data = ndefMessage.ToArray(); - NDEFMessage ndef = new NDEFMessage(data); - - // search for placeId - string nfcContent = ndef.GetContent(); - this.GoToCampusMappage(nfcContent); + nfcContent = string.Empty; } - else + + string searchPid = Wp8StringManager.FilterPlaceIdinNFCResultString(nfcContent.Trim()); + + if (searchPid == null) { + // Errorcase if (this.Dispatcher != null) { - this.Dispatcher.BeginInvoke(new Action(() => this.ShowBtuTagMessageBox())); + this.Dispatcher.BeginInvoke(new Action(() => MessageBoxes.ShowMainModelErrorMessageBox(AppResources.BTUTag_WrongTag))); } else { - this.ShowBtuTagMessageBox(); + MessageBoxes.ShowMainModelErrorMessageBox(AppResources.BTUTag_WrongTag); + } + } + else + { + if (AppSettings.BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler) + { + // search for placeId + this.GoToCampusMappage(nfcContent); + } + else + { + if (this.Dispatcher != null) + { + this.Dispatcher.BeginInvoke(new Action(() => this.ShowBtuTagMessageBox())); + } + else + { + this.ShowBtuTagMessageBox(); + } } } diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs index 1f74aae6..f3e2f9f1 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs @@ -150,6 +150,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Der eingescannte Tag ist kein BTU-Tag ähnelt. + /// + public static string BTUTag_WrongTag { + get { + return ResourceManager.GetString("BTUTag_WrongTag", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Gebäude ähnelt. /// @@ -915,15 +924,6 @@ namespace CampusAppWP8.Resources { } } - /// - /// Sucht eine lokalisierte Zeichenfolge, die Kein gültigen NFC-Tag gefunden ähnelt. - /// - public static string ScarNfc_Fail { - get { - return ResourceManager.GetString("ScarNfc_Fail", resourceCulture); - } - } - /// /// Sucht eine lokalisierte Zeichenfolge, die Bitte halten Sie das Handy vor dem NFC-Tag ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx index 4b31e010..f45840a6 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx @@ -416,9 +416,6 @@ BTU-Tag via QR-Code - - Kein gültigen NFC-Tag gefunden - Bitte halten Sie das Handy vor dem NFC-Tag @@ -488,4 +485,7 @@ Über BTU Campus-App + + Der eingescannte Tag ist kein BTU-Tag + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx index 48cde16c..ab3dd3e0 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx @@ -585,4 +585,7 @@ removeBack + + BTU-CampusApp + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs index 7f0274c7..c193b4a1 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs @@ -195,6 +195,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die BTU-CampusApp ähnelt. + /// + public static string BTUTAG_QRStart { + get { + return ResourceManager.GetString("BTUTAG_QRStart", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die CampusMapAppQRCodeSearchResultStorageKey ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs b/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs index fe0a7735..27c5b2a5 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs @@ -25,5 +25,19 @@ namespace CampusAppWP8.Utility { return System.Net.HttpUtility.HtmlDecode(Wp8StringManager.StripHTML(inputString)); } + + /// Query if 'content' is a valid btuqr tag. + /// Stubbfel, 16.10.2013. + /// The content. + /// true if btuqr tag, false if not. + public static bool IsBTUQRTag(string content) + { + if (content != null && content.StartsWith(Constants.BTUTAG_QRStart)) + { + return true; + } + + return false; + } } }