diff --git a/CampusAppWP8/CampusAppWP8/App.xaml.cs b/CampusAppWP8/CampusAppWP8/App.xaml.cs
index 81f3a560..65acbc71 100644
--- a/CampusAppWP8/CampusAppWP8/App.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/App.xaml.cs
@@ -171,11 +171,18 @@ namespace CampusAppWP8
if (Settings.AppSetting.GeoWatchEnable)
{
- Thread thread = new Thread(new ThreadStart(Utilities.DetermineAndStoreCurrentPositionForce));
+ Thread thread = new Thread(new ThreadStart(this.PositionThread));
thread.Start();
}
}
+ /// Position thread.
+ /// Stubbfel, 18.11.2013.
+ private void PositionThread()
+ {
+ Utilities.DetermineAndStoreCurrentPositionForce();
+ }
+
///
/// Load the usersettings from the store
///
diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs
index e6daa710..27858c92 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs
@@ -307,7 +307,7 @@ namespace CampusAppWP8.Pages
if (result == MessageBoxResult.OK)
{
Settings.AppSetting.GeoWatchEnable = true;
- Thread thread = new Thread(new ThreadStart(Utilities.DetermineAndStoreCurrentPosition));
+ Thread thread = new Thread(new ThreadStart(this.PositionThread));
thread.Start();
}
else
@@ -316,6 +316,13 @@ namespace CampusAppWP8.Pages
}
}
+ /// Position thread.
+ /// Stubbfel, 18.11.2013.
+ private void PositionThread()
+ {
+ Utilities.DetermineAndStoreCurrentPosition();
+ }
+
/// Event handler. Called by PintoStart for click events.
/// Stubbfel, 15.10.2013.
/// Caller of the function.
diff --git a/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs b/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs
index dad09bf1..73caa561 100644
--- a/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs
+++ b/CampusAppWP8/CampusAppWP8/Utility/MealIdToPriceConverter.cs
@@ -63,8 +63,11 @@ namespace CampusAppWP8.Utility
if ((intVal >= 0) && (intParam >= 0))
{
- PriceMealModel model = this.priceFeed.Model.GetCanteen(intParam).GetPriceMealModel(intVal);
- retValue = AppResources.Students + ": " + model.PriceStudentStr + " € " + AppResources.Employees + ": " + model.PriceEmployeeStr + " € " + AppResources.Guests + ": " + model.PriceGuestStr + " €";
+ if (this.priceFeed != null && this.priceFeed.Model != null)
+ {
+ PriceMealModel model = this.priceFeed.Model.GetCanteen(intParam).GetPriceMealModel(intVal);
+ retValue = AppResources.Students + ": " + model.PriceStudentStr + " € " + AppResources.Employees + ": " + model.PriceEmployeeStr + " € " + AppResources.Guests + ": " + model.PriceGuestStr + " €";
+ }
}
return retValue;
@@ -85,6 +88,7 @@ namespace CampusAppWP8.Utility
/// Fiedler, 14.11.2013.
private void PriceFeedIsReady()
{
+ this.priceFeed.SaveData();
}
/// Price feed is failed.
diff --git a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs
index 6a38a13a..f1df31c3 100644
--- a/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs
+++ b/CampusAppWP8/CampusAppWP8/Utility/Utilities.cs
@@ -228,14 +228,14 @@ namespace CampusAppWP8.Utility
/// Method determine the current position of the phone.
/// Stubbfel, 14.10.2013.
/// the position of the phone.
- public static GeoPosition DetermineCurrentPosition()
+ public static GeoPosition DetermineCurrentPosition(GeoPositionAccuracy accuracy = GeoPositionAccuracy.High)
{
if (!Settings.AppSetting.GeoWatchEnable)
{
return null;
}
- GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
+ GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(accuracy);
bool success = watcher.TryStart(false, TimeSpan.FromMilliseconds(10000));
GeoPosition geoposition = null;
if (success)
@@ -263,9 +263,9 @@ namespace CampusAppWP8.Utility
/// Method determine and store the current position of the phone.
/// Stubbfel, 14.10.2013.
- public static void DetermineAndStoreCurrentPositionForce()
+ public static void DetermineAndStoreCurrentPositionForce(GeoPositionAccuracy accuracy = GeoPositionAccuracy.High)
{
- GeoPosition geoposition = Utilities.DetermineCurrentPosition();
+ GeoPosition geoposition = Utilities.DetermineCurrentPosition(accuracy);
if (geoposition != null)
{
@@ -285,19 +285,19 @@ namespace CampusAppWP8.Utility
/// Method determine and store the current position of the phone, in 15 min interval.
///
/// Stubbfel, 14.10.2013.
- public static void DetermineAndStoreCurrentPosition()
+ public static void DetermineAndStoreCurrentPosition(GeoPositionAccuracy accuracy = GeoPositionAccuracy.High)
{
GeoMapPoint currentPoint = App.LoadFromAppState(Constants.GeoWatch_CurrentPositionPoint);
if (currentPoint == null)
{
- Utilities.DetermineAndStoreCurrentPositionForce();
+ Utilities.DetermineAndStoreCurrentPositionForce(accuracy);
}
else
{
DateTime expired = new DateTime(currentPoint.Timestamp).AddMinutes(15);
if (DateTime.Now.Ticks > expired.Ticks)
{
- Utilities.DetermineAndStoreCurrentPositionForce();
+ Utilities.DetermineAndStoreCurrentPositionForce(accuracy);
}
}
}
@@ -378,16 +378,25 @@ namespace CampusAppWP8.Utility
/// Gets the determined campus.
/// Stubbfel, 14.10.2013.
/// The Campus.
- public static Campus DetermineCampus()
+ public static Campus DetermineCampus(GeoPositionAccuracy accuracy = GeoPositionAccuracy.Default)
{
Campus result = Campus.UserSettingCampus;
- Utilities.DetermineAndStoreCurrentPosition();
+
+ Utilities.DetermineAndStoreCurrentPosition(accuracy);
MapPoint currentPoint = App.LoadFromAppState("CurrentGeoPoint");
if (currentPoint == null)
{
- return result;
+ if (accuracy.Equals(GeoPositionAccuracy.High))
+ {
+
+ return result;
+ }
+ else
+ {
+ return Utilities.DetermineCampus(GeoPositionAccuracy.High);
+ }
}
MapPoint tmpCampus = CampusMapPoints.NorthCB;