diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj index 075d64a7..38929d61 100644 --- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj +++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj @@ -158,6 +158,9 @@ + + DefaultHeader.xaml + @@ -402,6 +405,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + diff --git a/CampusAppWP8/CampusAppWP8/Model/Lecture/LectureWp8Activity.cs b/CampusAppWP8/CampusAppWP8/Model/Lecture/LectureWp8Activity.cs index d68c2c0e..a0a3eb0e 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Lecture/LectureWp8Activity.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Lecture/LectureWp8Activity.cs @@ -8,7 +8,9 @@ namespace CampusAppWP8.Model.Lecture { using CampusAppWP8.Resources; + using CampusAppWP8.Utility; using CampusAppWPortalLib8.Model.Lecture; + using System.Xml.Serialization; /// /// Model for a Activity @@ -34,6 +36,26 @@ namespace CampusAppWP8.Model.Lecture return this.iconUrl; } } + + /// + /// Gets or sets the topic of the Lecture + /// + [XmlElement("lehrinhalt")] + public new string Topic + { + get + { + return base.Topic; + } + + set + { + if (value != this.Topic) + { + base.Topic = Wp8StringManager.StripAndDecodeHTML(value); + } + } + } #endregion #region Methods diff --git a/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursInstitutionWp8Model.cs b/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursInstitutionWp8Model.cs index 077ee869..7c4cfb96 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursInstitutionWp8Model.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Openinghours/OpeninghoursInstitutionWp8Model.cs @@ -11,13 +11,13 @@ namespace CampusAppWP8.Model.Openinghours using System.Globalization; using System.Windows; using System.Xml.Serialization; - + /// /// Model for menu /// public class OpeninghoursInstitutionWp8Model : CampusAppWPortalLib8.Model.Openinghours.OpeninghoursInstitutionModel { - #region Property + #region Property /// /// Gets the visibility state of the monday TextBlock. @@ -152,5 +152,5 @@ namespace CampusAppWP8.Model.Openinghours } #endregion - } + } } diff --git a/CampusAppWP8/CampusAppWP8/Model/Person/PersonListWp8Model.cs b/CampusAppWP8/CampusAppWP8/Model/Person/PersonListWp8Model.cs index 474f3fea..4a95dcb9 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Person/PersonListWp8Model.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Person/PersonListWp8Model.cs @@ -10,6 +10,7 @@ namespace CampusAppWP8.Model.Person { using System.Xml.Serialization; using CampusAppWPortalLib8.Model.Person; + using System.Collections.Generic; /// Person list model. /// Stubbfel, 05.09.2013. @@ -25,5 +26,25 @@ namespace CampusAppWP8.Model.Person IPersonModel tmpPerson = base.GetPerson(id); return tmpPerson as PersonWp8Model; } + + + /// Removes the non function person. + /// Stubbfel, 05.09.2013. + public override void RemoveNonFunctionPerson() + { + List removeList = new List(); + foreach (PersonWp8Model tmpPerson in this.Persons) + { + if (tmpPerson.Functions.Count < 1) + { + removeList.Add(tmpPerson); + } + } + + foreach (PersonWp8Model removePerson in removeList) + { + this.Persons.Remove(removePerson); + } + } } } diff --git a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs index f45eb0cb..e79b9981 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentFavoritePage.xaml.cs @@ -180,7 +180,7 @@ namespace CampusAppWP8.Pages.Departments FrameworkElement infoBtn = sender as FrameworkElement; string chairName = ((this.lastClickedBtn as Button).Content as TextBlock).Text.ToString(); - NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentInfoPage + "?url=" + infoBtn.Tag.ToString() + "&name=" + chairName, UriKind.Relative)); + NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentInfoPage + "?" + Constants.ParamUrl + "=" + infoBtn.Tag.ToString() + "&" + Constants.ParamName + "=" + chairName, UriKind.Relative)); } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs index cfdf92f8..e06cd045 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentIndexPage.xaml.cs @@ -47,16 +47,7 @@ namespace CampusAppWP8.Pages.Departments this.progressBar.Visibility = Visibility.Visible; //// init feed objects - if (DepartmentIndexPage.feed == null) - { - DepartmentIndexPage.feed = new DepartmentFeed(false); - } - - DepartmentIndexPage.feed.OnLoaded += new DepartmentFeed.OnIO(this.SetupFacultyList); - DepartmentIndexPage.feed.OnFailedWeb += new DepartmentFeed.OnFailed(this.FeedIsFailedWeb); - DepartmentIndexPage.feed.OnFailedFile += new DepartmentFeed.OnFailed(this.FeedIsFailedFile); - - DepartmentIndexPage.feed.LoadData(Utilities.GetLoadModus()); + DepartmentIndexPage.InitFeed(this.SetupFacultyList, this.FeedIsFailedWeb, this.FeedIsFailedFile); if (DepartmentIndexPage.favorite == null) { @@ -83,10 +74,7 @@ namespace CampusAppWP8.Pages.Departments set { - if (value != DepartmentIndexPage.feed) - { - DepartmentIndexPage.feed = value; - } + DepartmentIndexPage.feed = value; } } @@ -179,6 +167,26 @@ namespace CampusAppWP8.Pages.Departments { } + /// + /// Initialize the feed objects and load the data. + /// + public static void InitFeed(DepartmentFeed.OnIO onLoaded = null, DepartmentFeed.OnIO failedWeb = null, DepartmentFeed.OnIO failedFile = null) + { + if (DepartmentIndexPage.feed == null) + { + DepartmentIndexPage.feed = new DepartmentFeed(false); + } + + if(onLoaded != null) + DepartmentIndexPage.feed.OnLoaded += new DepartmentFeed.OnIO(onLoaded); + if(failedWeb != null) + DepartmentIndexPage.feed.OnFailedWeb += new DepartmentFeed.OnFailed(failedWeb); + if(failedFile != null) + DepartmentIndexPage.feed.OnFailedFile += new DepartmentFeed.OnFailed(failedFile); + + DepartmentIndexPage.feed.LoadData(Utilities.GetLoadModus()); + } + /// /// Setup the faculty list. /// diff --git a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentInfoPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentInfoPage.xaml.cs index f9c98b98..d1ce5ab0 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentInfoPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentInfoPage.xaml.cs @@ -8,14 +8,23 @@ namespace CampusAppWP8.Pages.Departments { using System; + using System.Windows; + using System.Collections.Generic; + using System.Collections.ObjectModel; using System.Windows.Navigation; using Microsoft.Phone.Controls; + using CampusAppWP8.Resources; + using CampusAppWPortalLib8.Model.Departments; /// /// Info page of a chair. /// public partial class DepartmentInfoPage : PhoneApplicationPage { + private bool feedLoadedFlag = false; + + private string chairName = string.Empty; + #region Constructor /// @@ -41,15 +50,32 @@ namespace CampusAppWP8.Pages.Departments { base.OnNavigatedTo(e); - string url = string.Empty; - string chairName = string.Empty; + this.feedLoadedFlag = false; - if (NavigationContext.QueryString.TryGetValue("url", out url) - && NavigationContext.QueryString.TryGetValue("name", out chairName)) + string url = string.Empty; + + if(NavigationContext.QueryString.TryGetValue(Constants.ParamName, out this.chairName)) + { + this.PageHeadline.Text = this.chairName; + } + + if (NavigationContext.QueryString.TryGetValue(Constants.ParamUrl, out url)) { - this.PageHeadline.Text = chairName; this.WebBrowser.Navigate(new Uri(url, UriKind.Absolute)); } + else + { + CampusAppWP8.Feed.Departments.DepartmentFeed temp = DepartmentIndexPage.Feed; + + if (temp != null) + { + this.OnFeedReady(); + } + else + { + DepartmentIndexPage.InitFeed(this.OnFeedReady); + } + } } #endregion @@ -64,6 +90,53 @@ namespace CampusAppWP8.Pages.Departments private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e) { } + + /// + /// On feed ready. + /// + private void OnFeedReady() + { + if (this.feedLoadedFlag == false) + { + this.feedLoadedFlag = true; + DepartmentIndexPage.Feed.OnLoaded -= this.OnFeedReady; + + ChairModel chair = null; + ObservableCollection tempModelList = DepartmentIndexPage.GetFeed().Model.Faculties; + + foreach (CampusAppWPortalLib8.Model.Departments.FacultyModel model in tempModelList) + { + if (chair == null) + { + chair = model.GetChairModel(this.chairName); + } + } + + if (chair != null) + { + this.WebBrowser.Navigate(new Uri(chair.Url, UriKind.Absolute)); + } + else + { + MessageBoxResult res = MessageBox.Show(AppResources.DepartmentNotFound + " " + AppResources.DepartmentForwarding, string.Empty, MessageBoxButton.OKCancel); + + switch (res) + { + case MessageBoxResult.OK: + { + NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentIndexPage, UriKind.Relative)); + } + break; + case MessageBoxResult.Cancel: + { + NavigationService.GoBack(); + } + break; + } + } + } + } + #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs index 1dd9291d..e4e34bbb 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Departments/DepartmentPage.xaml.cs @@ -205,7 +205,7 @@ namespace CampusAppWP8.Pages.Departments FrameworkElement infoBtn = sender as FrameworkElement; string chairName = ((this.lastClickedBtn as Button).Content as TextBlock).Text.ToString(); - NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentInfoPage + "?url=" + infoBtn.Tag.ToString() + "&name=" + chairName, UriKind.Relative)); + NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentInfoPage + "?" + Constants.ParamUrl + "=" + infoBtn.Tag.ToString() + "&" + Constants.ParamName + "=" + chairName, UriKind.Relative)); } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml index 0aac8c25..059d98f6 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml @@ -7,6 +7,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button" + xmlns:header="clr-namespace:CampusAppWP8.Utility.Lui.Header" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" @@ -23,10 +24,13 @@ + + @@ -39,7 +43,15 @@ - + + + + + + + + + diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs index 73f8b349..b9ec7697 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs @@ -125,6 +125,26 @@ namespace CampusAppWP8.Pages.Events base.OnNavigatedFrom(e); } + /// + /// Methods overrides the OnOrientationChanged-Method. + /// + /// orientation changed event args. + protected override void OnOrientationChanged(OrientationChangedEventArgs e) + { + if (e.Orientation == PageOrientation.Landscape + || e.Orientation == PageOrientation.LandscapeLeft + || e.Orientation == PageOrientation.LandscapeRight) + { + ApplicationBar.Mode = ApplicationBarMode.Default; + } + else + { + ApplicationBar.Mode = ApplicationBarMode.Minimized; + } + + base.OnOrientationChanged(e); + } + #endregion #region private diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml index fbc0b384..b8d10f80 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml @@ -34,13 +34,13 @@ - + - + - + diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs index c2b20c99..e13fbe5c 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs @@ -21,7 +21,7 @@ namespace CampusAppWP8.Pages.Events using CampusAppWPortalLib8.Model.RSS; /// - /// EventPage, where every event fees has his own PivotItem. + /// EventPage, where every event feed has his own PivotItem. /// public partial class EventPage : PhoneApplicationPage { diff --git a/CampusAppWP8/CampusAppWP8/Pages/Exams/Exams.xaml b/CampusAppWP8/CampusAppWP8/Pages/Exams/Exams.xaml index b46de0a3..cdc12571 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Exams/Exams.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/Exams/Exams.xaml @@ -7,6 +7,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button" + xmlns:header="clr-namespace:CampusAppWP8.Utility.Lui.Header" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" @@ -16,9 +17,23 @@ - - - + + + + + + + + + + + + + + + + +