diff --git a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs
index 030d6aae..670e02b3 100644
--- a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs
+++ b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeed.cs
@@ -13,12 +13,19 @@ namespace CampusAppWP8.Feed.Mensa
using CampusAppWP8.Model;
using CampusAppWPortalLib8.Model.Mensa;
using CampusAppWPortalLib8.Model;
+ using CampusAppWP8.Resources;
+ using CampusAppWPortalLib8.Model.Settings;
/// This Class is for MensaFeeds.
/// Stubbfel, 14.10.2013.
///
public abstract class MensaFeed : XmlModel
{
+ #region Member
+ /// The price feed.
+ private PriceFeed priceFeed = null;
+
+ #endregion
#region Constructor
/// Initializes a new instance of the class.
@@ -31,6 +38,11 @@ namespace CampusAppWP8.Feed.Mensa
this.IsFileUpToDateOnLoad += new IsFileUpToDate(this.CheckIsFileUpToDate);
this.IsModelUpToDateOnLoad += new IsModelUpToDate(this.CheckIsModelUpToDate);
this.IsFileUpToDateOnSave += new IsFileUpToDate(this.CheckIsFileUpToDate);
+
+ this.priceFeed = new PriceFeed();
+ this.priceFeed.OnLoaded += this.PriceFeedIsReady;
+ this.priceFeed.OnFailedLoad += this.PriceFeedIsFailed;
+ this.priceFeed.LoadData();
}
#endregion
@@ -41,6 +53,10 @@ namespace CampusAppWP8.Feed.Mensa
/// The title.
public string Title { get; protected set; }
+ /// Gets the title.
+ /// The title.
+ public Campus Campus { get; protected set; }
+
#endregion
#region Method
@@ -119,6 +135,79 @@ namespace CampusAppWP8.Feed.Mensa
return true;
}
+ ///
+ /// Ändert die Quelldaten vor der Übergabe an das Ziel zur Anzeige in der Benutzeroberfläche.
+ ///
+ /// Fiedler, 14.11.2013.
+ ///
+ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo language)
+ {
+ string retValue = string.Empty;
+ int intVal = -1;
+ int intParam = -1;
+
+ if (value is int)
+ {
+ intVal = (int)value;
+ }
+ else if (value is string)
+ {
+ intVal = int.Parse((string)value);
+ }
+
+ if (parameter is int)
+ {
+ intParam = (int)parameter;
+ }
+ else if (parameter is string)
+ {
+ intParam = int.Parse((string)parameter);
+ }
+
+ if ((intVal >= 0) && (intParam >= 0))
+ {
+ 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;
+ }
+
+ /// Price feed is ready.
+ /// Fiedler, 14.11.2013.
+ private void PriceFeedIsReady()
+ {
+ this.priceFeed.SaveData();
+ }
+
+ /// Sets the prices.
+ /// Stubbfel, 18.11.2013.
+ public void SetPrices()
+ {
+ if (this.Model == null || this.Model.Menus == null || this.priceFeed == null || this.priceFeed.Model == null)
+ {
+ return;
+ }
+
+ foreach(MenuModel menu in this.Model.Menus) {
+ foreach (MealModel meal in menu.Meals)
+ {
+ PriceMealModel model = this.priceFeed.Model.GetCanteen(this.Campus).GetPriceMealModel(meal.MealId);
+ meal.Price = AppResources.Students + ": " + model.PriceStudentStr + " € " + AppResources.Employees + ": " + model.PriceEmployeeStr + " € " + AppResources.Guests + ": " + model.PriceGuestStr + " €";
+ }
+ }
+
+ }
+
+ /// Price feed is failed.
+ /// Fiedler, 14.11.2013.
+ private void PriceFeedIsFailed()
+ {
+ }
+
#endregion
#endregion
diff --git a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBMain.cs b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBMain.cs
index e0765814..7ea6dcf3 100644
--- a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBMain.cs
+++ b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBMain.cs
@@ -23,6 +23,7 @@ namespace CampusAppWP8.Feed.Mensa
: base(Constants.FileMensa_Shedule_CBMain, CampusAppWPortalLib8.Resources.Constants.UrlMensa_Week_CBMain)
{
this.Title = CampusAppWPortalLib8.Resources.AppResources.Campus_CBMain;
+ this.Campus = CampusAppWPortalLib8.Model.Settings.Campus.CB_MAIN;
}
#endregion
diff --git a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBNorth.cs b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBNorth.cs
index a6956d5f..b6959904 100644
--- a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBNorth.cs
+++ b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBNorth.cs
@@ -23,6 +23,7 @@ namespace CampusAppWP8.Feed.Mensa
: base(Constants.FileMensa_Shedule_CBNorth, CampusAppWPortalLib8.Resources.Constants.UrlMensa_Week_CBNorth)
{
this.Title = CampusAppWPortalLib8.Resources.AppResources.Campus_CBNorth;
+ this.Campus = CampusAppWPortalLib8.Model.Settings.Campus.CB_NORTH;
}
#endregion
diff --git a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBSouth.cs b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBSouth.cs
index fc33a1da..7c0cf80f 100644
--- a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBSouth.cs
+++ b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedCBSouth.cs
@@ -23,6 +23,7 @@ namespace CampusAppWP8.Feed.Mensa
: base(Constants.FileMensa_Shedule_CBSouth, CampusAppWPortalLib8.Resources.Constants.UrlMensa_Week_CBSouth)
{
this.Title = CampusAppWPortalLib8.Resources.AppResources.Campus_CBSouth;
+ this.Campus = CampusAppWPortalLib8.Model.Settings.Campus.CB_SOUTH;
}
#endregion
diff --git a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedSBFMain.cs b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedSBFMain.cs
index 0fe1fc1e..17c6c64e 100644
--- a/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedSBFMain.cs
+++ b/CampusAppWP8/CampusAppWP8/Feed/Mensa/MensaFeedSBFMain.cs
@@ -23,6 +23,7 @@ namespace CampusAppWP8.Feed.Mensa
: base(Constants.FileMensa_Shedule_SBFMain, CampusAppWPortalLib8.Resources.Constants.UrlMensa_Week_SBFMain)
{
this.Title = CampusAppWPortalLib8.Resources.AppResources.Campus_SFBMain;
+ this.Campus = CampusAppWPortalLib8.Model.Settings.Campus.SFB_MAIN;
}
#endregion
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml
index 3b83b591..ea1339ba 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml
+++ b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml
@@ -19,11 +19,7 @@
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
shell:SystemTray.IsVisible="True"
x:Name="root">
-
-
-
-
-
+
@@ -33,7 +29,7 @@
-
+
@@ -56,7 +52,7 @@
-
+
@@ -71,8 +67,7 @@
-
-
+
@@ -96,6 +91,9 @@
+
+
+
diff --git a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs
index 8952c549..e837fc79 100644
--- a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs
@@ -65,6 +65,8 @@ namespace CampusAppWP8.Pages.Mensa
ApplicationBarMenuItem menuItem1 = ApplicationBar.MenuItems[0] as ApplicationBarMenuItem;
ApplicationBarMenuItem menuItem2 = ApplicationBar.MenuItems[1] as ApplicationBarMenuItem;
ApplicationBarMenuItem menuItem3 = ApplicationBar.MenuItems[2] as ApplicationBarMenuItem;
+ ApplicationBarMenuItem menuItem4 = ApplicationBar.MenuItems[3] as ApplicationBarMenuItem;
+ ApplicationBarMenuItem menuItem5 = ApplicationBar.MenuItems[4] as ApplicationBarMenuItem;
if (menuItem1 != null)
{
@@ -81,6 +83,16 @@ namespace CampusAppWP8.Pages.Mensa
menuItem3.Text = CampusAppWPortalLib8.Resources.AppResources.Campus_SFBMain;
}
+ if (menuItem4 != null)
+ {
+ menuItem4.Text = AppResources.MensaApp_Dayplan + " " + AppResources.Copy;
+ }
+
+ if (menuItem5 != null)
+ {
+ menuItem5.Text = AppResources.MensaApp_Weekplan + " " + AppResources.Copy;
+ }
+
this.DefHeader.ProgressVisibility = Visibility.Visible;
}
@@ -185,12 +197,12 @@ namespace CampusAppWP8.Pages.Mensa
this.InitializeFeed(mensaCampus);
}
}
-
- /* this.campusApi = new CampusSpsApi();
- this.campusApi.OnLoaded += new SpsApi.OnIO(this.SpsApiIsReady);
- this.campusApi.OnFailedLoad += new SpsApi.OnFailed(this.SpsApiIsFail);
- this.campusApi.SetupCurrentCampusRequest();
- this.campusApi.LoadData();*/
+
+ /* this.campusApi = new CampusSpsApi();
+ this.campusApi.OnLoaded += new SpsApi.OnIO(this.SpsApiIsReady);
+ this.campusApi.OnFailedLoad += new SpsApi.OnFailed(this.SpsApiIsFail);
+ this.campusApi.SetupCurrentCampusRequest();
+ this.campusApi.LoadData();*/
}
/// Method initialize the Feed depends of a campus.
@@ -234,6 +246,7 @@ namespace CampusAppWP8.Pages.Mensa
/// Stubbfel, 15.10.2013.
private void FeedIsReady()
{
+ this.feed.SetPrices();
this.SetupMensaPivot();
this.DefHeader.ProgressVisibility = Visibility.Collapsed;
}
@@ -404,6 +417,80 @@ namespace CampusAppWP8.Pages.Mensa
Clipboard.SetText(copyText);
}
+ /// Copies the menu of the selected day.
+ /// Stubbfel, 18.11.2013.
+ /// button object.
+ /// Event information.
+ private void CopyDay(object sender, EventArgs e)
+ {
+ if (this.MensaPivot == null)
+ {
+ return;
+ }
+
+ int selecetdIndex = this.MensaPivot.SelectedIndex;
+
+ if (this.feed == null || this.feed.Model == null || selecetdIndex >= this.feed.Model.Menus.Count || selecetdIndex < 0)
+ {
+ return;
+ }
+
+ MenuModel menu = this.feed.Model.Menus[selecetdIndex];
+ string copyText = AppResources.MensaApp_Dayplan + " (" + menu.Day + " - " + menu.Date + ") - " + AppResources.Setting_UserCampus + " " + this.feed.Title + " :";
+ copyText = Wp8StringManager.AddNewLine(copyText);
+
+ foreach (MealModel meal in menu.Meals)
+ {
+ copyText += meal.MealName + ": " + meal.MealDesc;
+ copyText = Wp8StringManager.AddNewLine(copyText);
+ }
+
+
+ Clipboard.SetText(copyText);
+ }
+
+ /// Copies all meals from the week.
+ /// Stubbfel, 18.11.2013.
+ /// button object.
+ /// Event information.
+ private void CopyWeek(object sender, EventArgs e)
+ {
+
+ if (this.MensaPivot == null || this.feed == null || this.feed.Model == null)
+ {
+ return;
+ }
+
+ string startDate = null;
+ string endDate = null;
+
+ string copyText = string.Empty;
+ foreach (MenuModel menu in this.feed.Model.Menus)
+ {
+ if (startDate == null)
+ {
+ startDate = menu.Date;
+ }
+ endDate = menu.Date;
+
+ copyText += menu.Day + " (" + menu.Date + "):";
+ copyText = Wp8StringManager.AddNewLine(copyText);
+
+ foreach (MealModel meal in menu.Meals)
+ {
+ copyText += meal.MealName + ": " + meal.MealDesc;
+ copyText = Wp8StringManager.AddNewLine(copyText);
+ }
+ copyText = Wp8StringManager.AddNewLine(copyText);
+
+ }
+
+ string headline = AppResources.MensaApp_Weekplan + " (" + startDate + " - " + endDate + ") - " + AppResources.Setting_UserCampus + " " + this.feed.Title + " :";
+ headline = Wp8StringManager.AddNewLine(headline);
+
+ Clipboard.SetText(headline + copyText);
+ }
+
#endregion
#endregion
diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs
index 5ab45237..c58ee146 100644
--- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs
+++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs
@@ -276,6 +276,15 @@ namespace CampusAppWP8.Resources {
}
}
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Kopieren ähnelt.
+ ///
+ public static string Copy {
+ get {
+ return ResourceManager.GetString("Copy", resourceCulture);
+ }
+ }
+
///
/// Sucht eine lokalisierte Zeichenfolge, die Erstellen ähnelt.
///
@@ -744,6 +753,15 @@ namespace CampusAppWP8.Resources {
}
}
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Tagesplan ähnelt.
+ ///
+ public static string MensaApp_Dayplan {
+ get {
+ return ResourceManager.GetString("MensaApp_Dayplan", resourceCulture);
+ }
+ }
+
///
/// Sucht eine lokalisierte Zeichenfolge, die 84 ähnelt.
///
@@ -762,6 +780,15 @@ namespace CampusAppWP8.Resources {
}
}
+ ///
+ /// Sucht eine lokalisierte Zeichenfolge, die Wochenplan ähnelt.
+ ///
+ public static string MensaApp_Weekplan {
+ get {
+ return ResourceManager.GetString("MensaApp_Weekplan", resourceCulture);
+ }
+ }
+
///
/// Sucht eine lokalisierte Zeichenfolge, die BTU-Tag ähnelt.
///
diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx
index 9297b6cd..f21e5f63 100644
--- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx
+++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx
@@ -605,4 +605,13 @@
Studenten
+
+ Kopieren
+
+
+ Tagesplan
+
+
+ Wochenplan
+
\ No newline at end of file
diff --git a/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/MealModel.cs b/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/MealModel.cs
index 18a32b4d..e1502d6f 100644
--- a/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/MealModel.cs
+++ b/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/MealModel.cs
@@ -112,6 +112,10 @@ namespace CampusAppWPortalLib8.Model.Mensa
/// The icon URL.
public string IconUrl { get; set; }
+ /// Gets or sets the price.
+ /// The price.
+ public string Price { get; set; }
+
/// Gets or sets the icon name.
/// The name of the icon.
[XmlAttribute("icon")]
diff --git a/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/PriceModel.cs b/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/PriceModel.cs
index 3a62b506..5630e72a 100644
--- a/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/PriceModel.cs
+++ b/CampusAppWP8/CampusAppWPortalLib8/Model/Mensa/PriceModel.cs
@@ -8,6 +8,7 @@
//-----------------------------------------------------------------------
namespace CampusAppWPortalLib8.Model.Mensa
{
+ using CampusAppWPortalLib8.Model.Settings;
using System.Collections.ObjectModel;
using System.Xml.Serialization;
@@ -51,15 +52,25 @@ namespace CampusAppWPortalLib8.Model.Mensa
{
PriceCanteenModel retValue = null;
- for (int i = 0; i < this.canteens.Count; i++)
+ foreach (PriceCanteenModel prize in this.canteens)
{
- if (this.canteens[i].Id.Equals(id))
+ if (prize.Id == id)
{
- retValue = this.canteens[i];
+ retValue = prize;
+ break;
}
}
return retValue;
}
+
+ /// Gets a canteen.
+ /// Stubbfel, 18.11.2013.
+ /// The campus.
+ /// The canteen.
+ public PriceCanteenModel GetCanteen(Campus campus)
+ {
+ return this.GetCanteen((int)campus - 1);
+ }
}
}
\ No newline at end of file