diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
index 3caed675..50ad8105 100644
--- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
+++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj
@@ -102,6 +102,7 @@
+
CampusMapPage.xaml
@@ -113,8 +114,6 @@
-
-
MensaPage.xaml
diff --git a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml
index 9f9619ed..04b6f0e8 100644
--- a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml
+++ b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml
@@ -13,7 +13,7 @@
-
+
diff --git a/CampusAppWP8/CampusAppWP8/model/mensa/Food.cs b/CampusAppWP8/CampusAppWP8/model/mensa/Food.cs
deleted file mode 100644
index a7995f2f..00000000
--- a/CampusAppWP8/CampusAppWP8/model/mensa/Food.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace CampusAppWP8.model.mensa
-{
- public class Food : BaseModel
- {
- private string _detail;
- private string _title;
- public Food()
- {
- }
-
- public Food(string title, string detail)
- {
- _title = title;
- _detail = detail;
- }
-
- public string Title
- {
- get
- {
- return _title;
- }
-
- set
- {
- if (value != _title)
- {
- _title = value;
- NotifyPropertyChanged("title");
- }
- }
- }
-
- public string Detail
- {
- get
- {
- return _detail;
- }
-
- set
- {
- if (value != _detail)
- {
- _detail = value;
- NotifyPropertyChanged("detail");
- }
- }
- }
- }
-}
diff --git a/CampusAppWP8/CampusAppWP8/model/mensa/FoodDay.cs b/CampusAppWP8/CampusAppWP8/model/mensa/FoodDay.cs
deleted file mode 100644
index 0f585be5..00000000
--- a/CampusAppWP8/CampusAppWP8/model/mensa/FoodDay.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace CampusAppWP8.model.mensa
-{
- public class FoodDay : BaseModel
- {
- private int _id;
- private string _header;
- private string _date;
-
- private ObservableCollection _foods = null;
-
- public FoodDay()
- {
- this.LoadData();
- }
-
- public FoodDay(int id, string header)
- {
- _id = id;
- _header = header;
- _date = header + " (01.01.1970)";
- this.LoadData();
- }
-
- public void LoadData()
- {
- this.Foods = new ObservableCollection();
- this.Foods.Add(new Food("Tagesuppe", "Schweinebrühe"));
- this.Foods.Add(new Food("Essen 1", "Gaisburger Marsch mit Rindfleisch und Wurzelgemüse, dazu eine Scheibe Brot, Obst (R)"));
- this.Foods.Add(new Food("Essen 2", "Weißkohlroulade mit pikanter Fleischfüllung auf Schmorkohlsauce zu Petersilienkartoffeln, Obst (S)"));
- this.Foods.Add(new Food("Essen 3", "Spätzle-Pilz-Gouda-Pfanne mit Leipziger Allerlei und Sauce Mousseline (*)"));
- this.Foods.Add(new Food("Essen 4", "Putenragout \"Florenz\" aus der Brust auf feiner Parmesansauce angerichtet (P),dazu Buttererbsen, Paprikagemüse, Maisgemüse sowie Ingwerreis, Pasta oder Kartoffelrösti(*)"));
- this.Foods.Add(new Food("Aktion", "Tandem - Magdeburg kocht für Cottbus Harzer Teufelwurst mit grünen Teufelspuck, Scharfes Hexendessert (S)"));
- }
-
- public string Header
- {
- get { return _header; }
- set
- {
- if (value != _header)
- {
- _header = value;
- NotifyPropertyChanged("header");
- }
- }
- }
-
- public string Date
- {
- get { return _date; }
- set
- {
- if (value != _date)
- {
- _date = value;
- NotifyPropertyChanged("date");
- }
- }
- }
-
- public ObservableCollection Foods
- {
- get { return _foods; }
- set
- {
- if (value != _foods)
- {
- _foods = value;
- NotifyPropertyChanged("foods");
- }
- }
- }
-
- public int Id
- {
- get { return _id; }
- set
- {
- if (value != _id)
- {
- _id = value;
- NotifyPropertyChanged("id");
- }
- }
- }
- }
-}
diff --git a/CampusAppWP8/CampusAppWP8/model/mensa/MensaViewModel.cs b/CampusAppWP8/CampusAppWP8/model/mensa/MensaViewModel.cs
index d2d5c9d0..11443e57 100644
--- a/CampusAppWP8/CampusAppWP8/model/mensa/MensaViewModel.cs
+++ b/CampusAppWP8/CampusAppWP8/model/mensa/MensaViewModel.cs
@@ -1,4 +1,6 @@
-using CampusAppWP8.Resources;
+using CampusAppWP8.pages.mensa;
+using CampusAppWP8.Resources;
+using CampusAppWP8.utility;
using Microsoft.Phone.Controls;
using System;
using System.Collections.Generic;
@@ -12,24 +14,21 @@ namespace CampusAppWP8.model.mensa
{
public class MensaViewModel : BaseViewModel
{
- private ObservableCollection _foodDays = null;
+ private ObservableCollection _foodDays = null;
public MensaViewModel()
{
- this.FoodDays = new ObservableCollection();
+ _foodDays = new ObservableCollection();
this.LoadData();
}
public void LoadData()
{
- this.FoodDays.Add(new FoodDay(0, AppResources.Time_Day_Monday));
- this.FoodDays.Add(new FoodDay(1, AppResources.Time_Day_Tuesday));
- this.FoodDays.Add(new FoodDay(2, AppResources.Time_Day_Wednesday));
- this.FoodDays.Add(new FoodDay(3, AppResources.Time_Day_Thursday));
- this.FoodDays.Add(new FoodDay(4, AppResources.Time_Day_Friday));
+ Feed feed = new MensaFeed();
+ feed.downloadFeed();
}
- public ObservableCollection FoodDays
+ public ObservableCollection FoodDays
{
get
{
diff --git a/CampusAppWP8/CampusAppWP8/model/mensa/MenuModel.cs b/CampusAppWP8/CampusAppWP8/model/mensa/MenuModel.cs
new file mode 100644
index 00000000..42338ede
--- /dev/null
+++ b/CampusAppWP8/CampusAppWP8/model/mensa/MenuModel.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Serialization;
+
+namespace CampusAppWP8.model.mensa
+{
+
+ [XmlRoot("root")]
+ public class MenuWeekModel
+ {
+ [XmlArray("BTU")]
+ [XmlArrayItem("Tagesmenu")]
+ public ObservableCollection menus { get; set; }
+ public MenuWeekModel()
+ {
+ }
+ }
+
+ public class MenuModel
+ {
+ public MenuModel()
+ {
+ }
+
+ [XmlElement("Wochentag")]
+ public string WochenTag { get; set; }
+
+ [XmlElement("Essen1")]
+ public string Essen1 {get; set;}
+
+ [XmlElement("Essen2")]
+ public string Essen2 {get; set;}
+
+ [XmlElement("Essen3")]
+ public string Essen3 {get; set;}
+
+ [XmlElement("Essen4")]
+ public string Essen4 {get; set;}
+
+ [XmlElement("Bio")]
+ public string Bio {get; set;}
+
+ [XmlElement("Aktionstag")]
+ public string Aktionstag {get; set;}
+ }
+}
diff --git a/CampusAppWP8/CampusAppWP8/pages/mensa/MensaFeed.cs b/CampusAppWP8/CampusAppWP8/pages/mensa/MensaFeed.cs
index 9658357e..6201c714 100644
--- a/CampusAppWP8/CampusAppWP8/pages/mensa/MensaFeed.cs
+++ b/CampusAppWP8/CampusAppWP8/pages/mensa/MensaFeed.cs
@@ -1,28 +1,38 @@
-using CampusAppWP8.utility;
+using CampusAppWP8.model.mensa;
+using CampusAppWP8.utility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Xml.Linq;
+using System.Xml.Serialization;
namespace CampusAppWP8.pages.mensa
{
public class MensaFeed : Feed
{
- private readonly Uri _feedUrl = URLList.MensaFeedURL;
-
- public MensaFeed()
+ public MensaFeed(): base(URLList.MensaFeedURL)
{
-
+
}
- public Uri FeedURL
+ protected override void doSomething(string downloadResult)
{
- get
- {
- return _feedUrl;
- }
+ XmlSerializer serializer = new XmlSerializer(typeof(MenuWeekModel));
+ XDocument document = XDocument.Parse(downloadResult);
+
+ if (!document.Root.Name.Equals("root"))
+ {
+ XElement content = document.Root;
+ document = new XDocument();
+ document.Add(new XElement("root", content));
}
+ MenuWeekModel menuWeek = (MenuWeekModel)serializer.Deserialize(document.CreateReader());
+ menus = menuWeek.menus;
+ }
+
+ public System.Collections.ObjectModel.ObservableCollection menus { get; set; }
}
}
diff --git a/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml b/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml
index f515d977..21aa8f8e 100644
--- a/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml
+++ b/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml
@@ -6,7 +6,6 @@
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:viewModel="clr-namespace:CampusAppWP8.model.mensa"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
@@ -14,43 +13,15 @@
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
OrientationChanged="PhoneApplicationPage_OrientationChanged"
shell:SystemTray.IsVisible="True">
-
-
-
-
-
-
-
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml.cs b/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml.cs
index b7a5e1fa..9ac341b9 100644
--- a/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml.cs
+++ b/CampusAppWP8/CampusAppWP8/pages/mensa/MensaPage.xaml.cs
@@ -7,6 +7,10 @@ using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
+using CampusAppWP8.utility;
+using System.Xml.Serialization;
+using CampusAppWP8.model.mensa;
+using System.Xml.Linq;
namespace CampusAppWP8.pages.mensa
{
@@ -15,8 +19,36 @@ namespace CampusAppWP8.pages.mensa
public MensaPage()
{
InitializeComponent();
- MensaPivot.SelectedIndex = this.calcSelectedIndex();
+ //MensaPivot.SelectedIndex = this.calcSelectedIndex();
+ WebClient client = new WebClient();
+ client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadCompleted);
+ client.DownloadStringAsync(URLList.MensaFeedURL);
+ }
+ private void DownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
+ {
+ Exception downloadError = e.Error;
+ if (downloadError != null)
+ {
+ Console.Out.WriteLineAsync(downloadError.Message);
+ return;
+ }
+
+ string downloadResult = e.Result;
+ if (downloadResult != null && !downloadResult.Equals(String.Empty))
+ {
+ XmlSerializer serializer = new XmlSerializer(typeof(MenuWeekModel));
+ XDocument document = XDocument.Parse(downloadResult);
+
+ if (!document.Root.Name.Equals("root"))
+ {
+ XElement content = document.Root;
+ document = new XDocument();
+ document.Add(new XElement("root", content));
+ }
+ MenuWeekModel menuWeek = (MenuWeekModel)serializer.Deserialize(document.CreateReader());
+ MensaPivot.ItemsSource = menuWeek.menus;
+ }
}
private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
diff --git a/CampusAppWP8/CampusAppWP8/utility/Feed.cs b/CampusAppWP8/CampusAppWP8/utility/Feed.cs
index a3ea8996..45aaf63d 100644
--- a/CampusAppWP8/CampusAppWP8/utility/Feed.cs
+++ b/CampusAppWP8/CampusAppWP8/utility/Feed.cs
@@ -3,10 +3,67 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using System.Net;
namespace CampusAppWP8.utility
{
public abstract class Feed
{
+ #region Member
+
+ private readonly Uri _feedURL;
+
+ #endregion
+
+ #region Constructor
+
+ public Feed()
+ {
+ }
+
+ public Feed(Uri FeedURL)
+ {
+ _feedURL = FeedURL;
+ }
+
+ #endregion
+
+ #region Methods
+ public void downloadFeed()
+ {
+ WebClient client = new WebClient();
+ client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadCompleted);
+ client.DownloadStringAsync(_feedURL);
+ }
+
+ private void DownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
+ {
+ Exception downloadError = e.Error;
+ if (downloadError != null)
+ {
+ Console.Out.WriteLineAsync(downloadError.Message);
+ return;
+ }
+
+ string downloadResult = e.Result;
+ if (downloadResult != null && !downloadResult.Equals(String.Empty))
+ {
+ doSomething(downloadResult);
+ }
+ }
+
+ protected abstract void doSomething(string downloadResult);
+
+ #endregion
+
+ #region Getter&Setter
+
+ public Uri FeedURL
+ {
+ get { return _feedURL; }
+ }
+
+ #endregion
+
}
}