diff --git a/.gitignore b/.gitignore index 93784e2d..c01e1fd7 100644 --- a/.gitignore +++ b/.gitignore @@ -192,3 +192,86 @@ CampusAppWP8/packages/Newtonsoft.Json.4.5.11/lib/winrt45/Newtonsoft.Json.xml CampusAppWP8/packages/SharpZipLib-WP7.0.86.0.518/SharpZipLib-WP7.0.86.0.518.nupkg CampusAppWP8/packages/SharpZipLib-WP7.0.86.0.518/SharpZipLib-WP7.0.86.0.518.nuspec CampusAppWP8/packages/SharpZipLib-WP7.0.86.0.518/lib/sl4-windowsphone71/SharpZipLib.WindowsPhone7.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/WPtoolkit.4.2013.08.16.nupkg +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/WPtoolkit.4.2013.08.16.nuspec +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/content/README_FIRST.txt +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/content/Toolkit.Content/ApplicationBar.Add.png +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/content/Toolkit.Content/ApplicationBar.Cancel.png +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/content/Toolkit.Content/ApplicationBar.Check.png +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/content/Toolkit.Content/ApplicationBar.Delete.png +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/content/Toolkit.Content/ApplicationBar.Select.png +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl3-wp/Microsoft.Phone.Controls.Toolkit.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/Microsoft.Phone.Controls.Toolkit.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/cs-CZ/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/da-DK/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/de-DE/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/el-GR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/en-GB/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/es-ES/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/fi-FI/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/fr-FR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/hu-HU/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/id-ID/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/it-IT/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/ja-JP/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/ko-KR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/ms-MY/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/nb-NO/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/nl-NL/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/pl-PL/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/pt-BR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/ru-RU/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/sv-SE/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/zh-CN/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/sl4-windowsphone71/zh-TW/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/Microsoft.Phone.Controls.Toolkit.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/ar-SA/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/az-Latn-AZ/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/be-BY/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/bg-BG/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/ca-ES/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/cs-CZ/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/da-DK/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/de-DE/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/el-GR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/en-GB/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/es-ES/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/es-MX/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/et-EE/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/fa-IR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/fi-FI/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/fil-PH/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/fr-CA/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/fr-FR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/he-IL/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/hi-IN/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/hr-HR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/hu-HU/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/id-ID/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/it-IT/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/ja-JP/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/kk-KZ/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/ko-KR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/lt-LT/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/lv-LV/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/mk-MK/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/ms-MY/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/nb-NO/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/nl-NL/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/pl-PL/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/pt-BR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/pt-PT/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/ro-RO/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/ru-RU/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/sk-SK/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/sl-SI/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/sq-AL/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/sr-Latn-CS/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/sv-SE/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/th-TH/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/tr-TR/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/uk-UA/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/uz-Latn-UZ/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/vi-VN/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/zh-CN/Microsoft.Phone.Controls.Toolkit.resources.dll +CampusAppWP8/packages/WPtoolkit.4.2013.08.16/lib/wp8/zh-TW/Microsoft.Phone.Controls.Toolkit.resources.dll diff --git a/CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs b/CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs index 06311c97..3502c684 100644 --- a/CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs +++ b/CampusAppWP8/CampusAppWP8/Api/GeoApi/CampusSpsApi.cs @@ -14,6 +14,7 @@ namespace CampusAppWP8.Feed.GeoApi using CampusAppWP8.Model.Utility; using CampusAppWP8.Resources; using CampusAppWP8.Utility; + using System.Device.Location; /// /// Class for SPSAPI diff --git a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj index 69a8462f..b4446480 100644 --- a/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj +++ b/CampusAppWP8/CampusAppWP8/CampusAppWP8.csproj @@ -105,7 +105,9 @@ + + @@ -426,7 +428,9 @@ + + @@ -449,13 +453,12 @@ - - ..\packages\WPToolkit.4.2013.06.11\lib\wp8\Microsoft.Phone.Controls.Toolkit.dll + + False + ..\packages\WPtoolkit.4.2013.08.16\lib\wp8\Microsoft.Phone.Controls.Toolkit.dll - - - + diff --git a/CampusAppWP8/CampusAppWP8/File/Campusmap/Offlinemap.xml b/CampusAppWP8/CampusAppWP8/File/Campusmap/Offlinemap.xml new file mode 100644 index 00000000..8d4a1592 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/File/Campusmap/Offlinemap.xml @@ -0,0 +1,295 @@ + + + + Campus Cottbus Mitte + campus + + + Campus Cottbus Süd + campus + + + Campus Senftenberg + campus + + + Campus Cottbus Nord + campus + + + Lehrgebäude 4/6 + + + Lehrgebäude 4/3 + + + Lehrgebäude 4/1 + + + Lehrgebäude 4/4 + + + Wohnheim + + + Wohnheim + + + Wohnheim + + + Wohnheim + + + Wohnheim + + + Biotechnologie + + + Lehrgebäude Musikpädagogik + + + Informations, Kommunikations und Medienzentrum + library + + + Internationales Begegnungszentrum + + + Lehrgebäude 8 + + + Laborhalle 3D + + + Gewächshaus Fakultät 4 + + + Reprographie + + + Umformer Station + + + Zentrale Einrichtung Sprachenzentrum + + + Lehrgebäude 9 + + + Baustofflabor + + + Studentenwerk Frankfurt (Oder) + + + Zentralverwaltung Hubertstraße (ZVH) + + + Wohnheim Papitzer Straße 4/5 + guest_house + + + Lehrgebäude 10 + + + Studentenwohnanlage ErichWeinertStraße + + + Studentenwohnanlage Universitätsstraße 1 + + + Studentenwohnanlage Universitätsstraße 2 + + + Studentenwohnanlage Universitätsstraße 3 + + + Zwischenbau 1 + + + Zwischenbau 3 + + + Zwischenbau 4 + + + Zwischenbau 6 + + + Zwischenbau 5 + + + Mehrzweckgebäude + + + Physiotheraphie/Medizintechnik + + + Cafeteria HL + public_building + + + Gebäude 14 + + + Laborgebäude Bauingenieurwesen Verfahrenstechni + + + Lehrgebäude Bauningenieurwesen Architektur + + + Lehrgebäude Bauningenieurwesen Architektur + + + Lehrgebäude Betriebswirtschaftslehre + + + Lehrgebäude Sozialwesen + + + Wohnheim 1 + + + Fakultät 3 / Sport + + + Laborgebäude 1B + + + Lehrgebäude 1A + + + Forschungs und Materialprüfanstalt Cottbus + + + Garagenkomplex + + + Lehrgebäude 1C + + + Lehrgebäude 3 + + + Lehrhalle 3G Verkehrtechnikhalle + + + Sporthalle 1 + + + Hörsaal 3 + + + GrundbauVersuchshalle + + + Laborgebäude 4B + + + Laborhalle 3C + + + Laborhalle 4C + + + Lehrgebäude 3A + + + Lehrgebäude 3B + + + Lehrgebäude 4A + + + Panta Rhei Halle + + + Großer Hörsaal + entrance + + + Hauptgebäude + + + Zentralverwaltung + + + Zwischenbau Lehrgebäude 2A/B + + + Lehrgebäude 2A + + + Lehrgebäude 2B + + + Lehrgebäude 2C + + + Lehrgebäude 2D + + + Zwischenbau Lehrgebäude 2C/D + + + Alte Schwimmhalle (geschlossen) + + + BTU Mensa + restaurant + + + Zentrales Hörsaalgebäude + + + Zwischenbau 2 + + + Elektrotechnik/Chemie/Verfahrenstechnik + school + + + Maschinenbau + school + + + Sporthalle + school + + + Mensa + school + + + Informatik (Labor) + school + + + Informatik + school + + + KonradZuseMedienzentrum + school + + + Hochschulbibliothek + school + + + Hochschulverwaltung/Rechenzentrum + school + + + Wohnanlage 8 + + + Lehrgebäude 4/2 + + + Lehrgebäude 4/5 + + + diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs index 6360352a..0c12cec8 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/CBMainMapModel.cs @@ -8,18 +8,24 @@ namespace CampusAppWP8.Model.Campusmap { using System.Windows; + using CampusAppWP8.Model.GeoDb; + using CampusAppWP8.Resources; + using CampusAppWP8.Utility; /// /// Class for the MapModel of the mainCampus of cottbus /// public class CBMainMapModel : MapModel { + /// Variable for the identify of the campus. + private static readonly string Campus = ((int)CampusAppWP8.Model.Setting.UserProfilModel.Campus.CB_MAIN).ToString(); + /// /// Initializes a new instance of the class. /// public CBMainMapModel() { - this.ImageSource = "/Assets/campusmap.png"; + this.ImageSource = Constants.FileMap_CBMainMap; this.ImageWidth = 2000; this.ImageHeight = 1425; this.MapImageOffsetX = -228; @@ -30,5 +36,21 @@ namespace CampusAppWP8.Model.Campusmap this.GeoOffsetX = 14.327159; this.GeoOffsetY = 51.766548; } + + /// Loads the spatial./. + /// Stubbfel, 19.08.2013. + protected override void LoadSpatials() + { + SpsModel model = XmlManager.DeserializationFileToModel(Constants.FileMap_OfflineMap); + + this.Spatial = new SpsModel(); + foreach (PlaceModel place in model.Places) + { + if (Campus.Equals(place.ParentId) || Campus.Equals(place.PlaceId)) + { + this.Spatial.Places.Add(place); + } + } + } } } diff --git a/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs b/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs index c015d99f..38e1ef38 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Campusmap/MapModel.cs @@ -11,6 +11,7 @@ namespace CampusAppWP8.Model.Campusmap using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; + using CampusAppWP8.Model.GeoDb; /// /// This Class manage the properties of a Map @@ -24,6 +25,7 @@ namespace CampusAppWP8.Model.Campusmap /// public MapModel() { + this.LoadSpatials(); } #endregion @@ -80,6 +82,10 @@ namespace CampusAppWP8.Model.Campusmap /// public Point RefPoint { get; set; } + /// Gets or sets the spatial of the map. + /// The spatial. + public SpsModel Spatial { get; set; } + #endregion #region Methods @@ -199,6 +205,11 @@ namespace CampusAppWP8.Model.Campusmap return this.ConverToMapPoint(point.X, point.Y); } + /// Loads the spatial./ + /// Stubbfel, 19.08.2013. + protected virtual void LoadSpatials() + { + } #endregion } } diff --git a/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceInformation.cs b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceInformation.cs new file mode 100644 index 00000000..ee09ea34 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceInformation.cs @@ -0,0 +1,26 @@ +//----------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 19.08.2013 +//---------------------------------------------------------------------- +namespace CampusAppWP8.Model.GeoDb +{ + using System.Xml.Serialization; + + /// Information about the place. + /// Stubbfel, 19.08.2013. + public class PlaceInformation + { + /// Gets or sets the name of the information. + /// The name of the information. + [XmlElement("placeInformationName")] + public string InformationName { get; set; } + + /// Gets or sets the information value. + /// The information value. + [XmlText] + public string InformationValue { get; set; } + } +} diff --git a/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs index 68acbbbe..876a7701 100644 --- a/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceModel.cs @@ -8,7 +8,14 @@ namespace CampusAppWP8.Model.GeoDb { + using System; + using System.Collections.ObjectModel; + using System.Device.Location; + using System.Globalization; + using System.Text.RegularExpressions; using System.Xml.Serialization; + using CampusAppWP8.Resources; + using CampusAppWP8.Utility; /// /// Model for a place of the SPSService @@ -32,5 +39,49 @@ namespace CampusAppWP8.Model.GeoDb /// [XmlAttribute("refpoint")] public string RefPoint { get; set; } + + /// Gets the geo reference point. + /// The geo reference point. + public GeoCoordinate GeoRefPoint + { + get + { + string refstring = this.RefPoint; + Regex rx = new Regex(Constants.Regex_Coordinate); + MatchCollection matches = rx.Matches(refstring); + if (matches.Count != 1) + { + return null; + } + + string[] values = matches[0].ToString().Split(' '); + + if (values.Length != 2) + { + return null; + } + + // create the GeoCoordirate + try + { + return new GeoCoordinate(double.Parse(values[1], CultureInfo.InvariantCulture), double.Parse(values[0], CultureInfo.InvariantCulture)); + } + catch (Exception ex) + { + Logger.LogException(ex); + return null; + } + } + } + + /// Gets or sets the information. + /// The information. + [XmlElement("placeInformation")] + public ObservableCollection Informations { get; set; } + + /// Gets or sets the services. + /// The services. + [XmlElement("placeService")] + public ObservableCollection Services { get; set; } } } diff --git a/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceService.cs b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceService.cs new file mode 100644 index 00000000..f0a22000 --- /dev/null +++ b/CampusAppWP8/CampusAppWP8/Model/GeoDb/PlaceService.cs @@ -0,0 +1,32 @@ +//----------------------------------------------------------------------------- +// +// Company copyright tag. +// +// stubbfel +// 19.08.2013 +//----------------------------------------------------------------------------- + +namespace CampusAppWP8.Model.GeoDb +{ + using System.Xml.Serialization; + + /// Place service. + /// Stubbfel, 19.08.2013. + public class PlaceService + { + /// Gets or sets the name of the service. + /// The name of the service. + [XmlAttribute("placeServiceName")] + public string ServiceName { get; set; } + + /// Gets or sets the SAP of an service. + /// The sap. + [XmlElement("sap")] + public string SAP { get; set; } + + /// Gets or sets the request for a place. + /// The request. + [XmlElement("request")] + public string Request { get; set; } + } +} diff --git a/CampusAppWP8/CampusAppWP8/Model/GeoDb/SpsModel.cs b/CampusAppWP8/CampusAppWP8/Model/GeoDb/SpsModel.cs index 0b4fea86..e9485e84 100644 --- a/CampusAppWP8/CampusAppWP8/Model/GeoDb/SpsModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/GeoDb/SpsModel.cs @@ -8,7 +8,9 @@ namespace CampusAppWP8.Model.GeoDb { + using System.Collections.Generic; using System.Collections.ObjectModel; + using System.Linq; using System.Xml.Serialization; /// @@ -17,10 +19,69 @@ namespace CampusAppWP8.Model.GeoDb [XmlRoot("root")] public class SpsModel { + /// Initializes a new instance of the SpsModel class. + /// Stubbfel, 20.08.2013. + public SpsModel() + { + this.Places = new ObservableCollection(); + } + /// /// Gets or sets a list of places /// [XmlElement("place")] public ObservableCollection Places { get; set; } + + /// Gets places by information. + /// Stubbfel, 19.08.2013. + /// The query. + /// (Optional) the ignore cases. + /// (Optional) name of the information. + /// The places by information. + public List GetPlacesByInformation(string query, bool ignoreCases = true, string informationName = null) + { + string querryLow = string.Empty; + IEnumerable resultplaces = null; + + // select correct statement + if (ignoreCases && informationName == null) + { + querryLow = query.ToLower(); + resultplaces = from place in this.Places + from info in place.Informations + where info.InformationValue.ToLower().Contains(querryLow) + select place; + } + else if (ignoreCases && informationName != null) + { + querryLow = query.ToLower(); + resultplaces = from place in this.Places + from info in place.Informations + where info.InformationValue.ToLower().Contains(querryLow) && info.InformationName.Equals(informationName) + select place; + } + else if (!ignoreCases && informationName == null) + { + resultplaces = from place in this.Places + from info in place.Informations + where info.InformationValue.Contains(querryLow) + select place; + } + else if (!ignoreCases && informationName != null) + { + resultplaces = from place in this.Places + from info in place.Informations + where info.InformationValue.Contains(querryLow) && info.InformationName.Equals(informationName) + select place; + } + + // null assert + if (resultplaces == null) + { + return null; + } + + return resultplaces.ToList(); + } } } diff --git a/CampusAppWP8/CampusAppWP8/Model/Setting/UserProfilModel.cs b/CampusAppWP8/CampusAppWP8/Model/Setting/UserProfilModel.cs index d92a582a..a753efca 100644 --- a/CampusAppWP8/CampusAppWP8/Model/Setting/UserProfilModel.cs +++ b/CampusAppWP8/CampusAppWP8/Model/Setting/UserProfilModel.cs @@ -122,7 +122,6 @@ namespace CampusAppWP8.Model.Setting } } - /// /// Gets or sets the defaultCampus of the user /// diff --git a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml index fc512ed1..cf91d39f 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml +++ b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml @@ -35,11 +35,11 @@ - + - + + + + + diff --git a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs index bf6ed617..ddc82665 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Campusmap/CampusMapPage.xaml.cs @@ -8,27 +8,27 @@ namespace CampusAppWP8.Pages.Campusmap { using System; + using System.Collections.Generic; + using System.Device.Location; using System.Globalization; + using System.Threading; using System.Windows; using System.Windows.Navigation; using CampusAppWP8.Model.Campusmap; + using CampusAppWP8.Model.GeoDb; using CampusAppWP8.Resources; using CampusAppWP8.Utility; using Microsoft.Phone.Controls; - /// - /// Class for the campusMap page - /// + /// Class for the campusMap page. + /// Stubbfel, 19.08.2013. public partial class CampusMapPage : PhoneApplicationPage { - /// - /// Variable for the map model - /// + /// Variable for the map model. private MapModel map; - /// - /// Initializes a new instance of the class. - /// + /// Initializes a new instance of the class. + /// Stubbfel, 19.08.2013. public CampusMapPage() { this.InitializeComponent(); @@ -36,77 +36,122 @@ namespace CampusAppWP8.Pages.Campusmap this.MapCanvas.DataContext = this.map; } - /// - /// Methods overrides the OnNavigatedTo-Method - /// - /// some NavigationEventArgs + /// Methods overrides the OnNavigatedTo-Method. + /// Stubbfel, 19.08.2013. + /// some NavigationEventArgs. protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); - this.ShowCurrentPositionDispatcher(); + MapCanvas.Children.Clear(); + this.AddPins(this.SearchPlaces("campus")); + this.ShowCurrentPositionDispatcher(); } - /// - /// Button click method - /// - /// caller object - /// some EventArgs + /// Button click method. + /// Stubbfel, 19.08.2013. + /// caller object. + /// some EventArgs. private void Button_Click(object sender, RoutedEventArgs e) { - this.AddPin(double.Parse(XPoint.Text), double.Parse(YPoint.Text)); + // this.AddPin(double.Parse(XPoint.Text), double.Parse(YPoint.Text)); } - /// - /// Add Pin to an certain position - /// - /// longitude parameter - /// latitude parameter + /// Button click method. + /// Stubbfel, 19.08.2013. + /// caller object. + /// some EventArgs. + private void Button_Click2(object sender, RoutedEventArgs e) + { + string query = QString.Text.Trim(); + + if (query.Equals(string.Empty)) + { + return; + } + + MapCanvas.Children.Clear(); + this.AddPins(this.SearchPlaces(query)); + } + + /// Searches for the first places. + /// Stubbfel, 19.08.2013. + /// The query. + /// The found places. + private List SearchPlaces(string query) + { + return this.map.Spatial.GetPlacesByInformation(query); + } + + /// Adds the pins. + /// Stubbfel, 19.08.2013. + /// The places. + private void AddPins(List places) + { + foreach (PlaceModel place in places) + { + GeoCoordinate coor = place.GeoRefPoint; + if (coor != null) + { + this.AddPin(coor.Longitude, coor.Latitude); + } + } + } + + /// Add Pin to an certain position. + /// Stubbfel, 19.08.2013. + /// longitude parameter. + /// latitude parameter. private void AddPin(double x, double y) { - MapCanvas.Children.Clear(); Point scrollPoint = this.map.GetScrollPoint(this.map.ConverToPixelPoint(this.map.ConverToMapPoint(x, y))); MapCanvas.Children.Add(this.map.AddPinFromRefPoint(this.map.ConverToPixelPoint(this.map.ConverToMapPoint(x, y)))); MapScroller.UpdateLayout(); MapScroller.ScrollToVerticalOffset(scrollPoint.Y); MapScroller.ScrollToHorizontalOffset(scrollPoint.X); - XPoint.Text = x.ToString(); - YPoint.Text = y.ToString(); + + // XPoint.Text = x.ToString(); + // YPoint.Text = y.ToString(); } - /// - /// On clicking the update button in the ApplicationBar. - /// - /// caller object - /// some EventArgs + /// On clicking the update button in the ApplicationBar. + /// Stubbfel, 19.08.2013. + /// caller object. + /// some EventArgs. private void UpdateButtonAppBar_Click(object sender, System.EventArgs e) { - this.ShowCurrentPositionDispatcher(); + this.ShowCurrentPositionDispatcher(); } - /// - /// execute ShowCurrentPosition-Method via Dispatcher - /// + /// execute ShowCurrentPosition-Method via Dispatcher. + /// Stubbfel, 19.08.2013. private void ShowCurrentPositionDispatcher() { ProgressBar.Visibility = Visibility.Visible; + Thread thread = new Thread(new ThreadStart(this.ShowCurrentPosition)); + thread.Start(); + } + + /// Method add a pin on the at the position of the phone. + /// Stubbfel, 19.08.2013. + private void ShowCurrentPosition() + { + Utilities.DetermineAndStoreCurrentPositionForce(); if (this.Dispatcher != null) { - this.Dispatcher.BeginInvoke(new Action(() => this.ShowCurrentPosition())); + this.Dispatcher.BeginInvoke(new Action(() => this.SetPinToCurrentPosition())); } else { - this.ShowCurrentPosition(); - } + this.SetPinToCurrentPosition(); + } } - /// - /// Method add a pin on the at the position of the phone - /// - private void ShowCurrentPosition() - { - Utilities.DetermineAndStoreCurrentPositionForce(); + /// Sets pin to current position. + /// Stubbfel, 19.08.2013. + private void SetPinToCurrentPosition() + { string lat = App.LoadFromAppState(Constants.GeoWatch_CurrentPosition_Lat); string log = App.LoadFromAppState(Constants.GeoWatch_CurrentPosition_Long); double x; diff --git a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs index 234d15b4..b1931f73 100644 --- a/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs +++ b/CampusAppWP8/CampusAppWP8/Pages/Mensa/MensaPage.xaml.cs @@ -15,6 +15,7 @@ namespace CampusAppWP8.Pages.Mensa using CampusAppWP8.Resources; using CampusAppWP8.Utility.Lui.MessageBoxes; using Microsoft.Phone.Controls; + using System.Threading; /// /// Class for the MensaPage @@ -99,7 +100,14 @@ namespace CampusAppWP8.Pages.Mensa /// private void SpsApiIsReady() { - this.InitializeFeed(this.campusApi.GetCampus()); + if (this.Dispatcher != null) + { + this.Dispatcher.BeginInvoke(new Action(() => this.InitializeFeed(this.campusApi.GetCampus()))); + } + else + { + this.InitializeFeed(this.campusApi.GetCampus()); + } } /// @@ -153,14 +161,8 @@ namespace CampusAppWP8.Pages.Mensa { if (Settings.AppSetting.GeoWatchEnable) { - if (this.Dispatcher != null) - { - this.Dispatcher.BeginInvoke(new Action(() => this.DeterminCurrentCampusAndLoadFeed())); - } - else - { - this.DeterminCurrentCampusAndLoadFeed(); - } + Thread thread = new Thread(new ThreadStart( this.DeterminCurrentCampusAndLoadFeed)); + thread.Start(); } else { diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs index 8509b945..ad0aba17 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs @@ -123,6 +123,24 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die /Assets/campusmap.png ähnelt. + /// + public static string FileMap_CBMainMap { + get { + return ResourceManager.GetString("FileMap_CBMainMap", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die File/Campusmap/Offlinemap.xml ähnelt. + /// + public static string FileMap_OfflineMap { + get { + return ResourceManager.GetString("FileMap_OfflineMap", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die MensaFeed.xml ähnelt. /// @@ -645,6 +663,15 @@ namespace CampusAppWP8.Resources { } } + /// + /// Sucht eine lokalisierte Zeichenfolge, die [+-]{0,1}[0-9]+[.,]{0,1}[0-9]+[\s][+-]{0,1}[0-9]+[.,]{0,1}[0-9]+ ähnelt. + /// + public static string Regex_Coordinate { + get { + return ResourceManager.GetString("Regex_Coordinate", resourceCulture); + } + } + /// /// Sucht eine lokalisierte Zeichenfolge, die 767 ähnelt. /// diff --git a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx index 7463f1be..d6ba8703 100644 --- a/CampusAppWP8/CampusAppWP8/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8/Resources/Constants.resx @@ -408,4 +408,13 @@ /Pages/Campusmap/CampusMapPage.xaml + + [+-]{0,1}[0-9]+[.,]{0,1}[0-9]+[\s][+-]{0,1}[0-9]+[.,]{0,1}[0-9]+ + + + File/Campusmap/Offlinemap.xml + + + /Assets/campusmap.png + \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8/Toolkit.Content/ApplicationBar.Add.png b/CampusAppWP8/CampusAppWP8/Toolkit.Content/ApplicationBar.Add.png new file mode 100644 index 00000000..4b524d6f Binary files /dev/null and b/CampusAppWP8/CampusAppWP8/Toolkit.Content/ApplicationBar.Add.png differ diff --git a/CampusAppWP8/CampusAppWP8/Utility/XmlManager.cs b/CampusAppWP8/CampusAppWP8/Utility/XmlManager.cs index e5b5d4f3..75d1467e 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/XmlManager.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/XmlManager.cs @@ -38,6 +38,19 @@ namespace CampusAppWP8.Utility return model; } + /// Deserialization a xml file to a model. + /// Stubbfel, 20.08.2013. + /// Generic type parameter. + /// Path to the a XmlFile. + /// model of the XmlFile. + public static T DeserializationFileToModel(string xmlFilePath) + { + XmlSerializer serializer = new XmlSerializer(typeof(T)); + XDocument document = XDocument.Load(xmlFilePath); + T model = (T)serializer.Deserialize(document.CreateReader()); + return model; + } + /// /// Method serializes a model to a string. /// diff --git a/CampusAppWP8/CampusAppWP8/packages.config b/CampusAppWP8/CampusAppWP8/packages.config index f3d7e2f0..145c4038 100644 --- a/CampusAppWP8/CampusAppWP8/packages.config +++ b/CampusAppWP8/CampusAppWP8/packages.config @@ -1,4 +1,5 @@  + \ No newline at end of file