From aad425e2a3e6115b4c65e3491082bb61de92ae51 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Mon, 12 Aug 2013 17:15:54 +0200 Subject: [PATCH] addcampusapi --- .../CampusAppWP8/Api/GeoApi/CampusSpsApi.cs | 75 +++++++++++++++++++ .../CampusAppWP8/Api/GeoApi/SpsApi.cs | 53 +++---------- CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj | 5 +- .../CampusAppWP8/Feed/Mensa/MensaFeed.cs | 1 - .../Pages/Mensa/MensaPage.xaml.cs | 12 +-- .../Resources/Constants.Designer.cs | 36 +++++++++ .../CampusAppWP8/Resources/Constants.resx | 12 +++ .../CampusAppWP8/Utility/Utilities.cs | 11 ++- 8 files changed, 153 insertions(+), 52 deletions(-) create mode 100644 CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs diff --git a/CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs b/CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs new file mode 100644 index 00000000..06311c97 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs @@ -0,0 +1,75 @@ +//----------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 12.08.2013 +//---------------------------------------------------------------------- +namespace CampusAppWP8.Feed.GeoApi +{ + using System; + using System.Collections.Generic; + using CampusAppWP8.Model; + using CampusAppWP8.Model.GeoDb; + using CampusAppWP8.Model.Utility; + using CampusAppWP8.Resources; + using CampusAppWP8.Utility; + + /// + /// Class for SPSAPI + /// + public class CampusSpsApi : SpsApi + { + /// + /// Initializes a new instance of the class. + /// + public CampusSpsApi() + : base() + { + } + + /// + /// Method set the UriParameter of a campusRequest for a given latitude and longitude + /// + /// latitude parameter + /// longitude parameter + public void SetupCampusRequest(string lat, string log) + { + this.SetupPlaceRequest(lat, log, Constants.SpsApi_CampusDomain); + } + + /// + /// Method set the UriParameter of a campusRequest for the actualPosition + /// + public void SetupCurrentCampusRequest() + { + Utilities.DetermineAndStoreCurrentPosition(); + string lat = App.LoadFromAppState(Constants.GeoWatch_CurrentPosition_Lat); + string log = App.LoadFromAppState(Constants.GeoWatch_CurrentPosition_Long); + this.SetupCampusRequest(lat, log); + } + + /// + /// Method return the campus of the placeList + /// + /// actual campus + public CampusAppWP8.Model.Setting.UserProfilModel.Campus GetCampus() + { + if (this.Model == null) + { + return Settings.UserProfil.DefaultCampus; + } + + CampusAppWP8.Model.Setting.UserProfilModel.Campus campus; + foreach (PlaceModel place in this.Model.Places) + { + if (Enum.TryParse(place.PlaceId, true, out campus)) + { + return campus; + } + } + + return Settings.UserProfil.DefaultCampus; + } + } +} diff --git a/CampusAppWP8/CampusAppWP8/Api/GeoApi/SpsApi.cs b/CampusAppWP8/CampusAppWP8/Api/GeoApi/SpsApi.cs index 92592730..7972517f 100644 --- a/CampusAppWP8/CampusAppWP8/Api/GeoApi/SpsApi.cs +++ b/CampusAppWP8/CampusAppWP8/Api/GeoApi/SpsApi.cs @@ -29,51 +29,22 @@ namespace CampusAppWP8.Feed.GeoApi } /// - /// Method set the UriParameter of a campusRequest for a given latitude and longitude + /// Method set the UriParameter of a placeRequest for a given latitude and longitude /// - /// latitude parameter - /// longitude parameter - public void SetupCampusRequest(string lat, string log) + /// latitude of the place + /// longitude of the place + /// request domain + public void SetupPlaceRequest(string lat, string log, string domian = null) { List parameterList = new List(); - parameterList.Add(new CleanUrlParamModel("latitude", lat)); - parameterList.Add(new CleanUrlParamModel("longitude", log)); - parameterList.Add(new CleanUrlParamModel("domain", "3")); + parameterList.Add(new CleanUrlParamModel(Constants.SpsApi_LatitudeParaKey, lat)); + parameterList.Add(new CleanUrlParamModel(Constants.SpsApi_LongitudeParaKey, log)); + if (domian != null) + { + parameterList.Add(new CleanUrlParamModel(Constants.SpsApi_DomainParaKey, domian)); + } + this.SetUriParams(parameterList); } - - /// - /// Method set the UriParameter of a campusRequest for the actualPosition - /// - public void SetupCurrentCampusRequest() - { - Utilities.DetermineAndStoreCurrentPosition(); - string lat = App.LoadFromAppState(Constants.GeoWatch_CurrentPosition_Lat); - string log = App.LoadFromAppState(Constants.GeoWatch_CurrentPosition_Long); - this.SetupCampusRequest(lat, log); - } - - /// - /// Method return the campus of the placeList - /// - /// actual campus - public CampusAppWP8.Model.Setting.UserProfilModel.Campus GetCampus() - { - if (this.Model == null) - { - return Settings.UserProfil.DefaultCampus; - } - - CampusAppWP8.Model.Setting.UserProfilModel.Campus campus; - foreach (PlaceModel place in this.Model.Places) - { - if (Enum.TryParse(place.PlaceId, true, out campus)) - { - return campus; - } - } - - return Settings.UserProfil.DefaultCampus; - } } } diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj index 941581ca..a85ec411 100644 --- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj +++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj @@ -93,6 +93,7 @@ 4 + App.xaml @@ -439,13 +440,15 @@ ..\packages\BuiltToRoam.Core.Agent.1.0.1.5\lib\sl4-wp71\AsyncCtpLibrary_Phone.dll False - global2 + global ..\packages\BuiltToRoam.Core.Agent.1.0.1.5\lib\sl4-wp71\BuiltToRoam.Core.Agent.dll + global ..\packages\BuiltToRoam.GeoWatcher.1.0.1.5\lib\sl4-wp71\BuiltToRoam.GeoWatcher.dll + global diff --git a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs index 362fe248..950fc50e 100644 --- a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs +++ b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs @@ -11,7 +11,6 @@ namespace CampusAppWP8.Feed.Mensa using System.IO; using CampusAppWP8.Model; using CampusAppWP8.Model.Mensa; - using CampusAppWP8.Resources; /// /// This Class is for MensaFeeds diff --git a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs index 181d2ed1..da74254d 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs @@ -43,7 +43,7 @@ namespace CampusAppWP8.Pages.Mensa /// /// API for Localization /// - private SpsApi spsApi; + private CampusSpsApi campusApi; /// /// Flag for forcing webLoad @@ -96,7 +96,7 @@ namespace CampusAppWP8.Pages.Mensa /// private void SpsApiIsReady() { - this.InitializeFeed(this.spsApi.GetCampus()); + this.InitializeFeed(this.campusApi.GetCampus()); } /// @@ -104,10 +104,10 @@ namespace CampusAppWP8.Pages.Mensa /// private void DeterminCurrentCampusAndLoadFeed() { - this.spsApi = new SpsApi(); - this.spsApi.onLoaded += new SpsApi.OnLoaded(this.SpsApiIsReady); - this.spsApi.SetupCurrentCampusRequest(); - this.spsApi.LoadData(); + this.campusApi = new CampusSpsApi(); + this.campusApi.onLoaded += new SpsApi.OnLoaded(this.SpsApiIsReady); + this.campusApi.SetupCurrentCampusRequest(); + this.campusApi.LoadData(); } /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs index aa28477a..865e17fb 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs @@ -654,6 +654,42 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die 3 ähnelt. + /// + public static string SpsApi_CampusDomain { + get { + return ResourceManager.GetString("SpsApi_CampusDomain", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die domain ähnelt. + /// + public static string SpsApi_DomainParaKey { + get { + return ResourceManager.GetString("SpsApi_DomainParaKey", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die latitude ähnelt. + /// + public static string SpsApi_LatitudeParaKey { + get { + return ResourceManager.GetString("SpsApi_LatitudeParaKey", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die longitude ähnelt. + /// + public static string SpsApi_LongitudeParaKey { + get { + return ResourceManager.GetString("SpsApi_LongitudeParaKey", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die ToggleContent ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx index fde2d6ff..45e2bc0c 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx @@ -393,4 +393,16 @@ http://www.tu-cottbus.de/campusapp-data/Studentenwerk/index.php?mensa=Senftenberg&v=1 + + 3 + + + domain + + + latitude + + + longitude + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs index 45dadd22..30296f10 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs @@ -6,7 +6,7 @@ // 16.07.2013 //----------------------------------------------------------------------------- namespace CampusAppWP8.Utility -{ +{ using System; using System.Collections.Generic; using System.Device.Location; @@ -204,9 +204,8 @@ namespace CampusAppWP8.Utility /// /// Method determine the current position of the phone /// - /// accuracy of the position in meters /// the position of the phone - public static GeoPosition DetermineCurrentPosition(uint accuracy = 50) + public static GeoPosition DetermineCurrentPosition() { if (!Settings.AppSetting.GeoWatchEnable) { @@ -220,6 +219,12 @@ namespace CampusAppWP8.Utility { geoposition = watcher.Position; } + else if (watcher.Permission.Equals(GeoPositionPermission.Denied)) + { + // set to 0 point, if access to device is not allow + geoposition = new GeoPosition(); + geoposition.Location = new GeoCoordinate(0, 0); + } watcher.Stop(); return geoposition;