From 0b3aec7084796223df227b40216e03d05b1d3eda Mon Sep 17 00:00:00 2001 From: stubbfel Date: Mon, 18 Nov 2013 16:47:39 +0100 Subject: [PATCH 01/10] add handler --- .../CampusAppWP8/Model/Setting/AppSettings.cs | 14 -------------- .../Model/Setting/BTUTagHandlerTypes.cs | 5 ++++- .../Setting/TagHandlerListPickerItemListModel.cs | 5 +++-- .../CampusAppWP8/Pages/BTUTag/BTUTagInfo.xaml.cs | 2 +- .../CampusAppWP8/Pages/Dev/QRScanner.xaml.cs | 2 +- .../Pages/Setting/AppSettingPage.xaml.cs | 2 +- .../Resources/AppResources.Designer.cs | 9 +++++++++ .../CampusAppWP8/Resources/AppResources.resx | 3 +++ 8 files changed, 22 insertions(+), 20 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Model/Setting/AppSettings.cs b/CampusAppWP8/CampusAppWP8/Model/Setting/AppSettings.cs index b1a1b976..4b062399 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Setting/AppSettings.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Setting/AppSettings.cs @@ -14,20 +14,6 @@ namespace CampusAppWP8.Model.Setting /// Stubbfel, 15.10.2013. public class AppSettings { - #region Enum - - /// Values that represent BTUTagDefaultHandler. - /// Stubbfel, 15.10.2013. - public enum BTUTagDefaultHandler - { - /// An enum constant representing the information page option. - InfoPage = 0, - - /// An enum constant representing the campus map option. - CampusMap = 1 - } - - #endregion #region Property /// Gets or sets a value indicating whether the GeoWatch-Flag. diff --git a/CampusAppWP8/CampusAppWP8/Model/Setting/BTUTagHandlerTypes.cs b/CampusAppWP8/CampusAppWP8/Model/Setting/BTUTagHandlerTypes.cs index 1967f073..b5586f72 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Setting/BTUTagHandlerTypes.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Setting/BTUTagHandlerTypes.cs @@ -16,6 +16,9 @@ namespace CampusAppWP8.Model.Setting InfoPage = 0, /// An enum constant representing the campus map option. - CampusMap = 1 + CampusMap = 1, + + /// An enum constant representing the date creation option. + DateCreation = 2 } } diff --git a/CampusAppWP8/CampusAppWP8/Model/Setting/TagHandlerListPickerItemListModel.cs b/CampusAppWP8/CampusAppWP8/Model/Setting/TagHandlerListPickerItemListModel.cs index 95383c6b..4eced32c 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Setting/TagHandlerListPickerItemListModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Setting/TagHandlerListPickerItemListModel.cs @@ -37,8 +37,9 @@ namespace CampusAppWP8.Model.Setting /// protected override void LoadList() { - this.AddItem(new ListPickerItemModel(AppSettings.BTUTagDefaultHandler.InfoPage.ToString(), AppResources.Setting_TagHandlerInfo)); - this.AddItem(new ListPickerItemModel(AppSettings.BTUTagDefaultHandler.CampusMap.ToString(), AppResources.Setting_TagHandlerMap)); + this.AddItem(new ListPickerItemModel(BTUTagDefaultHandler.InfoPage.ToString(), AppResources.Setting_TagHandlerInfo)); + this.AddItem(new ListPickerItemModel(BTUTagDefaultHandler.CampusMap.ToString(), AppResources.Setting_TagHandlerMap)); + this.AddItem(new ListPickerItemModel(BTUTagDefaultHandler.DateCreation.ToString(), AppResources.Setting_TagHandlerDate)); } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/BTUTag/BTUTagInfo.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/BTUTag/BTUTagInfo.xaml.cs index 9c9ffa4a..5efc6e82 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/BTUTag/BTUTagInfo.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/BTUTag/BTUTagInfo.xaml.cs @@ -48,7 +48,7 @@ namespace CampusAppWP8.Pages.BTTTag { if (NavigationMode.Back == e.NavigationMode) { - Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).Value); + Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).Value); } } diff --git a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs index 9add78fa..c9057d98 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs @@ -250,7 +250,7 @@ namespace CampusAppWP8.Pages.Dev } else { - if (AppSettings.BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler) + if (BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler) { this.GoToCampusMappage(result.Text); } diff --git a/CampusAppWP8/CampusAppWP8/Pages/Setting/AppSettingPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Setting/AppSettingPage.xaml.cs index 6d6c6f86..3527c4a9 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Setting/AppSettingPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Setting/AppSettingPage.xaml.cs @@ -50,7 +50,7 @@ namespace CampusAppWP8.Pages.Setting { Settings.AppSetting.GeoWatchEnable = GeoWatchToggle.IsChecked.Value; Settings.AppSetting.OnlyWifi = OnlyWiFiToggle.IsChecked.Value; - Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.AppSettings.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).Value); + Settings.AppSetting.TagDefaultHandler = (CampusAppWP8.Model.Setting.BTUTagDefaultHandler)Enum.Parse(typeof(CampusAppWP8.Model.Setting.BTUTagDefaultHandler), ((CampusAppWPortalLib8.Model.Utility.ListPickerItemModel)this.TagHandler.SelectedItem).Value); } } diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs index 1defd00d..dfaf1fb0 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs @@ -1230,6 +1230,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Termin erstellen ähnelt. + /// + public static string Setting_TagHandlerDate { + get { + return ResourceManager.GetString("Setting_TagHandlerDate", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die BTU-Tag-Informationsseite anzeigen ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx index 4d494990..24765ab2 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx @@ -617,4 +617,7 @@ Wochenplan + + Termin erstellen + \ No newline at end of file From 47660d34ea0f7ba90e00ae9b1456fed34cac6229 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Mon, 18 Nov 2013 17:10:11 +0100 Subject: [PATCH 02/10] enable datecreation to qrcode --- .../CampusAppWP8/Pages/Dev/QRScanner.xaml.cs | 50 ++++++++++++++----- .../CampusAppWP8/Pages/StartPage.xaml.cs | 36 ++++++------- 2 files changed, 55 insertions(+), 31 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs index c9057d98..1261966f 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Dev/QRScanner.xaml.cs @@ -226,7 +226,7 @@ namespace CampusAppWP8.Pages.Dev var result = this.barcodeReader.Decode(this.bit); - if (result != null ) + if (result != null) { Dispatcher.BeginInvoke(delegate { @@ -250,19 +250,24 @@ namespace CampusAppWP8.Pages.Dev } else { - if (BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler) + string qrContent = result.Text; + switch (Settings.AppSetting.TagDefaultHandler) { - this.GoToCampusMappage(result.Text); - } - else - { - MessageBoxResult msgResult = MessageBoxes.ShowBtuTagInfoOkCancelMessageBox(result.Text); - if (msgResult.Equals(MessageBoxResult.OK)) - { - string urlString = Constants.PathBTUTag_Info; - Uri url = new Uri(urlString as string, UriKind.Relative); - this.NavigationService.Navigate(url); - } + case BTUTagDefaultHandler.CampusMap: + this.GoToCampusMappage(qrContent); + break; + case BTUTagDefaultHandler.DateCreation: + this.GoToAppointment(qrContent); + break; + default: + MessageBoxResult msgResult = MessageBoxes.ShowBtuTagInfoOkCancelMessageBox(result.Text); + if (msgResult.Equals(MessageBoxResult.OK)) + { + string urlString = Constants.PathBTUTag_Info; + Uri url = new Uri(urlString as string, UriKind.Relative); + this.NavigationService.Navigate(url); + } + break; } } }); @@ -285,6 +290,25 @@ namespace CampusAppWP8.Pages.Dev NavigationService.Navigate(url); } + /// Go to appointment. + /// Fiedler, 15.11.2013. + /// The tag content. + private void GoToAppointment(string tagContent) + { + string pid = Wp8StringManager.FilterPlaceIdinQRResultString(tagContent); + string urlStr = Constants.PathTimeTable_AppointmentEdit + "?" + Constants.ParamPID + "=" + pid; + Uri url = new Uri(urlStr, UriKind.Relative); + + if (this.Dispatcher != null) + { + this.Dispatcher.BeginInvoke(new Action(() => NavigationService.Navigate(url))); + } + else + { + NavigationService.Navigate(url); + } + } + /// Capture thread function. /// fiedlchr, 15.10.2013. private void CaptureThreadFunc() diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs index 972a122b..e444dcfc 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs @@ -217,7 +217,7 @@ namespace CampusAppWP8.Pages //this.ContentPanel.Margin = new Thickness(76, -24, 24, 0); // LandscapeRight //this.ContentPanel.Margin = new Thickness(24, -24, 76, 0); // LandscapeLeft //this.AppTitle.Margin = new Thickness(12, 17, 0, 28); - + if (!this.Row3.Children.Contains(this.MailAppButton) && !this.Row3.Children.Contains(this.OpenHoursAppButton) && !this.Row3.Children.Contains(this.LinkAppButton)) @@ -437,25 +437,25 @@ namespace CampusAppWP8.Pages } else { - this.GoToAppointment(nfcContent); - /* removed for testing - if (AppSettings.BTUTagDefaultHandler.CampusMap == Settings.AppSetting.TagDefaultHandler) + switch (Settings.AppSetting.TagDefaultHandler) { - // search for placeId - this.GoToCampusMappage(nfcContent); + case BTUTagDefaultHandler.CampusMap: + this.GoToCampusMappage(nfcContent); + break; + case BTUTagDefaultHandler.DateCreation: + this.GoToAppointment(nfcContent); + break; + default: + if (this.Dispatcher != null) + { + this.Dispatcher.BeginInvoke(new Action(() => this.ShowBtuTagMessageBox())); + } + else + { + this.ShowBtuTagMessageBox(); + } + break; } - else - { - if (this.Dispatcher != null) - { - this.Dispatcher.BeginInvoke(new Action(() => this.ShowBtuTagMessageBox())); - } - else - { - this.ShowBtuTagMessageBox(); - } - } - */ } this.ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler); From 5c21a61167364a60ef6e6453ceecfe366443729a Mon Sep 17 00:00:00 2001 From: stubbfel Date: Mon, 18 Nov 2013 18:41:47 +0100 Subject: [PATCH 03/10] add lecutre dates --- .../Icons/DarkTheme/stundenplan_add_159.png | Bin 0 -> 2031 bytes .../Icons/LightTheme/stundenplan_add_159.png | Bin 0 -> 1859 bytes CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj | 6 ++- .../Model/TimeTable/AppointmentListModel.cs | 10 ----- .../Pages/Lecture/ResultDetailPage.xaml | 38 ++++++++++++++++++ .../Pages/Lecture/ResultDetailPage.xaml.cs | 8 ++++ .../Resources/AppResources.Designer.cs | 9 +++++ .../CampusAppWP8/Resources/AppResources.resx | 3 ++ CampusAppWP8/CampusAppWP8/Resources/Icons.cs | 11 +++++ .../CampusAppWP8/Resources/Icons.resx | 3 ++ .../Model/Lecture/LectureDate.cs | 23 +++++++++++ 11 files changed, 99 insertions(+), 12 deletions(-) create mode 100644 CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/stundenplan_add_159.png create mode 100644 CampusAppWP8/CampusAppWP8/Assets/Icons/LightTheme/stundenplan_add_159.png diff --git a/CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/stundenplan_add_159.png b/CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/stundenplan_add_159.png new file mode 100644 index 0000000000000000000000000000000000000000..c25e0c25eaa819026cdaac210389ca3deddb8398 GIT binary patch literal 2031 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 E0H8ye%m4rY literal 0 HcmV?d00001 diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj index 00e17b16..f4b97560 100644 --- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj +++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj @@ -255,7 +255,7 @@ AppointmentCanvas.xaml - + MultiValueTextBlock.xaml @@ -542,7 +542,7 @@ Designer MSBuild:Compile - + Designer MSBuild:Compile @@ -577,12 +577,14 @@ + + diff --git a/CampusAppWP8/CampusAppWP8/Model/TimeTable/AppointmentListModel.cs b/CampusAppWP8/CampusAppWP8/Model/TimeTable/AppointmentListModel.cs index 34db3d0d..a0a43771 100644 --- a/CampusAppWP8/CampusAppWP8/Model/TimeTable/AppointmentListModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/TimeTable/AppointmentListModel.cs @@ -8,18 +8,8 @@ namespace CampusAppWP8.Model.TimeTable { - using System; - using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; - using System.Text.RegularExpressions; - using System.Windows.Shapes; - using System.Xml.Serialization; - using System.Windows.Controls; - using System.Windows.Media; - using System.Windows; - using CampusAppWP8.Utility; - using CampusAppWP8.Utility.ICSProperties; /// /// Model for appointments. diff --git a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml index c6a55cfc..cd59b504 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml @@ -70,6 +70,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs index dd005180..b2ac67bc 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs @@ -66,6 +66,14 @@ namespace CampusAppWP8.Pages.Lecture } } + /// Event handler. Called by AddCalender for click events. + /// Stubbfel, 18.11.2013. + /// Source of the event. + /// Routed event information. + private void AddCalender_Click(object sender, System.Windows.RoutedEventArgs e) + { + + } #endregion #endregion diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs index dfaf1fb0..24cf4571 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs @@ -555,6 +555,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die Veranstaltungstermine ähnelt. + /// + public static string LectureApp_LectureDates { + get { + return ResourceManager.GetString("LectureApp_LectureDates", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die Veranstaltungsname ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx index 24765ab2..ca8f1dbc 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/AppResources.resx @@ -620,4 +620,7 @@ Termin erstellen + + Veranstaltungstermine + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Icons.cs b/CampusAppWP8/CampusAppWP8/Resources/Icons.cs index 3ee4d28a..d59a36d1 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Icons.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Icons.cs @@ -44,6 +44,17 @@ namespace CampusAppWP8.Resources } } + /// + /// Gets the uri string of the Calendar_Add icon. + /// + public static string Calendar_Add + { + get + { + return Themerize("stundenplan_add_159.png"); + } + } + /// /// Gets the uri string of the Campus icon. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/Icons.resx b/CampusAppWP8/CampusAppWP8/Resources/Icons.resx index c218a974..37370a4d 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Icons.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Icons.resx @@ -123,6 +123,9 @@ add_contact_159.png + + stundenplan_add_159.png + campus_159.png diff --git a/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureDate.cs b/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureDate.cs index d44efabd..885c27da 100644 --- a/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureDate.cs +++ b/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureDate.cs @@ -26,6 +26,11 @@ namespace CampusAppWPortalLib8.Model.Lecture #region Property + /// Gets or sets the identifier. + /// The identifier. + [XmlAttribute("id")] + public string Id { get; set; } + /// Gets or sets WeekDay. /// The week day. [XmlElement("wochentag")] @@ -61,6 +66,24 @@ namespace CampusAppWPortalLib8.Model.Lecture [XmlElement("enddatum")] public string EndDate { get; set; } + /// Gets from to date. + /// from to date. + public string FromToDate + { + get + { + string startDate = this.StartDate; + string endDate = this.EndDate; + + if (startDate == null || string.Empty.Equals(startDate.Trim()) || endDate == null || string.Empty.Equals(endDate.Trim())) + { + return string.Empty; + } + + return startDate + " - " + endDate; + } + } + #endregion } } From 5cb5ac0536b9575b4a85b983ace71e9e19f8894f Mon Sep 17 00:00:00 2001 From: Christian Fiedler Date: Tue, 19 Nov 2013 13:28:17 +0100 Subject: [PATCH 04/10] loading --- .../Pages/TimeTable/AppointmentEdit.xaml.cs | 11 +++++++++++ CampusAppWP8/CampusAppWP8/Resources/Constants.resx | 3 +++ .../CampusAppWP8/Resources/Constants1.Designer.cs | 9 +++++++++ 3 files changed, 23 insertions(+) diff --git a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs index 952a1922..b6c72ced 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/TimeTable/AppointmentEdit.xaml.cs @@ -70,6 +70,7 @@ namespace CampusAppWP8.Pages.TimeTable string appointmentIndexStr = string.Empty; string pid = string.Empty; + string isoStr = string.Empty; // Navigate to the selected pivotitem @@ -130,6 +131,16 @@ namespace CampusAppWP8.Pages.TimeTable } } } + else if (NavigationContext.QueryString.TryGetValue(Constants.ParamIsoKey, out isoStr)) + { + string appointmentStr = App.LoadFromIsolatedStorage(isoStr); + + AppointmentModel newModel = new AppointmentModel(appointmentStr); + + this.InTitle.Text = newModel.Title; + this.InLocation.Text = newModel.Location; + //TODO + } else { this.HeadLine.Text = AppResources.Creating; diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx index a7a62d34..6b2f5fd3 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx @@ -609,4 +609,7 @@ http://www.tu-cottbus.de/campusapp-data/canteens.php?v=1 + + isolated + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs index ea41e3aa..27b94665 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs @@ -681,6 +681,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die isolated ähnelt. + /// + public static string ParamIsoKey { + get { + return ResourceManager.GetString("ParamIsoKey", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die ActivityId ähnelt. /// From ac42cca415d25d89c63ba3a6c1fb6a2af160987c Mon Sep 17 00:00:00 2001 From: stubbfel Date: Tue, 19 Nov 2013 14:18:29 +0100 Subject: [PATCH 05/10] ad to Appointment --- .../Pages/Lecture/ResultDetailPage.xaml.cs | 223 +++++++++++++++++- .../CampusAppWP8/Utility/ICSObjectConst.cs | 76 ++++-- .../CampusAppWP8/Utility/Wp8StringManager.cs | 2 - .../Model/Lecture/LectureActivity.cs | 22 ++ .../Utility/DefaultStringManager.cs | 62 ++++- 5 files changed, 345 insertions(+), 40 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs index b2ac67bc..0f0b5749 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs @@ -8,16 +8,31 @@ //----------------------------------------------------------------------- namespace CampusAppWP8.Pages.Lecture { + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Windows; using System.Windows.Navigation; using CampusAppWP8.Model.Lecture; + using CampusAppWP8.Model.TimeTable; using CampusAppWP8.Resources; - using Microsoft.Phone.Controls; + using CampusAppWP8.Utility; + using CampusAppWP8.Utility.ICSProperties; + using CampusAppWPortalLib8.Model.Lecture; + using Microsoft.Phone.Controls; /// Class for the page which shows details of an activity. /// Stubbfel, 15.10.2013. /// public partial class ResultDetailPage : PhoneApplicationPage { + #region Member + + /// The activity. + private LectureWp8Activity activity; + + #endregion + #region Constructor /// Initializes a new instance of the class. @@ -54,25 +69,219 @@ namespace CampusAppWP8.Pages.Lecture /// Method load a certain Activity from the model. /// Stubbfel, 15.10.2013. /// id of the activity. - private void LoadActivity(int activityId) + private void LoadActivity(int activityId) { LectureWp8List list = App.LoadFromIsolatedStorage(Constants.IsolatedStorage_LectureModel); if (list != null) { - LectureWp8Activity activity = list.GetActivity(activityId); - activity.CreateLectureString(); - activity.CreateCourseString(); - this.ContentPanel.DataContext = activity; + this.activity = list.GetActivity(activityId); + this.activity.CreateLectureString(); + this.activity.CreateCourseString(); + this.ContentPanel.DataContext = this.activity; } } - /// Event handler. Called by AddCalender for click events. + /// Event handler. Called by AddCalendar for click events. /// Stubbfel, 18.11.2013. /// Source of the event. /// Routed event information. private void AddCalender_Click(object sender, System.Windows.RoutedEventArgs e) { + FrameworkElement btn = sender as FrameworkElement; + if (btn == null) + { + return; + } + string dateId = btn.Tag.ToString(); + LectureDate date = this.activity.GetDate(dateId); + AppointmentModel appoinment = this.CreateAppointment(date); + string urlString = Constants.PathTimeTable_AppointmentEdit; + + if (appoinment != null) + { + App.SaveToIsolatedStorage("LectureAppointment", ICSManager.ExportToICS(appoinment.CalendarObj)); + // urlString += "?" + this.QuerryStringName + "=" + this.QuerryStringValue; + } + + Uri url = new Uri(urlString as string, UriKind.Relative); + NavigationService.Navigate(url); + } + + /// Creates an appointment. + /// Stubbfel, 19.11.2013. + /// The date. + /// The new appointment. + private AppointmentModel CreateAppointment(LectureDate date) + { + if (date == null) + { + return null; + } + + CultureInfo german = Wp8StringManager.GermanCultur; + AppointmentModel appoinment = new AppointmentModel(); + DTStart start; + DateTime dtStart; + TimeSpan fromTime; + DTEnd end; + DateTime dtEnd; + TimeSpan toTime; + TimeSpan duration = TimeSpan.FromTicks(0); + RecurrenceRule rRule; + + // set the room + string dateValue = date.Room; + if (dateValue != null) + { + Location location = new Location(); + location.Value = dateValue; + appoinment.SetValue(location); + } + + if (this.activity != null) + { + // set Tilte + dateValue = this.activity.Title; + + if (dateValue != null) + { + Summary summary = new Summary(); + summary.Value = dateValue; + appoinment.SetValue(summary); + } + + // set cat + dateValue = this.activity.Type; + if (dateValue != null) + { + Categories category = new Categories(); + category.AddCategory(dateValue); + appoinment.SetValue(category); + } + + // set description + dateValue = this.activity.Topic; + if (dateValue != null) + { + Description desc = new Description(); + desc.Value = dateValue; + appoinment.SetValue(desc); + } + + // set orignazier + dateValue = this.activity.LecturerString; + if (dateValue != null) + { + Organizer org = new Organizer(); + org.Value = dateValue; + appoinment.SetValue(org); + } + } + + // set the startdate + dateValue = date.StartDate; + start = new DTStart(); + if (dateValue != null) + { + try + { + dtStart = DateTime.Parse(dateValue, german); + } + catch + { + dtStart = DateTime.Today; + } + } + else + { + dtStart = DateTime.Today; + } + + dateValue = date.From; + if (dateValue != null) + { + try + { + fromTime = TimeSpan.Parse(dateValue, german); + dtStart = dtStart.Add(fromTime); + duration = fromTime; + } + catch + { + } + } + + start.Value = dtStart; + appoinment.SetValue(start); + + // set the end date + dateValue = date.EndDate; + end = new DTEnd(); + if (dateValue != null) + { + try + { + dtEnd = DateTime.Parse(dateValue, german); + } + catch + { + dtEnd = DateTime.Today; + } + } + else + { + dtEnd = DateTime.Today; + } + + dateValue = date.To; + if (dateValue != null) + { + try + { + toTime = TimeSpan.Parse(dateValue, german); + dtEnd = dtEnd.Add(toTime); + duration = toTime - duration; + } + catch + { + } + } + + end.Value = dtEnd; + appoinment.SetValue(end); + + // set the duration + CampusAppWP8.Utility.ICSProperties.Duration icsDuration = new Utility.ICSProperties.Duration(); + icsDuration.Value = duration; + appoinment.SetValue(icsDuration); + + // set the RRule + rRule = new RecurrenceRule(); + rRule.Value.Add(new Tuple>(ICSValue.FREQ, new List() { ICSValueValue.WEEKLY })); + + // set by the week + dateValue = date.WeekDay; + if (dateValue != null) + { + DayOfWeek weekDay = Wp8StringManager.ToDayofWeek(dateValue, german); + rRule.Value.Add(new Tuple>(ICSValue.BY_DAY, new List() { ICSValueValue.ToICSWeekDay(weekDay) })); + } + + // set interval + dateValue = date.Interval; + if (dateValue != null) + { + string lowVal = dateValue.ToLower(); + if (lowVal.Contains("a") ^ lowVal.Contains("b")) + { + rRule.Value.Add(new Tuple>(ICSValue.INTERVAL, new List() { "2" })); + } + } + + appoinment.SetValue(rRule); + + return appoinment; } #endregion diff --git a/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs b/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs index 7652bf37..e63d51d0 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/ICSObjectConst.cs @@ -15,7 +15,7 @@ namespace CampusAppWP8.Utility public class ICSDesc { private string name = string.Empty; - + public ICSDesc() { } @@ -32,7 +32,7 @@ namespace CampusAppWP8.Utility } } - public bool Is(string tag) + public bool Is(string tag) { return this.name.Equals(tag); } @@ -41,14 +41,15 @@ namespace CampusAppWP8.Utility public class ICSParamDesc : ICSDesc { private List types = null; - - public ICSParamDesc(string name, string[] typeList) : base() + + public ICSParamDesc(string name, string[] typeList) + : base() { this.Name = name; - if((typeList != null) && (typeList.Length > 0)) + if ((typeList != null) && (typeList.Length > 0)) { - this.types = new List(); + this.types = new List(); this.types.AddRange(types); } } @@ -75,11 +76,12 @@ namespace CampusAppWP8.Utility { private List subs = null; - public ICSValueDesc(string name, ICSElemDesc[] elemList) : base() + public ICSValueDesc(string name, ICSElemDesc[] elemList) + : base() { this.Name = name; - if((elemList != null) && (elemList.Length > 0)) + if ((elemList != null) && (elemList.Length > 0)) { this.subs = new List(); this.subs.AddRange(elemList); @@ -146,11 +148,12 @@ namespace CampusAppWP8.Utility private List value = null; private Type objType; - public ICSElemDesc(Type t, ICSValueDesc[] valueList) : base() + public ICSElemDesc(Type t, ICSValueDesc[] valueList) + : base() { this.objType = t; this.Name = (this.CreateObj() as ICSClasses.Interface).GetName(); - + if ((valueList != null) && (valueList.Length > 0)) { this.value = new List(); @@ -221,7 +224,7 @@ namespace CampusAppWP8.Utility object retValue = this.CreateObj(); (retValue as ICSClasses.Interface).Set(valueString, paramString); - + return retValue; } @@ -450,7 +453,7 @@ namespace CampusAppWP8.Utility { public const string BEGIN = "BEGIN"; - public const string END = "END"; + public const string END = "END"; // Calendar Components public const string VCALENDAR = "VCALENDAR"; @@ -462,7 +465,7 @@ namespace CampusAppWP8.Utility public const string METHOD = "METHOD"; // 0-* public const string X_WR_CALNAME = "X-WR-CALNAME"; - + // Event Component public const string VEVENT = "VEVENT"; // 1-1 @@ -523,7 +526,7 @@ namespace CampusAppWP8.Utility // DT_MODIFIED public const string TIME_ZONE_URL = "TZURL"; // one of both MUST occure: 1-* - + // Time Zone: Standardc/Daylightc public const string STANDARD = "STANDARD"; public const string DAYLIGHT = "DAYLIGHT"; @@ -570,14 +573,14 @@ namespace CampusAppWP8.Utility // REPEAT // 0-* // ATTACH - - - - - - + + + + + + // ??? - + // public const string RELATED_TO = "RELATED-TO"; public const string SEQUENCE = "SEQUENCE"; } @@ -585,7 +588,7 @@ namespace CampusAppWP8.Utility public class ICSParam { // see http://tools.ietf.org/html/rfc5545 3.2. - + public const string ALT_REPRESENTATION = "ALTREP"; public const string COMMON_NAME = "CN"; public const string CALENDAR_USER_TYPE = "CUTYPE"; @@ -730,12 +733,39 @@ namespace CampusAppWP8.Utility public const string DATE = "DATE"; public const string DATE_TIME = "DATE-TIME"; // ... - public const string DAY_SU = "SU"; + public const string DAY_SU = "SU"; public const string DAY_MO = "MO"; public const string DAY_TU = "TU"; public const string DAY_WE = "WE"; public const string DAY_TH = "TH"; public const string DAY_FR = "FR"; public const string DAY_SA = "SA"; + + /// Converts a day to the ics week day. + /// Stubbfel, 19.11.2013. + /// The day. + /// day as a string. + public static string ToICSWeekDay(DayOfWeek day) + { + switch (day) + { + case DayOfWeek.Sunday: + return ICSValueValue.DAY_SU; + case DayOfWeek.Monday: + return ICSValueValue.DAY_MO; + case DayOfWeek.Tuesday: + return ICSValueValue.DAY_TU; + case DayOfWeek.Wednesday: + return ICSValueValue.DAY_WE; + case DayOfWeek.Thursday: + return ICSValueValue.DAY_TH; + case DayOfWeek.Friday: + return ICSValueValue.DAY_FR; + case DayOfWeek.Saturday: + return ICSValueValue.DAY_SA; + default: + return null; + } + } } } diff --git a/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs b/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs index 27c5b2a5..9eb1fbfb 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Wp8StringManager.cs @@ -8,8 +8,6 @@ //----------------------------------------------------------------------- namespace CampusAppWP8.Utility { - using System; - using System.Text.RegularExpressions; using CampusAppWP8.Resources; /// Class provides some special StringMethods. diff --git a/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureActivity.cs b/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureActivity.cs index f822f57a..98a14af8 100644 --- a/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureActivity.cs +++ b/CampusAppWP8/CampusAppWPortalLib8/Model/Lecture/LectureActivity.cs @@ -210,6 +210,28 @@ namespace CampusAppWPortalLib8.Model.Lecture this.CourseString = DefaultStringManager.RemoveNewLine(result); } + /// Gets a date. + /// Stubbfel, 19.11.2013. + /// The identifier. + /// The date. + public LectureDate GetDate(string id) + { + if (this.Dates == null || id == null) + { + return null; + } + + foreach (LectureDate date in this.Dates) + { + if (id.Equals(date.Id)) + { + return date; + } + } + + return null; + } + #endregion #endregion diff --git a/CampusAppWP8/CampusAppWPortalLib8/Utility/DefaultStringManager.cs b/CampusAppWP8/CampusAppWPortalLib8/Utility/DefaultStringManager.cs index b8c3bd38..07cee518 100644 --- a/CampusAppWP8/CampusAppWPortalLib8/Utility/DefaultStringManager.cs +++ b/CampusAppWP8/CampusAppWPortalLib8/Utility/DefaultStringManager.cs @@ -9,6 +9,7 @@ namespace CampusAppWPortalLib8.Utility { using System; + using System.Globalization; using System.Text.RegularExpressions; using CampusAppWPortalLib8.Resources; @@ -18,6 +19,9 @@ namespace CampusAppWPortalLib8.Utility { #region Members + /// The german culture. + public static readonly CultureInfo GermanCulture = new CultureInfo("de-DE"); + /// Patter for Html-Tags. private static readonly string HtmlTagPattern = "<.*?>"; @@ -127,7 +131,7 @@ namespace CampusAppWPortalLib8.Utility /// the id if it was found it in the string otherwise null. public static string FilterPlaceIdinQRResultString(string qrcodeResult) { - if (qrcodeResult == null) + if (qrcodeResult == null) { return null; } @@ -197,18 +201,18 @@ namespace CampusAppWPortalLib8.Utility return null; } - /// Count character. - /// Fiedler, 27.08.2013. - /// input string. - /// The character. - /// The total number of the specified character in the string. + /// Count a certain character. + /// Fiedler, 27.08.2013. + /// input string. + /// The character. + /// The total number of the specified character in the string. public static int CountChar(string str, char c) { int retValue = 0; - foreach(char tc in str) + foreach (char tc in str) { - if(tc.Equals(c) == true) + if (tc.Equals(c) == true) { retValue++; } @@ -216,6 +220,48 @@ namespace CampusAppWPortalLib8.Utility return retValue; } + + /// Converts this object to a day of the week. + /// Stubbfel, 19.11.2013. + /// The input day. + /// The culture. + /// The given data converted to a DayOfWeek. + public static DayOfWeek ToDayofWeek(string inputDay, CultureInfo culture) + { + if (inputDay == null || culture == null) + { + return 0; + } + + inputDay = inputDay.Trim().ToLower(); + string[] days = culture.DateTimeFormat.DayNames; + + int i = 0; + foreach (string day in days) + { + if (inputDay.Equals(day.ToLower())) + { + return (DayOfWeek)i; + } + + i++; + } + + // look for AbbreviatedDayNames + days = culture.DateTimeFormat.AbbreviatedDayNames; + i = 0; + foreach (string day in days) + { + if (inputDay.Equals(day.ToLower())) + { + return (DayOfWeek)i; + } + + i++; + } + + return 0; + } #endregion } } From 697256e49dff4ebdda45d70233d35e3684b0cadc Mon Sep 17 00:00:00 2001 From: stubbfel Date: Tue, 19 Nov 2013 15:21:49 +0100 Subject: [PATCH 06/10] add appointment to eventpage --- .../Pages/Events/EventPage.xaml.cs | 89 ++++++++++++++++++- .../Pages/Lecture/ResultDetailPage.xaml.cs | 4 +- .../CampusAppWP8/Resources/Constants.resx | 6 ++ .../Resources/Constants1.Designer.cs | 18 ++++ 4 files changed, 113 insertions(+), 4 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs index 8f9829bb..a764eb2f 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs @@ -10,15 +10,19 @@ namespace CampusAppWP8.Pages.Events { using System; using System.Collections.Generic; + using System.Globalization; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Navigation; - using Windows.Phone.Speech.Synthesis; + using CampusAppWP8.Model.TimeTable; using CampusAppWP8.Resources; + using CampusAppWP8.Utility; + using CampusAppWP8.Utility.ICSProperties; using CampusAppWP8.Utility.Lui.Page; using CampusAppWPortalLib8.Model.RSS; using Microsoft.Phone.Shell; + using Windows.Phone.Speech.Synthesis; /// EventPage, where every event feed has his own PivotItem. /// Stubbfel, 22.10.2013. @@ -39,6 +43,9 @@ namespace CampusAppWP8.Pages.Events /// The is in speech. private volatile bool isInSpeech = false; + /// The event model. + private RSSModel eventModel; + #endregion #region Constructor @@ -57,10 +64,16 @@ namespace CampusAppWP8.Pages.Events ApplicationBarIconButton ttsBtn = new ApplicationBarIconButton(); ttsBtn.IconUri = new Uri(Icons.TextToSpeech, UriKind.Relative); - ttsBtn.Text = AppResources.TextToSpeech_Btn; + ttsBtn.Text = AppResources.Add; ttsBtn.Click += new EventHandler(this.EventTextToSpeech_Click); ApplicationBar.Buttons.Add(ttsBtn); + ApplicationBarIconButton addCalBtn = new ApplicationBarIconButton(); + addCalBtn.IconUri = new Uri(Icons.Calendar_Add, UriKind.Relative); + addCalBtn.Text = AppResources.TextToSpeech_Btn; + addCalBtn.Click += new EventHandler(this.AddCalender_Click); + ApplicationBar.Buttons.Add(addCalBtn); + this.isNewInstance = true; this.synth = new SpeechSynthesizer(); @@ -229,6 +242,78 @@ namespace CampusAppWP8.Pages.Events } } + /// Event handler. Called by AddCalendar for click events. + /// Stubbfel, 19.11.2013. + /// parent pivot object. + /// Routed event information. + private void AddCalender_Click(object sender, EventArgs e) + { + this.eventModel = EventIndexPage.GetEventFeed().Model.Channel[0].Item[this.EventPivot.SelectedIndex]; + AppointmentModel appoinment = this.CreateAppointment(this.eventModel); + string urlString = Constants.PathTimeTable_AppointmentEdit; + + if (appoinment != null) + { + App.SaveToIsolatedStorage(Constants.IsolatedStorage_EventAppointment, ICSManager.ExportToICS(appoinment.CalendarObj)); + urlString += "?" + Constants.ParamIsoKey + "=" + Constants.IsolatedStorage_EventAppointment; + } + + Uri url = new Uri(urlString as string, UriKind.Relative); + NavigationService.Navigate(url); + } + + /// Creates an appointment. + /// Stubbfel, 19.11.2013. + /// The event model. + /// The new appointment. + private AppointmentModel CreateAppointment(RSSModel eventModel) + { + if (eventModel == null) + { + return null; + } + + CultureInfo german = Wp8StringManager.GermanCultur; + AppointmentModel appoinment = new AppointmentModel(); + DateTime time = eventModel.DTTimestamp; + DTStart start = new DTStart(); + start.Value = time; + + string dateValue = eventModel.Title; + + if (dateValue != null) + { + Summary summary = new Summary(); + summary.Value = dateValue; + appoinment.SetValue(summary); + } + + // set cat + Categories category = new Categories(); + category.AddCategory("Veranstaltung"); + appoinment.SetValue(category); + + // set description + dateValue = this.eventModel.Text; + if (dateValue != null) + { + Description desc = new Description(); + desc.Value = dateValue; + appoinment.SetValue(desc); + } + + // set url + dateValue = this.eventModel.Link; + if (dateValue != null) + { + Url url = new Url(); + url.Value = dateValue; + appoinment.SetValue(url); + } + + return appoinment; + } + #endregion #endregion diff --git a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs index 0f0b5749..6f242356 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs @@ -100,8 +100,8 @@ namespace CampusAppWP8.Pages.Lecture if (appoinment != null) { - App.SaveToIsolatedStorage("LectureAppointment", ICSManager.ExportToICS(appoinment.CalendarObj)); - // urlString += "?" + this.QuerryStringName + "=" + this.QuerryStringValue; + App.SaveToIsolatedStorage(Constants.IsolatedStorage_LectureAppointment, ICSManager.ExportToICS(appoinment.CalendarObj)); + urlString += "?" + Constants.ParamIsoKey + "=" + Constants.IsolatedStorage_LectureAppointment; } Uri url = new Uri(urlString as string, UriKind.Relative); diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx index 6b2f5fd3..aff32e18 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx @@ -612,4 +612,10 @@ isolated + + LectureAppointment + + + EventAppointment + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs index 27b94665..c0ded70b 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs @@ -474,6 +474,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die EventAppointment ähnelt. + /// + public static string IsolatedStorage_EventAppointment { + get { + return ResourceManager.GetString("IsolatedStorage_EventAppointment", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_EventRSSModel ähnelt. /// @@ -483,6 +492,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die LectureAppointment ähnelt. + /// + public static string IsolatedStorage_LectureAppointment { + get { + return ResourceManager.GetString("IsolatedStorage_LectureAppointment", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die LectureModel ähnelt. /// From cba34ffa602a798c43a9fe77026a181da86fdf80 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Wed, 20 Nov 2013 15:37:42 +0100 Subject: [PATCH 07/10] new startpage layout --- .../CampusAppWP8/Pages/StartPage.xaml | 491 ++++++++++-------- .../CampusAppWP8/Pages/StartPage.xaml.cs | 80 +-- .../CampusAppWP8/Styles/StartPageStyles.xaml | 4 +- 3 files changed, 288 insertions(+), 287 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml index 99b2348a..39ce5412 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml @@ -18,231 +18,274 @@ - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + - - - - - - - - - - - - - + + + + + - + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + - + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + - + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs index e444dcfc..c083222b 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs @@ -54,52 +54,6 @@ namespace CampusAppWP8.Pages { this.InitializeComponent(); - 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; - ApplicationBarMenuItem menuItem6 = ApplicationBar.MenuItems[5] as ApplicationBarMenuItem; - - if (menuItem1 != null) - { - menuItem1.Text = AppResources.Setting_UserProfilAppBarTitle; - } - - if (menuItem2 != null) - { - menuItem2.Text = AppResources.Setting_ApplAppBarTitle; - } - - if (menuItem3 != null) - { - menuItem3.Text = AppResources.App_ScanQR; - } - - if (menuItem4 != null) - { - menuItem4.Text = AppResources.App_ScanNfc; - } - - if (menuItem5 != null) - { - menuItem5.Text = AppResources.Setting_ImpressumTitle; - } - else - { - /* - ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count - 1); - ApplicationBar.MenuItems.RemoveAt(ApplicationBar.MenuItems.Count - 1); - */ - ApplicationBar.MenuItems.Remove(menuItem3); - ApplicationBar.MenuItems.Remove(menuItem4); - } - - if (menuItem6 != null) - { - menuItem6.Text = AppResources.TimeTableApp_Title; - } - TimeTable.TimeTable.InitFeed(); @@ -184,24 +138,24 @@ namespace CampusAppWP8.Pages //this.ContentPanel.Margin = new Thickness(12, 0, 12, 12); //this.AppTitle.Margin = new Thickness(12, 17, 0, 28); - if (!this.Row0.Children.Contains(this.MailAppButton) - && !this.Row1.Children.Contains(this.OpenHoursAppButton) - && !this.Row2.Children.Contains(this.LinkAppButton)) - { - return; - } + /* if (!this.Row0.Children.Contains(this.MailAppButton) + && !this.Row1.Children.Contains(this.OpenHoursAppButton) + && !this.Row2.Children.Contains(this.LinkAppButton)) + { + return; + } - this.Row0.Children.Remove(this.MailAppButton); - this.Row3.Children.Add(this.MailAppButton); - this.MailAppButton.SetValue(Grid.ColumnProperty, 0); + this.Row0.Children.Remove(this.MailAppButton); + this.Row3.Children.Add(this.MailAppButton); + this.MailAppButton.SetValue(Grid.ColumnProperty, 0); - this.Row1.Children.Remove(this.OpenHoursAppButton); - this.Row3.Children.Add(this.OpenHoursAppButton); - this.OpenHoursAppButton.SetValue(Grid.ColumnProperty, 1); + this.Row1.Children.Remove(this.OpenHoursAppButton); + this.Row3.Children.Add(this.OpenHoursAppButton); + this.OpenHoursAppButton.SetValue(Grid.ColumnProperty, 1); - this.Row2.Children.Remove(this.LinkAppButton); - this.Row3.Children.Add(this.LinkAppButton); - this.LinkAppButton.SetValue(Grid.ColumnProperty, 2); + this.Row2.Children.Remove(this.LinkAppButton); + this.Row3.Children.Add(this.LinkAppButton); + this.LinkAppButton.SetValue(Grid.ColumnProperty, 2); */ } /// Raises the orientation changed event. @@ -217,7 +171,7 @@ namespace CampusAppWP8.Pages //this.ContentPanel.Margin = new Thickness(76, -24, 24, 0); // LandscapeRight //this.ContentPanel.Margin = new Thickness(24, -24, 76, 0); // LandscapeLeft //this.AppTitle.Margin = new Thickness(12, 17, 0, 28); - +/* if (!this.Row3.Children.Contains(this.MailAppButton) && !this.Row3.Children.Contains(this.OpenHoursAppButton) && !this.Row3.Children.Contains(this.LinkAppButton)) @@ -235,7 +189,7 @@ namespace CampusAppWP8.Pages this.Row3.Children.Remove(this.LinkAppButton); this.Row2.Children.Add(this.LinkAppButton); - this.LinkAppButton.SetValue(Grid.ColumnProperty, 3); + this.LinkAppButton.SetValue(Grid.ColumnProperty, 3);*/ } /// Method Navigate to diff --git a/CampusAppWP8/CampusAppWP8/Styles/StartPageStyles.xaml b/CampusAppWP8/CampusAppWP8/Styles/StartPageStyles.xaml index 1aec455a..a65e6405 100644 --- a/CampusAppWP8/CampusAppWP8/Styles/StartPageStyles.xaml +++ b/CampusAppWP8/CampusAppWP8/Styles/StartPageStyles.xaml @@ -16,8 +16,8 @@ - - + + + + + + + + + \ No newline at end of file From d81599f3679a63dfe1fd71210c6cc0211d35da42 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Thu, 21 Nov 2013 13:23:04 +0100 Subject: [PATCH 09/10] finish new startpage --- CampusAppWP8/CampusAppWP8/App.xaml.cs | 2 +- .../CampusAppWP8/Pages/StartPage.xaml | 398 +++++++++--------- .../CampusAppWP8/Pages/StartPage.xaml.cs | 152 +------ .../CampusAppWP8/Resources/Constants.resx | 3 + .../Resources/Constants1.Designer.cs | 9 + .../Utility/Lui/Tiles/TileCreator.cs | 39 ++ 6 files changed, 266 insertions(+), 337 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/App.xaml.cs b/CampusAppWP8/CampusAppWP8/App.xaml.cs index 65acbc71..3b4121ce 100644 --- a/CampusAppWP8/CampusAppWP8/App.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/App.xaml.cs @@ -212,7 +212,7 @@ namespace CampusAppWP8 // Dieser Code wird beim Deaktivieren der Anwendung nicht ausgeführt private void Application_Closing(object sender, ClosingEventArgs e) { - // Sicherstellen, dass der erforderliche Anwendungszustand hier beibehalten wird + App.SaveToIsolatedStorage("StartPageIndex", null); } // Code, der bei einem Navigationsfehler ausgeführt wird diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml index d398b500..2e3e784e 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml @@ -19,53 +19,54 @@ - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + @@ -77,10 +78,10 @@ - - - - + + + + @@ -92,10 +93,10 @@ - - - - + + + + @@ -107,10 +108,10 @@ - - - - + + + + @@ -119,158 +120,160 @@ - + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - + + - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + diff --git a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs index c083222b..2b55eb1e 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs @@ -81,7 +81,7 @@ namespace CampusAppWP8.Pages #region protected - /// Methods overrides the OnNavigatedTo-Method. + /// Methods overrides the OnNavigatedTo-Method. /// Stubbfel, 15.10.2013. /// protected override void OnNavigatedTo(NavigationEventArgs e) @@ -90,7 +90,7 @@ namespace CampusAppWP8.Pages if (device != null) { this.ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler); - } + } } /// Methods overrides the OnNavigatedFrom-Method. @@ -125,138 +125,13 @@ namespace CampusAppWP8.Pages this.initCourseList.SaveData(); } - /// Raises the orientation changed event. - /// Fiedler, 22.10.2013. - /// - /// ### Event information to send to registered event handlers. - protected override void OnSwitchedToPortrait(OrientationChangedEventArgs e) - { - base.OnSwitchedToPortrait(e); - - this.ApplicationBar.Opacity = 0.5; - - //this.ContentPanel.Margin = new Thickness(12, 0, 12, 12); - //this.AppTitle.Margin = new Thickness(12, 17, 0, 28); - - /* if (!this.Row0.Children.Contains(this.MailAppButton) - && !this.Row1.Children.Contains(this.OpenHoursAppButton) - && !this.Row2.Children.Contains(this.LinkAppButton)) - { - return; - } - - this.Row0.Children.Remove(this.MailAppButton); - this.Row3.Children.Add(this.MailAppButton); - this.MailAppButton.SetValue(Grid.ColumnProperty, 0); - - this.Row1.Children.Remove(this.OpenHoursAppButton); - this.Row3.Children.Add(this.OpenHoursAppButton); - this.OpenHoursAppButton.SetValue(Grid.ColumnProperty, 1); - - this.Row2.Children.Remove(this.LinkAppButton); - this.Row3.Children.Add(this.LinkAppButton); - this.LinkAppButton.SetValue(Grid.ColumnProperty, 2); */ - } - - /// Raises the orientation changed event. - /// Fiedler, 22.10.2013. - /// - /// ### Event information to send to registered event handlers. - protected override void OnSwitchedToLandscape(OrientationChangedEventArgs e) - { - base.OnSwitchedToLandscape(e); - - this.ApplicationBar.Opacity = 1.0; - - //this.ContentPanel.Margin = new Thickness(76, -24, 24, 0); // LandscapeRight - //this.ContentPanel.Margin = new Thickness(24, -24, 76, 0); // LandscapeLeft - //this.AppTitle.Margin = new Thickness(12, 17, 0, 28); -/* - if (!this.Row3.Children.Contains(this.MailAppButton) - && !this.Row3.Children.Contains(this.OpenHoursAppButton) - && !this.Row3.Children.Contains(this.LinkAppButton)) - { - return; - } - - this.Row3.Children.Remove(this.MailAppButton); - this.Row0.Children.Add(this.MailAppButton); - this.MailAppButton.SetValue(Grid.ColumnProperty, 3); - - this.Row3.Children.Remove(this.OpenHoursAppButton); - this.Row1.Children.Add(this.OpenHoursAppButton); - this.OpenHoursAppButton.SetValue(Grid.ColumnProperty, 3); - - this.Row3.Children.Remove(this.LinkAppButton); - this.Row2.Children.Add(this.LinkAppButton); - this.LinkAppButton.SetValue(Grid.ColumnProperty, 3);*/ - } - /// Method Navigate to /// Stubbfel, 15.10.2013. /// Caller of the function. /// some EventArgs. - private void ApplicationBarMenuItem_Click(object sender, EventArgs e) - { - Uri url = new Uri(Constants.PathSetting_User, UriKind.Relative); - NavigationService.Navigate(url); - } - - /// Method Navigate to - /// Stubbfel, 15.10.2013. - /// Caller of the function. - /// some EventArgs. - private void ApplicationBarMenuItem2_Click(object sender, EventArgs e) - { - Uri url = new Uri(Constants.PathSetting_App, UriKind.Relative); - NavigationService.Navigate(url); - } - - /// Method Navigate to - /// Stubbfel, 15.10.2013. - /// Caller of the function. - /// some EventArgs. - private void ApplicationBarMenuItem4_Click(object sender, EventArgs e) + private void NFCButton_Click(object sender,RoutedEventArgs e) { MessageBoxes.ShowMainModelInfoMessageBox(AppResources.ScarNfc_Search); - // this.device.StopSubscribingForMessage(this.ndefId); - // this.ndefId = this.device.SubscribeForMessage(Constants.NCFMessageType_NDEF, this.NDEFHandler); - } - - /// Event handler. Called by ApplicationBarMenuItem5 for click events. - /// Stubbfel, 14.10.2013. - /// Caller of the function. - /// Event information. - private void ApplicationBarMenuItem5_Click(object sender, EventArgs e) - { - Uri url = new Uri("/Pages/Setting/Impressum.xaml", UriKind.Relative); - NavigationService.Navigate(url); - } - - /// Event handler. Called by ApplicationBarMenuItem4 for click events. - /// Stubbfel, 15.10.2013. - /// Caller of the function. - /// Event information. - private void ApplicationBarMenuItem3_Click(object sender, EventArgs e) - { - Uri url = new Uri("/Pages/Dev/QRScanner.xaml", UriKind.Relative); - NavigationService.Navigate(url); - } - - /// Method change the Opacity of the ApplicationBar. - /// Stubbfel, 15.10.2013. - /// Caller of the function. - /// some EventArgs. - private void ApplicationBar_StateChanged(object sender, ApplicationBarStateChangedEventArgs e) - { - if (e.IsMenuVisible) - { - ApplicationBar.Opacity = 0.99; - } - else - { - ApplicationBar.Opacity = 0.5; - } } /// Method show all OptIns. @@ -350,6 +225,15 @@ namespace CampusAppWP8.Pages case "placeNewsAppButton": TileCreator.CreatePlaceNewsTile(); break; + case "QRButton": + TileCreator.CreateQRTile(); + break; + case "NFCButton": + TileCreator.CreateNFCTile(); + break; + case "TimeTableAppButton": + TileCreator.CreateTimeTableTile(); + break; } } @@ -469,18 +353,6 @@ namespace CampusAppWP8.Pages #endregion - private void ApplicationBarMenuItem_Click_1(object sender, EventArgs e) - { - Uri url = new Uri(Constants.PathTimeTable_Day, UriKind.Relative); - NavigationService.Navigate(url); - } - #endregion - - private void ApplicationBarMenuItem_Click_2(object sender, EventArgs e) - { - Uri url = new Uri("/Pages/Dev/NFC.xaml", UriKind.Relative); - NavigationService.Navigate(url); - } } } \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx index aff32e18..34d6095c 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx @@ -618,4 +618,7 @@ EventAppointment + + /Pages/Setting/Impressum.xaml + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs index c0ded70b..58946cba 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants1.Designer.cs @@ -1050,6 +1050,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die /Pages/Setting/Impressum.xaml ähnelt. + /// + public static string PathSetting_Impressum { + get { + return ResourceManager.GetString("PathSetting_Impressum", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die /Pages/Setting/UserProfil.xaml ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs b/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs index ba0fe5aa..d2ccdae3 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs @@ -12,6 +12,7 @@ namespace CampusAppWP8.Utility.Lui.Tiles using System.Linq; using CampusAppWP8.Resources; using Microsoft.Phone.Shell; + using CampusAppWP8.Model.Setting; /// Class creates different live tiles. /// Stubbfel, 15.10.2013. @@ -147,5 +148,43 @@ namespace CampusAppWP8.Utility.Lui.Tiles { TileCreator.CreateIconicTile(AppResources.CampusMapApp_Title, Constants.PathCampusmap_Campusmap, Icons.Campus, Icons.Campus); } + + /// Creates time table tile. + /// Stubbfel, 21.11.2013. + public static void CreateTimeTableTile() + { + TileCreator.CreateIconicTile(AppResources.TimeTableApp_Title, Constants.PathTimeTable_Week, Icons.Schedule, Icons.Schedule); + } + + /// Creates qr tile. + /// Stubbfel, 21.11.2013. + public static void CreateQRTile() + { + TileCreator.CreateIconicTile(AppResources.App_ScanQR, Constants.PathQR_QRPage, Icons.Favorite, Icons.Favorite); + } + + /// Creates nfc tile. + /// Stubbfel, 21.11.2013. + public static void CreateNFCTile() + { + string path; + string name = "NFC -> "; + switch (Settings.AppSetting.TagDefaultHandler) + { + case BTUTagDefaultHandler.CampusMap: + path = Constants.PathCampusmap_Campusmap; + name += AppResources.CampusMapApp_Title; + break; + case BTUTagDefaultHandler.DateCreation: + path = Constants.PathTimeTable_Week; + name += AppResources.TimeTableApp_Title; + break; + default: + path = Constants.PathBTUTag_Info; + name += AppResources.BTUTag_Title; + break; + } + TileCreator.CreateIconicTile(name, path, Icons.Favorite, Icons.Favorite); + } } } From 70d464b4f523053654448452d3e29cbcb5577526 Mon Sep 17 00:00:00 2001 From: stubbfel Date: Thu, 21 Nov 2013 13:34:10 +0100 Subject: [PATCH 10/10] change tilestyle --- .../BTULogoKompaktversiondeutschPNGSW.png | Bin 18245 -> 21198 bytes .../Pages/Events/EventPage.xaml.cs | 2 +- .../Pages/Lecture/ResultDetailPage.xaml.cs | 2 +- .../CampusAppWP8/Properties/WMAppManifest.xml | 30 ++++++++++-------- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Assets/BTULogoKompaktversiondeutschPNGSW.png b/CampusAppWP8/CampusAppWP8/Assets/BTULogoKompaktversiondeutschPNGSW.png index 89c8372c81407f4b70ee823cdd2fba51aaf5cb36..af24ab7033e13d80acbc39e65444c1a3822db6e6 100644 GIT binary patch literal 21198 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 j$@2gy$HXKD{i%gTe~DWM4f&XpD$ diff --git a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs index a764eb2f..846b31d8 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Events/EventPage.xaml.cs @@ -273,7 +273,7 @@ namespace CampusAppWP8.Pages.Events return null; } - CultureInfo german = Wp8StringManager.GermanCultur; + CultureInfo german = Wp8StringManager.GermanCulture; AppointmentModel appoinment = new AppointmentModel(); DateTime time = eventModel.DTTimestamp; DTStart start = new DTStart(); diff --git a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs index 6f242356..6372a99a 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Lecture/ResultDetailPage.xaml.cs @@ -119,7 +119,7 @@ namespace CampusAppWP8.Pages.Lecture return null; } - CultureInfo german = Wp8StringManager.GermanCultur; + CultureInfo german = Wp8StringManager.GermanCulture; AppointmentModel appoinment = new AppointmentModel(); DTStart start; DateTime dtStart; diff --git a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml index 288b01c9..dc2c9908 100644 --- a/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml +++ b/CampusAppWP8/CampusAppWP8/Properties/WMAppManifest.xml @@ -17,25 +17,27 @@ - + Assets\ApplicationIcon.png - 0 - Assets\ApplicationIcon.png BTU CampusApp - - - - + Assets\Slides\Slide1.jpg + Assets\Slides\Slide2.jpg + Assets\Slides\Slide3.jpg + Assets\Slides\Slide4.jpg + Assets\Slides\Slide5.jpg + + + + + + + + + 0 True - - - - - - - +