Compare commits
110 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7978e27049 | ||
|
|
be65f4056b | ||
|
|
73a186cf28 | ||
|
|
7a7c478277 | ||
|
|
c886b3e573 | ||
|
|
98a51bce24 | ||
|
|
a7769184d5 | ||
|
|
40145c727e | ||
|
|
6ead6414e6 | ||
|
|
03789a9a38 | ||
|
|
92db7d16f3 | ||
|
|
9454a764d6 | ||
|
|
a433d47583 | ||
|
|
486058687d | ||
|
|
ce3c953b64 | ||
|
|
e2ee1aad9f | ||
|
|
281cd06bab | ||
|
|
d71f6db920 | ||
|
|
eb68b666f7 | ||
|
|
8a69101cbf | ||
|
|
d9a54b2b13 | ||
|
|
92d580f270 | ||
|
|
8b4ee44520 | ||
|
|
9c0415ddbb | ||
|
|
52a3154caf | ||
|
|
18f72e6096 | ||
|
|
82625f7aa4 | ||
|
|
0b82c3b18a | ||
|
|
3616bd233f | ||
|
|
573a562e03 | ||
|
|
25d6217a9b | ||
|
|
5fbd297af5 | ||
|
|
f1e41b1fce | ||
|
|
c0692dfca9 | ||
|
|
cf4c5dc486 | ||
|
|
707e7c0761 | ||
|
|
347e45f561 | ||
|
|
4395f4f6cd | ||
|
|
182b50eca2 | ||
|
|
544ae68f2c | ||
|
|
db15808e24 | ||
|
|
7e99840b6c | ||
|
|
0f82e4512d | ||
|
|
19e18a4daa | ||
|
|
2a24c01854 | ||
|
|
2ef3d053b1 | ||
|
|
c0a880e771 | ||
|
|
46cedaeeb4 | ||
|
|
bda60de4f5 | ||
|
|
e70a6d36f1 | ||
|
|
80d008a431 | ||
|
|
175765a3c0 | ||
|
|
5a709e7445 | ||
|
|
a2eeb54c55 | ||
|
|
511e6640ba | ||
|
|
505b19e57d | ||
|
|
5d2614d59b | ||
|
|
5c8756ac21 | ||
|
|
10018077fc | ||
|
|
ca13f3f581 | ||
|
|
6f1eae3ca8 | ||
|
|
8774683a80 | ||
|
|
8335c47b0f | ||
|
|
ceeaabac1c | ||
|
|
e1abe121bf | ||
|
|
ed891074e0 | ||
|
|
6dc522b6a8 | ||
|
|
b54be92e3c | ||
|
|
12acceff32 | ||
|
|
9e31f121ba | ||
|
|
a06133b173 | ||
|
|
4fa7c9d9dd | ||
|
|
e46a7a22e1 | ||
|
|
7396edc095 | ||
|
|
b6b003315f | ||
|
|
e1ea814861 | ||
|
|
579217ec1c | ||
|
|
2f247e29b4 | ||
|
|
3003508139 | ||
|
|
cb242fc2fd | ||
|
|
4f10725531 | ||
|
|
c3a572c6f6 | ||
|
|
e60bfae1a8 | ||
|
|
731e3305b9 | ||
|
|
bc77d076c9 | ||
|
|
b3ef2ab81f | ||
|
|
ea54e23d56 | ||
|
|
0f64e15c3f | ||
|
|
476a626de4 | ||
|
|
2b4b980883 | ||
|
|
086317fef5 | ||
|
|
3755348854 | ||
|
|
cc4cfd9afd | ||
|
|
7053571f6c | ||
|
|
170067df02 | ||
|
|
38becf5ae6 | ||
|
|
0e90a7a03c | ||
|
|
7e65f09ca8 | ||
|
|
7056650095 | ||
|
|
5e5074a534 | ||
|
|
f5ef147baa | ||
|
|
c9b3553d2a | ||
|
|
f8280d1ce1 | ||
|
|
448cfd5118 | ||
|
|
655b4c0638 | ||
|
|
ff39d78658 | ||
|
|
d8071e76eb | ||
|
|
2e883b1e98 | ||
|
|
5a55355f98 | ||
|
|
cfb7b74610 |
64
.gitattributes
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
###############################################################################
|
||||
# Set default behavior to automatically normalize line endings.
|
||||
###############################################################################
|
||||
* text=auto
|
||||
|
||||
###############################################################################
|
||||
# Set default behavior for command prompt diff.
|
||||
#
|
||||
# This is need for earlier builds of msysgit that does not have it on by
|
||||
# default for csharp files.
|
||||
# Note: This is only used by command line
|
||||
###############################################################################
|
||||
#*.cs diff=csharp
|
||||
|
||||
###############################################################################
|
||||
# Set the merge driver for project and solution files
|
||||
#
|
||||
# Merging from the command prompt will add diff markers to the files if there
|
||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
||||
# the diff markers are never inserted). Diff markers may cause the following
|
||||
# file extensions to fail to load in VS. An alternative would be to treat
|
||||
# these files as binary and thus will always conflict and require user
|
||||
# intervention with every merge. To do so, just uncomment the entries below
|
||||
###############################################################################
|
||||
*.csproj -text merge=union
|
||||
*.sln -text merge=union
|
||||
*.resx -text merge=union
|
||||
#*.vbproj merge=binary
|
||||
#*.vcxproj merge=binary
|
||||
#*.vcproj merge=binary
|
||||
#*.dbproj merge=binary
|
||||
#*.fsproj merge=binary
|
||||
#*.lsproj merge=binary
|
||||
#*.wixproj merge=binary
|
||||
#*.modelproj merge=binary
|
||||
#*.sqlproj merge=binary
|
||||
#*.wwaproj merge=binary
|
||||
|
||||
###############################################################################
|
||||
# behavior for image files
|
||||
#
|
||||
# image files are treated as binary by default.
|
||||
###############################################################################
|
||||
#*.jpg binary
|
||||
#*.png binary
|
||||
#*.gif binary
|
||||
|
||||
###############################################################################
|
||||
# diff behavior for common document formats
|
||||
#
|
||||
# Convert binary document formats to text before diffing them. This feature
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# entries below.
|
||||
###############################################################################
|
||||
#*.doc diff=astextplain
|
||||
#*.DOC diff=astextplain
|
||||
#*.docx diff=astextplain
|
||||
#*.DOCX diff=astextplain
|
||||
#*.dot diff=astextplain
|
||||
#*.DOT diff=astextplain
|
||||
#*.pdf diff=astextplain
|
||||
#*.PDF diff=astextplain
|
||||
#*.rtf diff=astextplain
|
||||
#*.RTF diff=astextplain
|
||||
163
.gitignore
vendored
Normal file
@@ -0,0 +1,163 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.sln.docstates
|
||||
|
||||
# Build results
|
||||
|
||||
[Dd]ebug/
|
||||
[Rr]elease/
|
||||
x64/
|
||||
build/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
.builds
|
||||
*.pidb
|
||||
*.log
|
||||
*.scc
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
*.cachefile
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
*.vspx
|
||||
|
||||
# Guidance Automation Toolkit
|
||||
*.gpState
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# NCrunch
|
||||
*.ncrunch*
|
||||
.*crunch*.local.xml
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress/
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish/
|
||||
|
||||
# Publish Web Output
|
||||
*.Publish.xml
|
||||
*.pubxml
|
||||
|
||||
# NuGet Packages Directory
|
||||
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
|
||||
#packages/
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx
|
||||
*.build.csdef
|
||||
|
||||
# Windows Store app package directory
|
||||
AppPackages/
|
||||
|
||||
# Others
|
||||
sql/
|
||||
*.Cache
|
||||
ClientBin/
|
||||
[Ss]tyle[Cc]op.*
|
||||
~$*
|
||||
*~
|
||||
*.dbmdl
|
||||
*.[Pp]ublish.xml
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
|
||||
# RIA/Silverlight projects
|
||||
Generated_Code/
|
||||
|
||||
# Backup & report files from converting an old project file to a newer
|
||||
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
|
||||
# SQL Server files
|
||||
App_Data/*.mdf
|
||||
App_Data/*.ldf
|
||||
|
||||
|
||||
#LightSwitch generated files
|
||||
GeneratedArtifacts/
|
||||
_Pvt_Extensions/
|
||||
ModelManifest.xml
|
||||
|
||||
# =========================
|
||||
# Windows detritus
|
||||
# =========================
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Mac desktop service store files
|
||||
.DS_Store
|
||||
gitattributes
|
||||
gitignore
|
||||
winphone/
|
||||
.spl
|
||||
.srum
|
||||
*.spl
|
||||
*.srum
|
||||
Doxyfile
|
||||
screenshots/
|
||||
@@ -5,7 +5,7 @@
|
||||
// <author>stubbfel</author>
|
||||
// <sience>13.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Api.Lecture
|
||||
namespace CampusAppWP8.Feed.Lecture
|
||||
{
|
||||
using System;
|
||||
using CampusAppWP8.Model.Lecture;
|
||||
|
||||
@@ -8,8 +8,17 @@
|
||||
|
||||
<!--Anwendungsressourcen-->
|
||||
<Application.Resources>
|
||||
<local:LocalizedStrings xmlns:local="clr-namespace:CampusAppWP8" x:Key="LocalizedStrings"/>
|
||||
<local:ThemelizedIcons xmlns:local="clr-namespace:CampusAppWP8" x:Key="ThemelizedIcons"/>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Styles/ListButton.xaml"/>
|
||||
<ResourceDictionary Source="Styles/StartPageStyles.xaml"/>
|
||||
<ResourceDictionary>
|
||||
<local:LocalizedStrings xmlns:local="clr-namespace:CampusAppWP8" x:Key="LocalizedStrings"/>
|
||||
<local:ThemelizedIcons xmlns:local="clr-namespace:CampusAppWP8" x:Key="ThemelizedIcons"/>
|
||||
<local:Const xmlns:local="clr-namespace:CampusAppWP8" x:Key="Const"/>
|
||||
</ResourceDictionary>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
|
||||
<Application.ApplicationLifetimeObjects>
|
||||
|
||||
BIN
CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/add_159.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/btulogo_159.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/delete_159.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
BIN
CampusAppWP8/CampusAppWP8/Assets/Icons/DarkTheme/info_159.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
CampusAppWP8/CampusAppWP8/Assets/Icons/LightTheme/add_159.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
BIN
CampusAppWP8/CampusAppWP8/Assets/Icons/LightTheme/delete_159.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
BIN
CampusAppWP8/CampusAppWP8/Assets/Icons/LightTheme/info_159.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
@@ -96,16 +96,21 @@
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Feed\Departments\DepartmentFavoriteFeed.cs" />
|
||||
<Compile Include="Const.cs" />
|
||||
<Compile Include="Utility\Lui\Button\EmailButton.cs" />
|
||||
<Compile Include="Feed\Link\CommonLinkFeed.cs" />
|
||||
<Compile Include="Feed\Link\ClubLinkFeed.cs" />
|
||||
<Compile Include="Feed\Openinghours\OpeninghoursFeed.cs" />
|
||||
<Compile Include="Feed\StudentCouncil\StudentCouncilFeed.cs" />
|
||||
<Compile Include="LocalizedStrings.cs" />
|
||||
<Compile Include="Model\Campusmap\MapModel.cs" />
|
||||
<Compile Include="Model\Campusmap\MapPinModel.cs" />
|
||||
<Compile Include="Model\Departments\ChairModel.cs" />
|
||||
<Compile Include="Model\Departments\DepartmentModel.cs" />
|
||||
<Compile Include="Model\Departments\DepartmentViewModel.cs" />
|
||||
<Compile Include="Model\Departments\FacultyModel.cs" />
|
||||
<Compile Include="Model\Events\RSSChannelModel.cs" />
|
||||
<Compile Include="Model\Events\RSSViewModel.cs" />
|
||||
<Compile Include="Model\RSS\RSSChannelModel.cs" />
|
||||
<Compile Include="Model\RSS\RSSViewModel.cs" />
|
||||
<Compile Include="Model\Lecture\LectureActivity.cs" />
|
||||
<Compile Include="Model\Lecture\LectureCourse.cs" />
|
||||
<Compile Include="Model\Lecture\LectureDate.cs" />
|
||||
@@ -113,16 +118,31 @@
|
||||
<Compile Include="Model\Lecture\LectureList.cs" />
|
||||
<Compile Include="Model\Lecture\LectureModule.cs" />
|
||||
<Compile Include="Model\Lecture\LecturePageModel.cs" />
|
||||
<Compile Include="Model\MainModel.cs" />
|
||||
<Compile Include="Model\Link\LinkModel.cs" />
|
||||
<Compile Include="Model\Link\LinkListModel.cs" />
|
||||
<Compile Include="Model\Mensa\MenuModel.cs" />
|
||||
<Compile Include="Model\Mensa\MenuWeekModel.cs" />
|
||||
<Compile Include="Model\Openinghours\OpeninghoursInstitutionModel.cs" />
|
||||
<Compile Include="Model\Openinghours\OpeninghoursModel.cs" />
|
||||
<Compile Include="Model\StudentCouncil\StudentCouncilListModel.cs" />
|
||||
<Compile Include="Model\StudentCouncil\StudentCouncilModel.cs" />
|
||||
<Compile Include="Model\Utility\UrlParamModel.cs" />
|
||||
<Compile Include="Model\XmlModel.cs" />
|
||||
<Compile Include="Pages\Campusmap\CampusMapPage.xaml.cs">
|
||||
<DependentUpon>CampusMapPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Api\Lecture\LectureApi.cs" />
|
||||
<Compile Include="Feed\Departments\DepartmentFeed.cs" />
|
||||
<Compile Include="Pages\Departments\DepartmentFavoritePage.xaml.cs">
|
||||
<DependentUpon>DepartmentFavoritePage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\Departments\DepartmentIndexPage.xaml.cs">
|
||||
<DependentUpon>DepartmentIndexPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\Departments\DepartmentInfoPage.xaml.cs">
|
||||
<DependentUpon>DepartmentInfoPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\Departments\DepartmentPage.xaml.cs">
|
||||
<DependentUpon>DepartmentPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -133,11 +153,9 @@
|
||||
<Compile Include="Pages\Events\EventPage.xaml.cs">
|
||||
<DependentUpon>EventPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="pages\lecture\LecturePage.xaml.cs">
|
||||
<Compile Include="Pages\Lecture\LecturePage.xaml.cs">
|
||||
<DependentUpon>LecturePage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Model\BaseModel.cs" />
|
||||
<Compile Include="Model\BaseViewModel.cs" />
|
||||
<Compile Include="Feed\Mensa\MensaFeed.cs" />
|
||||
<Compile Include="Pages\Lecture\ModulWebPage.xaml.cs">
|
||||
<DependentUpon>ModulWebPage.xaml</DependentUpon>
|
||||
@@ -149,6 +167,9 @@
|
||||
<Compile Include="Pages\Lecture\ResultPage.xaml.cs">
|
||||
<DependentUpon>ResultPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\Links\LinkPage.xaml.cs">
|
||||
<DependentUpon>LinkPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\Mensa\MensaPage.xaml.cs">
|
||||
<DependentUpon>MensaPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -159,13 +180,16 @@
|
||||
<Compile Include="Pages\News\NewsPage.xaml.cs">
|
||||
<DependentUpon>NewsPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Model\Events\RSSModel.cs" />
|
||||
<Compile Include="Model\RSS\RSSModel.cs" />
|
||||
<Compile Include="Pages\Openinghours\OpeninghoursPage.xaml.cs">
|
||||
<DependentUpon>OpeninghoursPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="pages\StartPage.xaml.cs">
|
||||
<Compile Include="Pages\StartPage.xaml.cs">
|
||||
<DependentUpon>StartPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\StudentCouncil\StudentCouncilPage.xaml.cs">
|
||||
<DependentUpon>StudentCouncilPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\Webmail\WebmailPage.xaml.cs">
|
||||
<DependentUpon>WebmailPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -181,24 +205,26 @@
|
||||
<DependentUpon>Constants.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Resources\Icons.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Icons.resx</DependentUpon>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Compile>
|
||||
<Compile Include="ThemelizedIcons.cs" />
|
||||
<Compile Include="Utility\Api.cs" />
|
||||
<Compile Include="Utility\ApiEventHandler.cs" />
|
||||
<Compile Include="Utility\Feed.cs" />
|
||||
<Compile Include="Utility\FeedEventHandler.cs" />
|
||||
<Compile Include="Utility\FileList.cs" />
|
||||
<Compile Include="Utility\FileManager.cs" />
|
||||
<Compile Include="Utility\File.cs" />
|
||||
<Compile Include="Utility\Logger.cs" />
|
||||
<Compile Include="Utility\HttpRequest.cs" />
|
||||
<Compile Include="Utility\Lui\Button\GoToMapButton.cs" />
|
||||
<Compile Include="Utility\Lui\Button\ToggleButton.cs" />
|
||||
<Compile Include="Utility\Lui\Button\NavigateButton.cs" />
|
||||
<Compile Include="Utility\Lui\Button\PhoneButton.cs" />
|
||||
<Compile Include="Utility\Lui\Button\LinkButton.cs" />
|
||||
<Compile Include="Utility\StringManager.cs" />
|
||||
<Compile Include="Utility\URLList.cs" />
|
||||
<Compile Include="Utility\Utilities.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Utility\XmlApi.cs" />
|
||||
<Compile Include="Utility\XmlFeed.cs" />
|
||||
<Compile Include="Utility\XmlManager.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -210,6 +236,18 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Pages\Departments\DepartmentFavoritePage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Pages\Departments\DepartmentIndexPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Pages\Departments\DepartmentInfoPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Pages\Departments\DepartmentPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
@@ -238,6 +276,10 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Pages\Links\LinkPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Pages\Mensa\MensaPage.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@@ -258,10 +300,22 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Pages\StudentCouncil\StudentCouncilPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Pages\Webmail\WebmailPage.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Styles\StartPageStyles.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Styles\ListButton.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Assets\psd\holo_optionsbuttons.psd" />
|
||||
@@ -277,14 +331,24 @@
|
||||
<Content Include="Assets\ApplicationIcon.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Icons\DarkTheme\add_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\btulogo_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\campus_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\delete_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\favorite_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\info_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\phone_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\add_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\btulogo_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\campus_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\departments_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\delete_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\departments_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\homework_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\favorite_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\homework_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\link_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\info_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\link_159.png" />
|
||||
<Content Include="Assets\Icons\DarkTheme\lectures_159.png" />
|
||||
<Content Include="Assets\Icons\LightTheme\lectures_159.png" />
|
||||
@@ -332,13 +396,14 @@
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resources\Constants.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Constants.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resources\Icons.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Icons.Designer.cs</LastGenOutput>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
33
CampusAppWP8/CampusAppWP8/Const.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="Const.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>08.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8
|
||||
{
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// Access to Constants.rex
|
||||
/// </summary>
|
||||
public class Const
|
||||
{
|
||||
/// <summary>
|
||||
/// Resource object.
|
||||
/// </summary>
|
||||
private static Constants constantResources = new Constants();
|
||||
|
||||
/// <summary>
|
||||
/// Gets the resource object.
|
||||
/// </summary>
|
||||
public Constants Constants
|
||||
{
|
||||
get
|
||||
{
|
||||
return constantResources;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="DepartmentFavoriteFeed.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>01.07.2013</sience>
|
||||
//----------------------------------------------------------------------using System;
|
||||
namespace CampusAppWP8.Feed.Departments
|
||||
{
|
||||
using System;
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.Departments;
|
||||
using CampusAppWP8.Resources;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
/// <summary>
|
||||
/// Feed object to handle favorite department feeds.
|
||||
/// </summary>
|
||||
public class DepartmentFavoriteFeed : XmlModel<DepartmentModel>
|
||||
{
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepartmentFavoriteFeed" /> class.
|
||||
/// </summary>
|
||||
/// <param name="autoLoad">automatic loading of the data</param>
|
||||
public DepartmentFavoriteFeed(bool autoLoad = true)
|
||||
: base(ModelType.File, Constants.FileDepartment_Favorite_Name, string.Empty)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
|
||||
if (autoLoad == true)
|
||||
{
|
||||
this.LoadData();
|
||||
}
|
||||
}
|
||||
|
||||
// Constructor
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region Protected
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsModelUpToDate()-Method <see cref="Pages"/>.
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsModelUpToDate(DepartmentModel model)
|
||||
{
|
||||
bool retValue = true;
|
||||
|
||||
if ((model == null)
|
||||
|| (model.Faculties == null)
|
||||
|| (model.Faculties.Count != 1))
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsFileUpToDate()-Method <see cref="Pages"/>.
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <param name="info">file info object</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsFileUpToDate(DepartmentModel model, FileInfo info)
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
if (this.Model == null)
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
retValue = (model.HasChanged() == false) ? true : false;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
// Protected
|
||||
#endregion
|
||||
|
||||
// Method
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,37 +1,104 @@
|
||||
using CampusAppWP8.Model.Departments;
|
||||
using CampusAppWP8.Utility;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CampusAppWP8.Api.Departments
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="DepartmentFeed.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Feed.Departments
|
||||
{
|
||||
class DepartmentFeed : XmlFeed<DepartmentViewModel>
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.Departments;
|
||||
using CampusAppWP8.Resources;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
/// <summary>
|
||||
/// Feed class for the department information.
|
||||
/// </summary>
|
||||
public class DepartmentFeed : XmlModel<DepartmentModel>
|
||||
{
|
||||
public DepartmentFeed() : base(URLList.DepartmentFeedURL, "DepartmentFeed.xml")
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepartmentFeed" /> class.
|
||||
/// </summary>
|
||||
/// <param name="autoLoad">automatic loading of the data</param>
|
||||
public DepartmentFeed(bool autoLoad = true)
|
||||
: base(ModelType.FileAndFeed, Constants.FileDepartment_Name, Constants.UrlDepartment_Addr)
|
||||
{
|
||||
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
|
||||
if (autoLoad == true)
|
||||
{
|
||||
this.LoadData();
|
||||
}
|
||||
}
|
||||
public System.Collections.ObjectModel.ObservableCollection<FacultyModel> _faculties { get; set; }
|
||||
|
||||
// Constructor
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region Protected
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsModelUpToDate()-Method <see cref="Pages"/>
|
||||
/// Method implement CheckIsModelUpToDate()-Method <see cref="Pages"/>.
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsModelUpToDate()
|
||||
private bool CheckIsModelUpToDate(DepartmentModel model)
|
||||
{
|
||||
return false;
|
||||
bool retValue = true;
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
retValue = Utilities.DayDifference(Utilities.DifferenceType.Less, model.CreateTime, 7.0);
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsFileUpToDate()-Method <see cref="Pages"/>
|
||||
/// Method implement CheckIsFileUpToDate()-Method <see cref="Pages"/>.
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <param name="info">file info object</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsFileUpToDate()
|
||||
private bool CheckIsFileUpToDate(DepartmentModel model, FileInfo info)
|
||||
{
|
||||
return false;
|
||||
bool retValue = true;
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
// at loading
|
||||
if (info.Exists == true)
|
||||
{
|
||||
retValue = Utilities.DayDifference(Utilities.DifferenceType.Less, info.LastWriteTime, 7.0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// at saving
|
||||
if ((info.Exists == false)
|
||||
|| (info.Length == 0))
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
// Protedted
|
||||
#endregion
|
||||
|
||||
// Method
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,41 +1,89 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using CampusAppWP8.Model.events_news;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
namespace CampusAppWP8.Api.Events
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="EventFeed.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Feed.Events
|
||||
{
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.RSS;
|
||||
using CampusAppWP8.Resources;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
/// <summary>
|
||||
/// Event Feed.
|
||||
/// </summary>
|
||||
public class EventFeed : XmlFeed<RSSViewModel>
|
||||
public class EventFeed : XmlModel<RSSViewModel>
|
||||
{
|
||||
/// <summary>
|
||||
/// Default constructor.
|
||||
/// Initializes a new instance of the <see cref="EventFeed" /> class.
|
||||
/// </summary>
|
||||
public EventFeed() : base(URLList.EventsFeedURL, "EventFeed.xml")
|
||||
/// <param name="autoLoad">automatic loading of the data</param>
|
||||
public EventFeed(bool autoLoad = true)
|
||||
: base(ModelType.FileAndFeed, Constants.FileEvents_Name, Constants.UrlEvents_Addr)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
|
||||
if (autoLoad == true)
|
||||
{
|
||||
this.LoadData();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsModelUpToDate()-Method <see cref="Pages"/>
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsModelUpToDate()
|
||||
private bool CheckIsModelUpToDate(RSSViewModel model)
|
||||
{
|
||||
return false;
|
||||
bool retValue = true;
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
retValue = Utilities.DayDifference(Utilities.DifferenceType.Less, model.CreateTime, 1.0);
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsFileUpToDate()-Method <see cref="Pages"/>
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <param name="info">file info object</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsFileUpToDate()
|
||||
private bool CheckIsFileUpToDate(RSSViewModel model, FileInfo info)
|
||||
{
|
||||
return true;
|
||||
bool retValue = true;
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
// at loading
|
||||
if (info.Exists == true)
|
||||
{
|
||||
retValue = Utilities.DayDifference(Utilities.DifferenceType.Less, info.LastWriteTime, 1.0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// at saving
|
||||
if ((info.Exists == false)
|
||||
|| (info.Length == 0))
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
90
CampusAppWP8/CampusAppWP8/Feed/Link/ClubLinkFeed.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="ClubLinkFeed.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Feed.Link
|
||||
{
|
||||
using System;
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.Link;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// This Class is for ClubLinkFeeds
|
||||
/// </summary>
|
||||
public class ClubLinkFeed : XmlModel<LinkListModel>
|
||||
{
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ClubLinkFeed" /> class.
|
||||
/// </summary>
|
||||
public ClubLinkFeed()
|
||||
: base(ModelType.FileAndFeed, Constants.FileLink_ClubLinks, Constants.UrlLink_ClubLinks)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region Private
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedModel is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsModelUpToDate(LinkListModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DateTime lastModified = model.CreateTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedFile is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <param name="fileInfo">info about the file</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsFileUpToDate(LinkListModel model, FileInfo fileInfo)
|
||||
{
|
||||
DateTime lastModified = fileInfo.LastWriteTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if the model or file is up-to-date.
|
||||
/// </summary>
|
||||
/// <param name="lastModified">Date of the last modification</param>
|
||||
/// <returns>true, if is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsUpToDate(DateTime lastModified)
|
||||
{
|
||||
DateTime temp = lastModified.AddDays(1);
|
||||
|
||||
int diff = temp.CompareTo(DateTime.Now);
|
||||
|
||||
if (diff < 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
90
CampusAppWP8/CampusAppWP8/Feed/Link/CommonLinkFeed.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="CommonLinkFeed.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Feed.Link
|
||||
{
|
||||
using System;
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.Link;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// This Class is for CommonLinkFeeds
|
||||
/// </summary>
|
||||
public class CommonLinkFeed : XmlModel<LinkListModel>
|
||||
{
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="CommonLinkFeed" /> class.
|
||||
/// </summary>
|
||||
public CommonLinkFeed()
|
||||
: base(ModelType.FileAndFeed, Constants.FileLink_CommonLinks, Constants.UrlLink_CommonLinks)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region Private
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedModel is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsModelUpToDate(LinkListModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DateTime lastModified = model.CreateTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedFile is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <param name="fileInfo">info about the file</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsFileUpToDate(LinkListModel model, FileInfo fileInfo)
|
||||
{
|
||||
DateTime lastModified = fileInfo.LastWriteTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if the model or file is up-to-date.
|
||||
/// </summary>
|
||||
/// <param name="lastModified">Date of the last modification</param>
|
||||
/// <returns>true, if is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsUpToDate(DateTime lastModified)
|
||||
{
|
||||
DateTime temp = lastModified.AddDays(1);
|
||||
|
||||
int diff = temp.CompareTo(DateTime.Now);
|
||||
|
||||
if (diff < 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -5,17 +5,18 @@
|
||||
// <author>stubbfel</author>
|
||||
// <sience>03.05.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Api.Mensa
|
||||
namespace CampusAppWP8.Feed.Mensa
|
||||
{
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.Mensa;
|
||||
using CampusAppWP8.Utility;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// This Class is for MesaFeeds
|
||||
/// This Class is for MensaFeeds
|
||||
/// </summary>
|
||||
public class MensaFeed : XmlFeed<MenuWeekModel>
|
||||
public class MensaFeed : XmlModel<MenuWeekModel>
|
||||
{
|
||||
#region Constructor
|
||||
|
||||
@@ -23,40 +24,46 @@ namespace CampusAppWP8.Api.Mensa
|
||||
/// Initializes a new instance of the <see cref="MensaFeed" /> class.
|
||||
/// </summary>
|
||||
public MensaFeed()
|
||||
: base(URLList.MensaFeedURL, FileList.MensaXmlFile)
|
||||
: base(ModelType.FileAndFeed, Constants.FileMensa_Shedule, Constants.UrlMensa_Week)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region Protected
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsModelUpToDate()-Method <see cref="Pages"/>
|
||||
/// </summary>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsModelUpToDate()
|
||||
{
|
||||
DateTime lastModified = this.Model.CreateTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsFileUpToDate()-Method <see cref="Pages"/>
|
||||
/// </summary>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsFileUpToDate()
|
||||
{
|
||||
DateTime lastModified = FileManager.GetFileInfo(FileName).LastWriteTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedModel is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsModelUpToDate(MenuWeekModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DateTime lastModified = model.CreateTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedFile is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <param name="fileInfo">info about the file</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsFileUpToDate(MenuWeekModel model, FileInfo fileInfo)
|
||||
{
|
||||
DateTime lastModified = fileInfo.LastWriteTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the last modification was later as the NewMenuWeekDay
|
||||
/// </summary>
|
||||
|
||||
@@ -1,42 +1,89 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using CampusAppWP8.Model.events_news;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
namespace CampusAppWP8.Api.News
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="NewsFeed.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Feed.News
|
||||
{
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.RSS;
|
||||
using CampusAppWP8.Resources;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
/// <summary>
|
||||
/// News Feed.
|
||||
/// </summary>
|
||||
public class NewsFeed : XmlFeed<RSSViewModel>
|
||||
public class NewsFeed : XmlModel<RSSViewModel>
|
||||
{
|
||||
/// <summary>
|
||||
/// Default constructor.
|
||||
/// Initializes a new instance of the <see cref="NewsFeed" /> class.
|
||||
/// </summary>
|
||||
public NewsFeed() : base(URLList.NewsFeedURL, "NewsFeed.xml")
|
||||
/// <param name="autoLoad">automatic loading of the data</param>
|
||||
public NewsFeed(bool autoLoad = true)
|
||||
: base(ModelType.FileAndFeed, Constants.FileNews_Name, Constants.UrlNews_Addr)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
|
||||
if (autoLoad == true)
|
||||
{
|
||||
this.LoadData();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsModelUpToDate()-Method <see cref="Pages"/>
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsModelUpToDate()
|
||||
private bool CheckIsModelUpToDate(RSSViewModel model)
|
||||
{
|
||||
return false;
|
||||
bool retValue = true;
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
retValue = Utilities.DayDifference(Utilities.DifferenceType.Less, model.CreateTime, 1.0);
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsFileUpToDate()-Method <see cref="Pages"/>
|
||||
/// </summary>
|
||||
/// <param name="model">model object</param>
|
||||
/// <param name="info">info object of the file</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsFileUpToDate()
|
||||
private bool CheckIsFileUpToDate(RSSViewModel model, FileInfo info)
|
||||
{
|
||||
return true;
|
||||
bool retValue = true;
|
||||
|
||||
if (model == null)
|
||||
{
|
||||
// at loading
|
||||
if (info.Exists == true)
|
||||
{
|
||||
retValue = Utilities.DayDifference(Utilities.DifferenceType.Less, info.LastWriteTime, 1.0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// at saving
|
||||
if ((info.Exists == false)
|
||||
|| (info.Length == 0))
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,14 +8,15 @@
|
||||
namespace CampusAppWP8.Feed.Openinghours
|
||||
{
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.Openinghours;
|
||||
using CampusAppWP8.Utility;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// This Class is for MesaFeeds
|
||||
/// </summary>
|
||||
public class OpeninghoursFeed : XmlFeed<OpeninghoursModel>
|
||||
public class OpeninghoursFeed : XmlModel<OpeninghoursModel>
|
||||
{
|
||||
#region Constructor
|
||||
|
||||
@@ -23,40 +24,46 @@ namespace CampusAppWP8.Feed.Openinghours
|
||||
/// Initializes a new instance of the <see cref="OpeninghoursFeed" /> class.
|
||||
/// </summary>
|
||||
public OpeninghoursFeed()
|
||||
: base(URLList.OpeninghoursFeedURL, FileList.OpeninghoursXmlFile)
|
||||
: base(ModelType.FileAndFeed, Constants.FileOpeningHours_OpeningHours, Constants.UrlOpeningHours_OpeningHours)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region Protected
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsModelUpToDate()-Method <see cref="Pages"/>.
|
||||
/// </summary>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsModelUpToDate()
|
||||
{
|
||||
DateTime lastModified = this.Model.CreateTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method implement CheckIsFileUpToDate()-Method <see cref="Pages"/>.
|
||||
/// </summary>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
protected override bool CheckIsFileUpToDate()
|
||||
{
|
||||
DateTime lastModified = FileManager.GetFileInfo(FileName).LastWriteTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Private
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedModel is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsModelUpToDate(OpeninghoursModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DateTime lastModified = model.CreateTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedFile is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <param name="fileInfo">info about the file</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsFileUpToDate(OpeninghoursModel model, FileInfo fileInfo)
|
||||
{
|
||||
DateTime lastModified = fileInfo.LastWriteTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if the model or file is up-to-date.
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="StudentCouncilFeed.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Feed.StudentCouncil
|
||||
{
|
||||
using System;
|
||||
using System.IO;
|
||||
using CampusAppWP8.Model;
|
||||
using CampusAppWP8.Model.StudentCouncil;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// This Class is for StudentCouncilFeed
|
||||
/// </summary>
|
||||
public class StudentCouncilFeed : XmlModel<StudentCouncilListModel>
|
||||
{
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="StudentCouncilFeed" /> class.
|
||||
/// </summary>
|
||||
public StudentCouncilFeed()
|
||||
: base(ModelType.FileAndFeed, Constants.FileStudentCouncil_StudentCouncils, Constants.UrlStudentCouncil_StudentCouncils)
|
||||
{
|
||||
this.isFileUpToDate += new IsFileUpToDate(this.CheckIsFileUpToDate);
|
||||
this.isModelUpToDate += new IsModelUpToDate(this.CheckIsModelUpToDate);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region Private
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedModel is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <returns>true, if model is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsModelUpToDate(StudentCouncilListModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DateTime lastModified = model.CreateTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method check if the FeedFile is up-to-date
|
||||
/// </summary>
|
||||
/// <param name="model">reference of the FeedModel</param>
|
||||
/// <param name="fileInfo">info about the file</param>
|
||||
/// <returns>true, if file is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsFileUpToDate(StudentCouncilListModel model, FileInfo fileInfo)
|
||||
{
|
||||
DateTime lastModified = fileInfo.LastWriteTime;
|
||||
return this.CheckIsUpToDate(lastModified);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if the model or file is up-to-date.
|
||||
/// </summary>
|
||||
/// <param name="lastModified">Date of the last modification</param>
|
||||
/// <returns>true, if is up-to-date, otherwise false</returns>
|
||||
private bool CheckIsUpToDate(DateTime lastModified)
|
||||
{
|
||||
DateTime temp = lastModified.AddDays(1);
|
||||
|
||||
int diff = temp.CompareTo(DateTime.Now);
|
||||
|
||||
if (diff < 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,88 +1,126 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="ChairModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.Departments
|
||||
{
|
||||
using System.Globalization;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// Class to hold information about a professorship chair.
|
||||
/// </summary>
|
||||
public class ChairModel : BaseModel
|
||||
public class ChairModel
|
||||
{
|
||||
private string name_de; // german name of the chair
|
||||
private string url; // link-url to the chair homepage
|
||||
private string name_en; // english name of the chair
|
||||
/// <summary>
|
||||
/// German name of the chair.
|
||||
/// </summary>
|
||||
private string nameDE = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Default Constructor. Set every class variable to default value.
|
||||
/// Link to the chair page.
|
||||
/// </summary>
|
||||
private string url = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// English name of the chair.
|
||||
/// </summary>
|
||||
private string nameEN = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ChairModel" /> class.
|
||||
/// </summary>
|
||||
public ChairModel()
|
||||
{
|
||||
this.name_de = String.Empty;
|
||||
this.name_en = String.Empty;
|
||||
this.url = String.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor. Set the german and english name.
|
||||
/// Initializes a new instance of the <see cref="ChairModel" /> class.
|
||||
/// </summary>
|
||||
/// <param name="name">Name of the professorship chair.</param>
|
||||
/// <param name="name">name of the chair</param>
|
||||
public ChairModel(string name)
|
||||
{
|
||||
this.name_de = name;
|
||||
this.name_en = name;
|
||||
this.url = String.Empty;
|
||||
this.nameDE = name;
|
||||
this.nameEN = name;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set or return the german name of the chair.
|
||||
/// Gets or sets the german name of the chair.
|
||||
/// </summary>
|
||||
[XmlAttribute("name_de")]
|
||||
public string Name_DE
|
||||
public string NameDE
|
||||
{
|
||||
get { return this.name_de; }
|
||||
get
|
||||
{
|
||||
return this.nameDE;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.name_de)
|
||||
if (value != this.nameDE)
|
||||
{
|
||||
this.name_de = value;
|
||||
NotifyPropertyChanged("chair");
|
||||
this.nameDE = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set or return the english name of the chair.
|
||||
/// Gets or sets the english name of the chair.
|
||||
/// </summary>
|
||||
[XmlAttribute("name_en")]
|
||||
public string Name_EN
|
||||
public string NameEN
|
||||
{
|
||||
get { return this.name_en; }
|
||||
get
|
||||
{
|
||||
return this.nameEN;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.name_en)
|
||||
if (value != this.nameEN)
|
||||
{
|
||||
this.name_en = value;
|
||||
NotifyPropertyChanged("chair");
|
||||
this.nameEN = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set or return the url of the chair homepage.
|
||||
/// Gets or sets the url of the chair homepage.
|
||||
/// </summary>
|
||||
[XmlAttribute("url")]
|
||||
public string Url
|
||||
{
|
||||
get { return this.url; }
|
||||
get
|
||||
{
|
||||
return this.url;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.url)
|
||||
{
|
||||
this.url = value;
|
||||
NotifyPropertyChanged("chair");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the localized name of the chair.
|
||||
/// </summary>
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
if (CultureInfo.CurrentUICulture.Name.StartsWith("de"))
|
||||
{
|
||||
return this.NameDE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.NameEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,86 +1,91 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="DepartmentModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.Departments
|
||||
{
|
||||
public class DepartmentModel : BaseModel
|
||||
{
|
||||
[XmlElement("chair")]
|
||||
public ObservableCollection<ChairModel> _chairs { get; set; }
|
||||
|
||||
private string _name = "d_mod";
|
||||
private Visibility visible;
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// View model for department page.
|
||||
/// </summary>
|
||||
[XmlRoot("root")]
|
||||
public class DepartmentModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Object to store the time when the instance was created.
|
||||
/// </summary>
|
||||
private DateTime createTime;
|
||||
|
||||
/// <summary>
|
||||
/// List of faculties.
|
||||
/// </summary>
|
||||
private ObservableCollection<FacultyModel> faculties;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepartmentModel" /> class.
|
||||
/// </summary>
|
||||
public DepartmentModel()
|
||||
{
|
||||
this.visible = Visibility.Collapsed;
|
||||
this.Chairs = new ObservableCollection<ChairModel>();
|
||||
//this.LoadData();
|
||||
this.Faculties = new ObservableCollection<FacultyModel>();
|
||||
this.createTime = DateTime.Now;
|
||||
}
|
||||
|
||||
public DepartmentModel(string name)
|
||||
{
|
||||
this.visible = Visibility.Collapsed;
|
||||
_name = name;
|
||||
this.Chairs = new ObservableCollection<ChairModel>();
|
||||
//this.LoadData();
|
||||
}
|
||||
|
||||
public void LoadData()
|
||||
{
|
||||
this.Chairs.Add(new ChairModel("LS 1"));
|
||||
this.Chairs.Add(new ChairModel("LS 2"));
|
||||
this.Chairs.Add(new ChairModel("LS 3"));
|
||||
this.Chairs.Add(new ChairModel("LS 4"));
|
||||
}
|
||||
|
||||
public ObservableCollection<ChairModel> Chairs
|
||||
/// <summary>
|
||||
/// Gets or sets the faculty list.
|
||||
/// </summary>
|
||||
[XmlArray("professorships")]
|
||||
[XmlArrayItem("faculty")]
|
||||
public ObservableCollection<FacultyModel> Faculties
|
||||
{
|
||||
get
|
||||
{
|
||||
return _chairs;
|
||||
return this.faculties;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != _chairs)
|
||||
if (value != this.faculties)
|
||||
{
|
||||
_chairs = value;
|
||||
NotifyPropertyChanged("department");
|
||||
this.faculties = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Name
|
||||
/// <summary>
|
||||
/// Gets the creation time.
|
||||
/// </summary>
|
||||
public DateTime CreateTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return _name;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value != _name)
|
||||
{
|
||||
_name = value;
|
||||
NotifyPropertyChanged("chair");
|
||||
}
|
||||
return this.createTime;
|
||||
}
|
||||
}
|
||||
|
||||
public Visibility Visible
|
||||
/// <summary>
|
||||
/// Check if the content of the faculty lists hast changed since the
|
||||
/// last call of this function.
|
||||
/// </summary>
|
||||
/// <returns>true, if changes happend since last request, otherwise false</returns>
|
||||
public bool HasChanged()
|
||||
{
|
||||
get { return this.visible; }
|
||||
set
|
||||
bool retValue = false;
|
||||
|
||||
foreach (FacultyModel temp in this.Faculties)
|
||||
{
|
||||
if (value != this.visible)
|
||||
if ((temp.HasChanged() == true) && (retValue == false))
|
||||
{
|
||||
this.visible = value;
|
||||
retValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace CampusAppWP8.Model.Departments
|
||||
{
|
||||
[XmlRoot("root")]
|
||||
public class DepartmentViewModel : BaseViewModel
|
||||
{
|
||||
[XmlArray("professorships")]
|
||||
[XmlArrayItem("faculty")]
|
||||
public ObservableCollection<FacultyModel> _faculties { get; set; }
|
||||
|
||||
public DepartmentViewModel()
|
||||
{
|
||||
this.Faculties = new ObservableCollection<FacultyModel>();
|
||||
}
|
||||
|
||||
public ObservableCollection<FacultyModel> Faculties
|
||||
{
|
||||
get
|
||||
{
|
||||
return _faculties;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value != _faculties)
|
||||
{
|
||||
_faculties = value;
|
||||
NotifyPropertyChanged("foodDays");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,62 +1,238 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="FacultyModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.Departments
|
||||
{
|
||||
public class FacultyModel : BaseModel
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Xml.Serialization;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// Model for holding the faculty information.
|
||||
/// </summary>
|
||||
public class FacultyModel
|
||||
{
|
||||
[XmlElement("chair")]
|
||||
public ObservableCollection<ChairModel> chairs { get; set; }
|
||||
//public ObservableCollection<DepartmentModel> _faculties { get; set; }
|
||||
|
||||
private string name = "t_fak";
|
||||
/// <summary>
|
||||
/// Object to hold the information of the chair containing to this
|
||||
/// faculty.
|
||||
/// </summary>
|
||||
private ObservableCollection<ChairModel> chairs;
|
||||
|
||||
/// <summary>
|
||||
/// Name of the faculty.
|
||||
/// </summary>
|
||||
private string name = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// For checking of change.
|
||||
/// </summary>
|
||||
private bool hasChanged = false;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="FacultyModel" /> class.
|
||||
/// </summary>
|
||||
public FacultyModel()
|
||||
{
|
||||
//this.Faculties = new ObservableCollection<DepartmentModel>();
|
||||
this.chairs = new ObservableCollection<ChairModel>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="FacultyModel" /> class.
|
||||
/// </summary>
|
||||
/// <param name="name">name of the faculty</param>
|
||||
public FacultyModel(string name)
|
||||
{
|
||||
this.name = name;
|
||||
//this.Faculties = new ObservableCollection<DepartmentModel>();
|
||||
this.chairs = new ObservableCollection<ChairModel>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the list of the chairs containing to this faculty.
|
||||
/// </summary>
|
||||
[XmlElement("chair")]
|
||||
public ObservableCollection<ChairModel> Chairs
|
||||
{
|
||||
get { return this.chairs; }
|
||||
get
|
||||
{
|
||||
return this.chairs;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.chairs)
|
||||
{
|
||||
this.chairs = value;
|
||||
NotifyPropertyChanged("faculty");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[XmlAttribute("id")]
|
||||
/// <summary>
|
||||
/// Gets the name of the faculty.
|
||||
/// </summary>
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return AppResources.Faculty + " " + this.name;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the id of the faculty.
|
||||
/// </summary>
|
||||
[XmlAttribute("id")]
|
||||
public string Id
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.name;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.name)
|
||||
this.name = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove a chair model from the lost.
|
||||
/// </summary>
|
||||
/// <param name="chairName">name of the chair</param>
|
||||
/// <returns>true, if succeeded</returns>
|
||||
public bool RemoveChair(string chairName)
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
ChairModel tempChair = null;
|
||||
|
||||
foreach (ChairModel temp in this.Chairs)
|
||||
{
|
||||
if (temp.Name.Equals(chairName) == true)
|
||||
{
|
||||
this.name = value;
|
||||
NotifyPropertyChanged("faculty");
|
||||
tempChair = temp;
|
||||
}
|
||||
}
|
||||
|
||||
if (tempChair != null)
|
||||
{
|
||||
retValue = this.Chairs.Remove(tempChair);
|
||||
this.hasChanged = true;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add a chair to the list, if it does not already exist.
|
||||
/// </summary>
|
||||
/// <param name="chairModel">chair model to add</param>
|
||||
/// <returns>true, is succeeded</returns>
|
||||
public bool AddChair(ChairModel chairModel)
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
if ((chairModel != null)
|
||||
&& (this.Chairs.Contains(chairModel) == false))
|
||||
{
|
||||
bool isIn = false;
|
||||
|
||||
foreach (ChairModel temp in this.Chairs)
|
||||
{
|
||||
if ((temp.NameDE.Equals(chairModel.NameDE) == true)
|
||||
|| (temp.NameEN.Equals(chairModel.NameEN) == true))
|
||||
{
|
||||
isIn = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isIn == false)
|
||||
{
|
||||
this.Chairs.Add(chairModel);
|
||||
this.hasChanged = true;
|
||||
retValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a chair model and add it to the list, if it does not already
|
||||
/// exist.
|
||||
/// </summary>
|
||||
/// <param name="nameDE">german name of the chair</param>
|
||||
/// <param name="nameEN">english name of the chair</param>
|
||||
/// <param name="url">url of the chair home page</param>
|
||||
/// <returns>true, if succeeded</returns>
|
||||
public bool AddChair(string nameDE, string nameEN, string url)
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
bool isIn = false;
|
||||
|
||||
foreach (ChairModel temp in this.Chairs)
|
||||
{
|
||||
if ((temp.NameDE.Equals(nameDE) == true)
|
||||
|| (temp.NameEN.Equals(nameEN) == true))
|
||||
{
|
||||
isIn = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (isIn == false)
|
||||
{
|
||||
ChairModel newModel = new ChairModel();
|
||||
newModel.NameDE = nameDE;
|
||||
newModel.NameEN = nameEN;
|
||||
newModel.Url = url;
|
||||
|
||||
this.Chairs.Add(newModel);
|
||||
this.hasChanged = true;
|
||||
retValue = true;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the chair model of the chair with the specified name.
|
||||
/// </summary>
|
||||
/// <param name="name">name of the chair</param>
|
||||
/// <returns>chair model, if succeeded, otherwise null</returns>
|
||||
public ChairModel GetChairModel(string name)
|
||||
{
|
||||
ChairModel retValue = null;
|
||||
|
||||
foreach (ChairModel temp in this.Chairs)
|
||||
{
|
||||
if (temp.Name.Equals(name) == true)
|
||||
{
|
||||
retValue = temp;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return true if there were changes in the chair list, otherwise false.
|
||||
/// </summary>
|
||||
/// <param name="reset">when true, the hasChanged flag will be reseted</param>
|
||||
/// <returns>true, when changed, otherwise false</returns>
|
||||
public bool HasChanged(bool reset = true)
|
||||
{
|
||||
bool retValue = this.hasChanged;
|
||||
|
||||
if (reset == true)
|
||||
{
|
||||
this.hasChanged = false;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,11 @@ namespace CampusAppWP8.Model.events_news
|
||||
if (value != this.item)
|
||||
{
|
||||
this.item = value;
|
||||
int i = 0;
|
||||
foreach (RSSModel rssItem in this.item)
|
||||
{
|
||||
rssItem.Index = i++;
|
||||
}
|
||||
NotifyPropertyChanged("item");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,6 +108,11 @@ namespace CampusAppWP8.Model.events_news
|
||||
get { return String.Format("{0:h:mm} Uhr", this.timestamp); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the ListIndex
|
||||
/// </summary>
|
||||
public int Index { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Set/Get the link/url of the feed.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
using CampusAppWP8.Model;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
namespace CampusAppWP8.Model.events_news
|
||||
{
|
||||
/// <summary>
|
||||
/// ViewModel of the rss feed, containing the feed/channel object.
|
||||
/// </summary>
|
||||
[XmlRoot("root")]
|
||||
public class RSSViewModel : BaseViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// channel list for the rss feeds.
|
||||
/// </summary>
|
||||
[XmlArray("rss")]
|
||||
[XmlArrayItem("channel")]
|
||||
public ObservableCollection<RSSChannelModel> channel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor.
|
||||
/// </summary>
|
||||
public RSSViewModel()
|
||||
{
|
||||
this.channel = new ObservableCollection<RSSChannelModel>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set/Get the channel list.
|
||||
/// </summary>
|
||||
public ObservableCollection<RSSChannelModel> Channel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.channel;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value != this.channel)
|
||||
{
|
||||
this.channel = value;
|
||||
NotifyPropertyChanged("channel");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@
|
||||
namespace CampusAppWP8.Model.Lecture
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Serialization;
|
||||
using CampusAppWP8.Model.Utility;
|
||||
using CampusAppWP8.Resources;
|
||||
@@ -161,6 +162,13 @@ namespace CampusAppWP8.Model.Lecture
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "2", Value = "2" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "3", Value = "3" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "4", Value = "4" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "5", Value = "5" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "5", Value = "6" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "7", Value = "7" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "8", Value = "8" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "9", Value = "9" });
|
||||
this.numberList.Add(new ListPickerItemModel() { Text = "10", Value = "10" });
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -233,6 +241,7 @@ namespace CampusAppWP8.Model.Lecture
|
||||
this.courseList.Add(new ListPickerItemModel() { Text = "Architektur.Studium.Generale", Value = "858" });
|
||||
this.courseList.Add(new ListPickerItemModel() { Text = "Verarbeitungstechnologien der Werkstoffe", Value = "860" });
|
||||
this.courseList.Add(new ListPickerItemModel() { Text = "Forensic Sciences and Engineering", Value = "871" });
|
||||
this.courseList = this.courseList.OrderBy(o => o.Text).ToList();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
64
CampusAppWP8/CampusAppWP8/Model/Link/LinkListModel.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="LinkListModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace CampusAppWP8.Model.Link
|
||||
{
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// Model for a list of links.
|
||||
/// </summary>
|
||||
[XmlRoot("root")]
|
||||
public class LinkListModel
|
||||
{
|
||||
#region Member
|
||||
|
||||
/// <summary>
|
||||
/// Time when the model was created.
|
||||
/// </summary>
|
||||
private readonly DateTime createTime;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LinkListModel" /> class.
|
||||
/// </summary>
|
||||
public LinkListModel()
|
||||
{
|
||||
this.createTime = DateTime.Now;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Property
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets feed information item list.
|
||||
/// </summary>
|
||||
[XmlArray("data")]
|
||||
[XmlArrayItem("link")]
|
||||
public ObservableCollection<LinkModel> Links { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the creation time of the model.
|
||||
/// </summary>
|
||||
public DateTime CreateTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.createTime;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
173
CampusAppWP8/CampusAppWP8/Model/Link/LinkModel.cs
Normal file
@@ -0,0 +1,173 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="LinkModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace CampusAppWP8.Model.Link
|
||||
{
|
||||
using System.Globalization;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// Model for menu
|
||||
/// </summary>
|
||||
public class LinkModel
|
||||
{
|
||||
#region Member
|
||||
|
||||
/// <summary>
|
||||
/// German version of the link title.
|
||||
/// </summary>
|
||||
private string titleDE;
|
||||
|
||||
/// <summary>
|
||||
/// English version of the link title.
|
||||
/// </summary>
|
||||
private string titleEN;
|
||||
|
||||
/// <summary>
|
||||
/// German version of the link.
|
||||
/// </summary>
|
||||
private string linkDE;
|
||||
|
||||
/// <summary>
|
||||
/// English version of the link.
|
||||
/// </summary>
|
||||
private string linkEN;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LinkModel" /> class.
|
||||
/// </summary>
|
||||
public LinkModel()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Property
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the german title of the link.
|
||||
/// </summary>
|
||||
[XmlAttribute("title_de")]
|
||||
public string Title_DE
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.titleDE;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.titleDE)
|
||||
{
|
||||
this.titleDE = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the english title of the link.
|
||||
/// </summary>
|
||||
[XmlAttribute("title_en")]
|
||||
public string Title_EN
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.titleEN;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.titleEN = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the german link.
|
||||
/// </summary>
|
||||
[XmlAttribute("link_de")]
|
||||
public string Link_DE
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.linkDE;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.linkDE)
|
||||
{
|
||||
this.linkDE = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the english link.
|
||||
/// </summary>
|
||||
[XmlAttribute("link_en")]
|
||||
public string Link_EN
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.linkEN;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.linkEN)
|
||||
{
|
||||
this.linkEN = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the localized title. If the phone is set to german language,
|
||||
/// the german title will be returned otherwise the english title.
|
||||
/// </summary>
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
if (CultureInfo.CurrentUICulture.Name.StartsWith("de"))
|
||||
{
|
||||
return this.titleDE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.titleEN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the localized link. if the phone is set to german language,
|
||||
/// the german comment will be returned otherwise the english link.
|
||||
/// </summary>
|
||||
public string Link
|
||||
{
|
||||
get
|
||||
{
|
||||
if (CultureInfo.CurrentUICulture.Name.StartsWith("de"))
|
||||
{
|
||||
return this.Link_DE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.Link_EN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
424
CampusAppWP8/CampusAppWP8/Model/MainModel.cs
Normal file
@@ -0,0 +1,424 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="MainModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>05.07.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8
|
||||
{
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
/// <summary>
|
||||
/// Base model io handling class.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">model type</typeparam>
|
||||
public abstract class MainModel<T> : IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// Model io type.
|
||||
/// </summary>
|
||||
private ModelType modelType;
|
||||
|
||||
/// <summary>
|
||||
/// Model object.
|
||||
/// </summary>
|
||||
private T model = default(T);
|
||||
|
||||
/// <summary>
|
||||
/// File object.
|
||||
/// </summary>
|
||||
private CampusAppWP8.Utility.File file = null;
|
||||
|
||||
/// <summary>
|
||||
/// Web object.
|
||||
/// </summary>
|
||||
private HttpRequest api = null;
|
||||
|
||||
/// <summary>
|
||||
/// Filename of saved data.
|
||||
/// </summary>
|
||||
private string fileName = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Url of the feed data.
|
||||
/// </summary>
|
||||
private Uri httpApiUri = null;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="MainModel{T}" /> class.
|
||||
/// </summary>
|
||||
/// <param name="modelType">Model IO type</param>
|
||||
/// <param name="fileName">name of the file</param>
|
||||
/// <param name="url">url of the feed</param>
|
||||
public MainModel(ModelType modelType, string fileName, string url)
|
||||
{
|
||||
this.modelType = modelType;
|
||||
|
||||
if ((url != null) && (url.Equals(string.Empty) == false))
|
||||
{
|
||||
this.httpApiUri = new Uri(url, UriKind.Absolute);
|
||||
}
|
||||
|
||||
this.fileName = fileName;
|
||||
|
||||
if ((this.IsFile() == true)
|
||||
&& (fileName.Equals(string.Empty) == false))
|
||||
{
|
||||
this.InitFile(CampusAppWP8.Utility.File.IOTypeRead.ReadSync, CampusAppWP8.Utility.File.IOTypeWrite.WriteAsync);
|
||||
}
|
||||
|
||||
if ((this.IsHttpApi() == true)
|
||||
&& (url.Equals(string.Empty) == false))
|
||||
{
|
||||
this.InitHttpApi();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Finalizes an instance of the <see cref="MainModel{T}" /> class.
|
||||
/// </summary>
|
||||
~MainModel()
|
||||
{
|
||||
this.SaveData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delegate of the OnLoading callback function.
|
||||
/// </summary>
|
||||
public delegate void OnLoading();
|
||||
|
||||
/// <summary>
|
||||
/// Delegate of the OnLoaded callback function.
|
||||
/// </summary>
|
||||
public delegate void OnLoaded();
|
||||
|
||||
/// <summary>
|
||||
/// Delegate of the OnSaving callback function.
|
||||
/// </summary>
|
||||
public delegate void OnSaving();
|
||||
|
||||
/// <summary>
|
||||
/// Delegate of the OnSaved callback function.
|
||||
/// </summary>
|
||||
public delegate void OnSaved();
|
||||
|
||||
/// <summary>
|
||||
/// Delegate of the IsModelUpToDate callback function.
|
||||
/// </summary>
|
||||
/// <param name="model">data model</param>
|
||||
/// <returns>true, model is up to date</returns>
|
||||
public delegate bool IsModelUpToDate(T model);
|
||||
|
||||
/// <summary>
|
||||
/// Delegate of the IsFileUpToDate callback function.
|
||||
/// </summary>
|
||||
/// <param name="model">data model</param>
|
||||
/// <param name="fileInfo">info of the file</param>
|
||||
/// <returns>true, is file is up to date</returns>
|
||||
public delegate bool IsFileUpToDate(T model, FileInfo fileInfo);
|
||||
|
||||
/// <summary>
|
||||
/// Callback pointer, called before loading.
|
||||
/// </summary>
|
||||
public event OnLoading onLoading = null;
|
||||
|
||||
/// <summary>
|
||||
/// Callback pointer, called after loading.
|
||||
/// </summary>
|
||||
public event OnLoaded onLoaded = null;
|
||||
|
||||
/// <summary>
|
||||
/// Callback pointer, called before saving.
|
||||
/// </summary>
|
||||
public event OnSaving onSaving = null;
|
||||
|
||||
/// <summary>
|
||||
/// Callback pointer, called after saving.
|
||||
/// </summary>
|
||||
public event OnSaved onSaved = null;
|
||||
|
||||
/// <summary>
|
||||
/// Callback pointer, for checking if file is up to date.
|
||||
/// </summary>
|
||||
public event IsFileUpToDate isFileUpToDate = null;
|
||||
|
||||
/// <summary>
|
||||
/// Callback pointer, for checking if model is up to date.
|
||||
/// </summary>
|
||||
public event IsModelUpToDate isModelUpToDate = null;
|
||||
|
||||
/// <summary>
|
||||
/// Specifies the I/O type of the model.
|
||||
/// </summary>
|
||||
public enum ModelType
|
||||
{
|
||||
/// <summary>
|
||||
/// Invalid/unset state.
|
||||
/// </summary>
|
||||
INVALID = 0,
|
||||
|
||||
/// <summary>
|
||||
/// File only (01).
|
||||
/// </summary>
|
||||
File = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Feed only (10).
|
||||
/// </summary>
|
||||
Feed = 2,
|
||||
|
||||
/// <summary>
|
||||
/// File and feed (11).
|
||||
/// </summary>
|
||||
FileAndFeed = 3
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Model.
|
||||
/// </summary>
|
||||
public T Model
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.model;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.model = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called before finalizing. Can maybe be removed.
|
||||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
this.SaveData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Forces a update from web.
|
||||
/// </summary>
|
||||
public void ForceWebUpdate()
|
||||
{
|
||||
if (this.api != null)
|
||||
{
|
||||
if (this.onLoading != null)
|
||||
{
|
||||
this.onLoading();
|
||||
}
|
||||
|
||||
this.api.HttpGet(this.httpApiUri, this.OnLoadDataComplete);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Load the data if necessary, from web or from file, regarding if
|
||||
/// the file data is up to date.
|
||||
/// </summary>
|
||||
public void LoadData()
|
||||
{
|
||||
bool loadFromFile = true;
|
||||
|
||||
if (this.onLoading != null)
|
||||
{
|
||||
this.onLoading();
|
||||
}
|
||||
|
||||
if (((this.isModelUpToDate == null)
|
||||
|| (this.isModelUpToDate(this.model) == false))
|
||||
&& ((this.file != null) || this.api != null))
|
||||
{
|
||||
if (this.file != null)
|
||||
{
|
||||
if ((this.file.Exist() == false)
|
||||
|| (this.file.GetFileInfo().Length == 0))
|
||||
{
|
||||
loadFromFile = false;
|
||||
}
|
||||
|
||||
if (((this.isFileUpToDate != null) && (this.isFileUpToDate(this.model, this.file.GetFileInfo()) == false))
|
||||
|| (this.isFileUpToDate == null))
|
||||
{
|
||||
loadFromFile = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
loadFromFile = false;
|
||||
}
|
||||
|
||||
if (this.api == null)
|
||||
{
|
||||
loadFromFile = true;
|
||||
}
|
||||
|
||||
if (loadFromFile == false)
|
||||
{
|
||||
this.api.HttpGet(this.httpApiUri, this.OnLoadDataComplete);
|
||||
}
|
||||
else
|
||||
{
|
||||
string data = this.file.ReadFile();
|
||||
|
||||
if (data != null && !data.Equals(string.Empty))
|
||||
{
|
||||
this.DeserializeModel(Encoding.UTF8.GetBytes(data));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (loadFromFile == true)
|
||||
{
|
||||
if (this.onLoaded != null)
|
||||
{
|
||||
this.onLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Save the model data if necessary.
|
||||
/// </summary>
|
||||
public void SaveData()
|
||||
{
|
||||
if ((this.file != null)
|
||||
&& ((this.isFileUpToDate == null) || (this.isFileUpToDate(this.model, this.file.GetFileInfo()) == false)))
|
||||
{
|
||||
if (this.onSaving != null)
|
||||
{
|
||||
this.onSaving();
|
||||
}
|
||||
|
||||
byte[] data = this.SerializeModel();
|
||||
this.file.WriteFile(data);
|
||||
|
||||
if (this.onSaved != null)
|
||||
{
|
||||
this.onSaved();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the model io type.
|
||||
/// </summary>
|
||||
/// <returns>model io type</returns>
|
||||
public ModelType GetModelType()
|
||||
{
|
||||
return this.modelType;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the model.
|
||||
/// </summary>
|
||||
/// <returns>model object</returns>
|
||||
public T GetModel()
|
||||
{
|
||||
return this.model;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Abstract declaration of the model deserialize function.
|
||||
/// </summary>
|
||||
/// <param name="modelData">model data as byte array</param>
|
||||
/// <returns>true, is succeeded</returns>
|
||||
protected abstract bool DeserializeModel(byte[] modelData);
|
||||
|
||||
/// <summary>
|
||||
/// Abstract declaration of the model serialize function.
|
||||
/// </summary>
|
||||
/// <returns>model data as byte array</returns>
|
||||
protected abstract byte[] SerializeModel();
|
||||
|
||||
/// <summary>
|
||||
/// Check if the model io type is file.
|
||||
/// </summary>
|
||||
/// <returns>true, if the model io type has file.</returns>
|
||||
protected bool IsFile()
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
if ((this.modelType & ModelType.File) != 0)
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if the model io type is feed.
|
||||
/// </summary>
|
||||
/// <returns>true if the model io type has feed.</returns>
|
||||
protected bool IsHttpApi()
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
if ((this.modelType & ModelType.Feed) != 0)
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the file object.
|
||||
/// </summary>
|
||||
/// <param name="readType">read io type (Default: sync)</param>
|
||||
/// <param name="writeType">write io type (Default: async)</param>
|
||||
private void InitFile(CampusAppWP8.Utility.File.IOTypeRead readType = CampusAppWP8.Utility.File.IOTypeRead.ReadSync, CampusAppWP8.Utility.File.IOTypeWrite writeType = CampusAppWP8.Utility.File.IOTypeWrite.WriteAsync)
|
||||
{
|
||||
if ((this.IsFile() == true)
|
||||
&& (this.file == null))
|
||||
{
|
||||
this.file = new CampusAppWP8.Utility.File(this.fileName, readType, writeType);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the web object.
|
||||
/// </summary>
|
||||
private void InitHttpApi()
|
||||
{
|
||||
if ((this.IsHttpApi() == true)
|
||||
&& (this.api == null))
|
||||
{
|
||||
this.api = new HttpRequest();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Is called after the loading from web is complete.
|
||||
/// </summary>
|
||||
/// <param name="sender">sending object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void OnLoadDataComplete(object sender, DownloadStringCompletedEventArgs e)
|
||||
{
|
||||
Exception downloadError = e.Error;
|
||||
if (downloadError != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string downloadResult = e.Result;
|
||||
if (downloadResult != null && !downloadResult.Equals(string.Empty))
|
||||
{
|
||||
this.DeserializeModel(Encoding.UTF8.GetBytes(downloadResult));
|
||||
}
|
||||
|
||||
if (this.onLoaded != null)
|
||||
{
|
||||
this.onLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>03.05.2013</sience>
|
||||
// <sience>04.05.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.Mensa
|
||||
{
|
||||
56
CampusAppWP8/CampusAppWP8/Model/RSS/RSSChannelModel.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="RSSChannelModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.RSS
|
||||
{
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// Channel Model, which contains the RSS feed item list.
|
||||
/// </summary>
|
||||
public class RSSChannelModel
|
||||
{
|
||||
/// <summary>
|
||||
/// RSS feed information item list.
|
||||
/// </summary>
|
||||
private ObservableCollection<RSSModel> item;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="RSSChannelModel" /> class.
|
||||
/// </summary>
|
||||
public RSSChannelModel()
|
||||
{
|
||||
this.item = new ObservableCollection<RSSModel>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the RSS feed item list.
|
||||
/// </summary>
|
||||
[XmlElement("item")]
|
||||
public ObservableCollection<RSSModel> Item
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.item;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.item)
|
||||
{
|
||||
this.item = value;
|
||||
int i = 0;
|
||||
foreach (RSSModel rssItem in this.item)
|
||||
{
|
||||
rssItem.Index = i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
256
CampusAppWP8/CampusAppWP8/Model/RSS/RSSModel.cs
Normal file
@@ -0,0 +1,256 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="RSSModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.RSS
|
||||
{
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// Contains the RSS feed information.
|
||||
/// </summary>
|
||||
public class RSSModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Index of this object.
|
||||
/// </summary>
|
||||
private int index = -1;
|
||||
|
||||
/// <summary>
|
||||
/// Title of the fees
|
||||
/// </summary>
|
||||
private string title;
|
||||
|
||||
/// <summary>
|
||||
/// Description text of the feed.
|
||||
/// </summary>
|
||||
private string text;
|
||||
|
||||
/// <summary>
|
||||
/// Timestamp (publication date) of the event or news.
|
||||
/// </summary>
|
||||
private DateTime timestamp;
|
||||
|
||||
/// <summary>
|
||||
/// Url of the feed.
|
||||
/// </summary>
|
||||
private string link;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the title of the feed.
|
||||
/// </summary>
|
||||
[XmlElement("title")]
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.title;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.title != value)
|
||||
{
|
||||
this.title = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the text of the feed.
|
||||
/// </summary>
|
||||
[XmlElement("description")]
|
||||
public string Text
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.text;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.text != this.HTMLUnicodeToString(value))
|
||||
{
|
||||
this.text = this.HTMLUnicodeToString(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the timestamp of the feed as string.
|
||||
/// </summary>
|
||||
[XmlElement("pubDate")]
|
||||
public string Timestamp
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.timestamp.ToString("R");
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.timestamp != DateTime.Parse(value))
|
||||
{
|
||||
this.timestamp = DateTime.Parse(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the timestamp of the feed as DateTime object.
|
||||
/// </summary>
|
||||
public DateTime DTTimestamp
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.timestamp;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.timestamp = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the date of the timestamp as string.
|
||||
/// example: Mon, 25.06.2013.
|
||||
/// </summary>
|
||||
public string Date
|
||||
{
|
||||
get
|
||||
{
|
||||
return string.Format("{0:ddd, dd.MM.yyyy}", this.timestamp);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the time of the timestamp as string.
|
||||
/// example: 12:56 Uhr.
|
||||
/// </summary>
|
||||
public string Time
|
||||
{
|
||||
get
|
||||
{
|
||||
return string.Format("{0:h:mm} Uhr", this.timestamp);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the link/url of the feed.
|
||||
/// </summary>
|
||||
[XmlElement("link")]
|
||||
public string Link
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.link;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (this.link != value)
|
||||
{
|
||||
this.link = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the ListIndex.
|
||||
/// </summary>
|
||||
public int Index
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.index;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
this.index = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Comparing function for DateTime timestamps.
|
||||
/// (currently unused)
|
||||
/// </summary>
|
||||
/// <param name="item1">first item</param>
|
||||
/// <param name="item2">second item</param>
|
||||
/// <returns>-1 if item2 is older then item1, otherwise 0</returns>
|
||||
public static int CompareTimeStamp(RSSModel item1, RSSModel item2)
|
||||
{
|
||||
if (item1.DTTimestamp > item2.DTTimestamp)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove or transform html-unicode specific tags into ASCII.
|
||||
/// </summary>
|
||||
/// <param name="htmluni">html string</param>
|
||||
/// <returns>ASCII string</returns>
|
||||
private string HTMLUnicodeToString(string htmluni)
|
||||
{
|
||||
StringBuilder retValue = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < htmluni.Length; i++)
|
||||
{
|
||||
switch (htmluni[i])
|
||||
{
|
||||
// beginning tag of the unicode
|
||||
case '&':
|
||||
int startOff = i + 2;
|
||||
//// sear closing tag of the unicode
|
||||
int endOff = htmluni.IndexOf(';', startOff);
|
||||
//// get and parse value inbetween
|
||||
string sub = htmluni.Substring(startOff, endOff - startOff);
|
||||
int charVal = int.Parse(sub);
|
||||
|
||||
switch (charVal)
|
||||
{
|
||||
// if the unicode value is 128 (€)
|
||||
case 128:
|
||||
retValue.Append('€');
|
||||
break;
|
||||
|
||||
default:
|
||||
retValue.Append((char)charVal);
|
||||
break;
|
||||
}
|
||||
|
||||
// set the current index to the end of the unicode tag
|
||||
i = endOff;
|
||||
break;
|
||||
|
||||
case '<':
|
||||
// ignoring <..> html tags
|
||||
i = htmluni.IndexOf('>', i);
|
||||
break;
|
||||
|
||||
case '\t':
|
||||
// removing tabs
|
||||
break;
|
||||
|
||||
default:
|
||||
// adding other characters to the return string
|
||||
retValue.Append(htmluni[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
71
CampusAppWP8/CampusAppWP8/Model/RSS/RSSViewModel.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="RSSViewModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.RSS
|
||||
{
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// ViewModel of the RSS feed, containing the feed/channel object.
|
||||
/// </summary>
|
||||
[XmlRoot("root")]
|
||||
public class RSSViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Object to store the time when the instance was created.
|
||||
/// </summary>
|
||||
private DateTime createTime;
|
||||
|
||||
/// <summary>
|
||||
/// Channel list for the RSS feeds.
|
||||
/// </summary>
|
||||
private ObservableCollection<RSSChannelModel> channel;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="RSSViewModel" /> class.
|
||||
/// </summary>
|
||||
public RSSViewModel()
|
||||
{
|
||||
this.channel = new ObservableCollection<RSSChannelModel>();
|
||||
this.createTime = DateTime.Now;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the channel list.
|
||||
/// </summary>
|
||||
[XmlArray("rss")]
|
||||
[XmlArrayItem("channel")]
|
||||
public ObservableCollection<RSSChannelModel> Channel
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.channel;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.channel)
|
||||
{
|
||||
this.channel = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the creation time.
|
||||
/// </summary>
|
||||
public DateTime CreateTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.createTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="StudentCouncilListModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model.StudentCouncil
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
/// <summary>
|
||||
/// Model for menus in one week
|
||||
/// </summary>
|
||||
[XmlRoot("root")]
|
||||
public class StudentCouncilListModel
|
||||
{
|
||||
#region Members
|
||||
/// <summary>
|
||||
/// Time when the model was created
|
||||
/// </summary>
|
||||
private readonly DateTime createTime;
|
||||
|
||||
#endregion
|
||||
#region Constructor
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="StudentCouncilListModel" /> class.
|
||||
/// </summary>
|
||||
public StudentCouncilListModel()
|
||||
{
|
||||
this.createTime = DateTime.Now;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Proberty
|
||||
/// <summary>
|
||||
/// Gets or sets the StudentCouncils
|
||||
/// </summary>
|
||||
[XmlArray("data")]
|
||||
[XmlArrayItem("studentcouncil")]
|
||||
public ObservableCollection<StudentCouncilModel> StudentCouncils { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the creation time of the model
|
||||
/// </summary>
|
||||
public DateTime CreateTime
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.createTime;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
/// <summary>
|
||||
/// Method group the StudentCouncilList by Faculty
|
||||
/// </summary>
|
||||
/// <returns>a Dictionary, where the Key is name of the Faculty und the value is a List of StudentCouncil</returns>
|
||||
public Dictionary<string, List<StudentCouncilModel>> GetStudentCouncilsGroupByFaculty()
|
||||
{
|
||||
List<IGrouping<string, StudentCouncilModel>> tmpList = this.StudentCouncils.GroupBy(p => p.Faculty).ToList();
|
||||
Dictionary<string, List<StudentCouncilModel>> itemMap = new Dictionary<string, List<StudentCouncilModel>>();
|
||||
foreach (IGrouping<string, StudentCouncilModel> group in tmpList)
|
||||
{
|
||||
Dictionary<string, List<StudentCouncilModel>> tempDic = new Dictionary<string, List<StudentCouncilModel>>();
|
||||
itemMap.Add(group.Key, group.ToList());
|
||||
}
|
||||
|
||||
return itemMap;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="StudentCouncilModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace CampusAppWP8.Model.StudentCouncil
|
||||
{
|
||||
using System.Xml.Serialization;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
/// <summary>
|
||||
/// Model for menu
|
||||
/// </summary>
|
||||
public class StudentCouncilModel
|
||||
{
|
||||
#region Member
|
||||
|
||||
/// <summary>
|
||||
/// name of the faculty.
|
||||
/// </summary>
|
||||
private string faculty;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="StudentCouncilModel" /> class.
|
||||
/// </summary>
|
||||
public StudentCouncilModel()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Property
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the faculty of the StudentCouncil.
|
||||
/// </summary>
|
||||
[XmlAttribute("faculty")]
|
||||
public string Faculty
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.faculty;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (value != this.faculty)
|
||||
{
|
||||
this.faculty = value;
|
||||
int num;
|
||||
if (int.TryParse(this.faculty, out num))
|
||||
{
|
||||
this.faculty = AppResources.Faculty + " " + num;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the StudentCouncil.
|
||||
/// </summary>
|
||||
[XmlAttribute("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the webpage-url of the StudentCouncil.
|
||||
/// </summary>
|
||||
[XmlAttribute("url")]
|
||||
public string Url { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the email-address of the StudentCouncil.
|
||||
/// </summary>
|
||||
[XmlAttribute("email")]
|
||||
public string Email { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
71
CampusAppWP8/CampusAppWP8/Model/XmlModel.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="XmlModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>05.07.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model
|
||||
{
|
||||
using System.Text;
|
||||
using CampusAppWP8.Resources;
|
||||
using CampusAppWP8.Utility;
|
||||
|
||||
/// <summary>
|
||||
/// Xml model io handler class.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">model type</typeparam>
|
||||
public class XmlModel<T> : MainModel<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="XmlModel{T}" /> class.
|
||||
/// </summary>
|
||||
/// <param name="modelType">model io type</param>
|
||||
/// <param name="fileName">filename of the data file</param>
|
||||
/// <param name="url">url of the feed data</param>
|
||||
public XmlModel(ModelType modelType, string fileName, string url)
|
||||
: base(modelType, fileName, url)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create the model from a xml byte array.
|
||||
/// </summary>
|
||||
/// <param name="modelData">model data</param>
|
||||
/// <returns>true, if succeeded</returns>
|
||||
protected override bool DeserializeModel(byte[] modelData)
|
||||
{
|
||||
bool retValue = true;
|
||||
|
||||
string data = Encoding.UTF8.GetString(modelData, 0, modelData.Length);
|
||||
|
||||
T tempModel = XmlManager.DeserializationToModel<T>(data, Constants.XMLRootElementName);
|
||||
if (tempModel != null)
|
||||
{
|
||||
this.Model = tempModel;
|
||||
}
|
||||
else
|
||||
{
|
||||
retValue = false;
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Serializes the model to a byte array.
|
||||
/// </summary>
|
||||
/// <returns>model data</returns>
|
||||
protected override byte[] SerializeModel()
|
||||
{
|
||||
byte[] retValue = null;
|
||||
|
||||
if (this.Model != null)
|
||||
{
|
||||
retValue = Encoding.UTF8.GetBytes(XmlManager.SerializationToString<T>(this.Model));
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.Pages.Departments.DepartmentFavoritePage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.Favorites, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
|
||||
<ListBox x:Name="ContentPanel" ItemsSource="{Binding Chairs}" Grid.Row="1" Margin="12,0,12,0">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<!--chair main button-->
|
||||
<Button Tag="{Binding Url}" Click="ChairTB_Click" HorizontalContentAlignment="Left">
|
||||
<TextBlock Text="{Binding Name}" HorizontalAlignment="Stretch" TextWrapping="Wrap" FontSize="24"/>
|
||||
</Button>
|
||||
<StackPanel Visibility="Collapsed">
|
||||
<!--delete button-->
|
||||
<Button BorderBrush="Transparent" Tag="{Binding Name}" Click="DeleteBtn_Click" HorizontalContentAlignment="Left">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="64"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Grid.Column="0" Grid.Row="0" Height="32" Width="32" Source="{Binding Path=ThemelizedIcon.Delete, Source={StaticResource ThemelizedIcons}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Path=LocalizedResources.Delete, Source={StaticResource LocalizedStrings}}" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
<!--info button-->
|
||||
<Button x:Name="InfoBtn" BorderBrush="Transparent" Tag="{Binding Url}" Click="InfoBtn_Click" HorizontalContentAlignment="Left">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="64"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Grid.Column="0" Grid.Row="0" Height="32" Width="32" Source="{Binding Path=ThemelizedIcon.Info, Source={StaticResource ThemelizedIcons}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Path=LocalizedResources.Info, Source={StaticResource LocalizedStrings}}" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
@@ -0,0 +1,112 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="DepartmentFavoritePage.xaml.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>01.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Departments
|
||||
{
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Page to visualize the favorite department list.
|
||||
/// </summary>
|
||||
public partial class DepartmentFavoritePage : PhoneApplicationPage
|
||||
{
|
||||
/// <summary>
|
||||
/// Object to store the last clicked chair button.
|
||||
/// </summary>
|
||||
private FrameworkElement lastClickedBtn = null;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepartmentFavoritePage" /> class.
|
||||
/// </summary>
|
||||
public DepartmentFavoritePage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On navigation to this page.
|
||||
/// Initialize the list source.
|
||||
/// </summary>
|
||||
/// <param name="e">event args</param>
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
this.ContentPanel.ItemsSource = DepartmentIndexPage.GetFavoriteFeed().GetModel().Faculties[0].Chairs;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On clicking on a chair button.
|
||||
/// Open or close the chair details.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked button</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void ChairTB_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement tempBtn = sender as FrameworkElement;
|
||||
StackPanel tempParent = null;
|
||||
|
||||
if (tempBtn == this.lastClickedBtn)
|
||||
{
|
||||
tempParent = this.lastClickedBtn.Parent as StackPanel;
|
||||
tempParent.Children[1].Visibility = Visibility.Collapsed;
|
||||
this.lastClickedBtn = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.lastClickedBtn != null)
|
||||
{
|
||||
tempParent = this.lastClickedBtn.Parent as StackPanel;
|
||||
tempParent.Children[1].Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
tempParent = tempBtn.Parent as StackPanel;
|
||||
tempParent.Children[1].Visibility = Visibility.Visible;
|
||||
|
||||
this.lastClickedBtn = tempBtn;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On clicking on a delete button.
|
||||
/// Removes the chair from the favorite list.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked button</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void DeleteBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button btn = this.lastClickedBtn as Button;
|
||||
TextBlock btnText = btn.Content as TextBlock;
|
||||
|
||||
if (DepartmentIndexPage.GetFavoriteFeed().GetModel().Faculties[0].RemoveChair(btnText.Text) == true)
|
||||
{
|
||||
MessageBox.Show(AppResources.DeleteSucceeded);
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(AppResources.DeleteFailed);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On clicking on a info button.
|
||||
/// Open a department info page.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked button</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void InfoBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement infoBtn = sender as FrameworkElement;
|
||||
string chairName = ((this.lastClickedBtn as Button).Content as TextBlock).Text.ToString();
|
||||
|
||||
NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentInfoPage + "?url=" + infoBtn.Tag.ToString() + "&name=" + chairName, UriKind.Relative));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.Pages.Departments.DepartmentIndexPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.DepartmentApp_Title, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
|
||||
<ListBox x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<!--favorite button-->
|
||||
<Button x:Name="Favorite" Click="FavoriteBtn_Click" HorizontalContentAlignment="Left">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="64"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Image Width="32" Height="32" Grid.Row="0" Grid.Column="0" Source="{Binding Path=ThemelizedIcon.Favorite, Source={StaticResource ThemelizedIcons}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=LocalizedResources.Favorites, Source={StaticResource LocalizedStrings}}" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
</ListBox>
|
||||
<!--faculty button list-->
|
||||
<ListBox x:Name="FacultyList" Grid.Row="2" Margin="12,0,12,0">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<!--faculty button-->
|
||||
<Button Tag="{Binding Id}" Click="FacultyBtn_Click" HorizontalContentAlignment="Left">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="64"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Image Width="32" Height="32" Grid.Row="0" Grid.Column="0" Source="{Binding Path=ThemelizedIcon.Departments, Source={StaticResource ThemelizedIcons}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
</phone:PhoneApplicationPage>
|
||||
@@ -0,0 +1,160 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="DepartmentIndexPage.xaml.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Departments
|
||||
{
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Feed.Departments;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Page with a list of the faculties.
|
||||
/// </summary>
|
||||
public partial class DepartmentIndexPage : PhoneApplicationPage
|
||||
{
|
||||
/// <summary>
|
||||
/// Department/chair feed object, storing the model and data.
|
||||
/// </summary>
|
||||
private static DepartmentFeed feed = null;
|
||||
|
||||
/// <summary>
|
||||
/// Department feed object for storing the favorite list.
|
||||
/// </summary>
|
||||
private static DepartmentFavoriteFeed favorite = null;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepartmentIndexPage" /> class.
|
||||
/// </summary>
|
||||
public DepartmentIndexPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
//// init feed objects
|
||||
if (DepartmentIndexPage.feed == null)
|
||||
{
|
||||
DepartmentIndexPage.feed = new DepartmentFeed(false);
|
||||
}
|
||||
|
||||
DepartmentIndexPage.feed.onLoaded += new DepartmentFeed.OnLoaded(this.SetupFacultyList);
|
||||
DepartmentIndexPage.feed.LoadData();
|
||||
|
||||
if (DepartmentIndexPage.favorite == null)
|
||||
{
|
||||
DepartmentIndexPage.favorite = new DepartmentFavoriteFeed(false);
|
||||
}
|
||||
|
||||
DepartmentIndexPage.favorite.onLoaded += new DepartmentFavoriteFeed.OnLoaded(this.CheckFavoriteFeed);
|
||||
DepartmentIndexPage.favorite.LoadData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the feed object of the departments.
|
||||
/// </summary>
|
||||
/// <returns>feed object</returns>
|
||||
public static DepartmentFeed GetFeed()
|
||||
{
|
||||
return DepartmentIndexPage.feed; // DepartmentIndexPage.feed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the feed object of the favorite departments.
|
||||
/// </summary>
|
||||
/// <returns>feed object</returns>
|
||||
public static DepartmentFavoriteFeed GetFavoriteFeed()
|
||||
{
|
||||
return DepartmentIndexPage.favorite; // DepartmentIndexPage.favorite;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On navigation to this page.
|
||||
/// Initialize the feed loading.
|
||||
/// </summary>
|
||||
/// <param name="e">event args</param>
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
|
||||
if (NavigationMode.Back != e.NavigationMode)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On navigation from this page.
|
||||
/// Store the favorite list.
|
||||
/// </summary>
|
||||
/// <param name="e">event args</param>
|
||||
protected override void OnNavigatedFrom(NavigationEventArgs e)
|
||||
{
|
||||
if (NavigationMode.Back == e.NavigationMode)
|
||||
{
|
||||
DepartmentIndexPage.favorite.SaveData();
|
||||
}
|
||||
|
||||
base.OnNavigatedFrom(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On orientation changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">sender object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Setup the faculty list.
|
||||
/// </summary>
|
||||
private void SetupFacultyList()
|
||||
{
|
||||
this.FacultyList.ItemsSource = DepartmentIndexPage.feed.GetModel().Faculties;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if the favorite feed is valid.
|
||||
/// </summary>
|
||||
private void CheckFavoriteFeed()
|
||||
{
|
||||
if (DepartmentIndexPage.favorite.GetModel() == null)
|
||||
{
|
||||
DepartmentIndexPage.favorite.Model = new Model.Departments.DepartmentModel();
|
||||
}
|
||||
|
||||
if (DepartmentIndexPage.favorite.GetModel().Faculties.Count() == 0)
|
||||
{
|
||||
DepartmentIndexPage.favorite.Model.Faculties.Add(new Model.Departments.FacultyModel("favorites"));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On clicking on the favorite button.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked button</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void FavoriteBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentFavoritePage, UriKind.Relative));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On clicking on a faculty button.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked button</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void FacultyBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement tempElem = sender as FrameworkElement;
|
||||
|
||||
NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentPage + "?pivotindex=" + tempElem.Tag, UriKind.Relative));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.Pages.Departments.DepartmentInfoPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
OrientationChanged="PhoneApplicationPage_OrientationChanged"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--title-->
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.DepartmentApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
<TextBlock x:Name="PageHeadline" Text="Seitenname" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" FontSize="36" TextWrapping="Wrap"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--webbrowser-->
|
||||
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
|
||||
<phone:WebBrowser x:Name="WebBrowser" Grid.Row="0" IsScriptEnabled="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
@@ -0,0 +1,56 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="DepartmentInfoPage.xaml.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>01.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Departments
|
||||
{
|
||||
using System;
|
||||
using System.Windows.Navigation;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Info page of a chair.
|
||||
/// </summary>
|
||||
public partial class DepartmentInfoPage : PhoneApplicationPage
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DepartmentInfoPage" /> class.
|
||||
/// </summary>
|
||||
public DepartmentInfoPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On navigation to this page.
|
||||
/// Initialize the page headline text.
|
||||
/// </summary>
|
||||
/// <param name="e">event args</param>
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
|
||||
string url = string.Empty;
|
||||
string chairName = string.Empty;
|
||||
|
||||
if (NavigationContext.QueryString.TryGetValue("url", out url)
|
||||
&& NavigationContext.QueryString.TryGetValue("name", out chairName))
|
||||
{
|
||||
this.PageHeadline.Text = chairName;
|
||||
this.WebBrowser.Navigate(new Uri(url, UriKind.Absolute));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On orientation changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">sender object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,13 +15,10 @@
|
||||
OrientationChanged="PhoneApplicationPage_OrientationChanged"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<phone:PhoneApplicationPage.Resources>
|
||||
<viewModel:DepartmentViewModel x:Key="DepartmentViewModel" x:Name="DepartmentView" />
|
||||
</phone:PhoneApplicationPage.Resources>
|
||||
<!-- LayoutRoot -->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.DataContext>
|
||||
<viewModel:DepartmentViewModel />
|
||||
<viewModel:DepartmentModel />
|
||||
</Grid.DataContext>
|
||||
<!-- Pivot -->
|
||||
<phone:Pivot x:Name="DepartmentPivot" Title="{Binding Path=LocalizedResources.DepartmentApp_Title, Source={StaticResource LocalizedStrings}}" ItemsSource="{Binding Faculties}">
|
||||
@@ -33,30 +30,50 @@
|
||||
</phone:Pivot.HeaderTemplate>
|
||||
<phone:Pivot.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<!-- TEMPORARILY REMOVED, will be abck in soon
|
||||
<phone:LongListSelector ItemsSource="{Binding Faculties}">
|
||||
<phone:LongListSelector.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<Button x:Name="DepartmentBtn" Content="{Binding Name}" Background="Gray" BorderBrush="Gray" Foreground="Black" Click="DepartmentBtn_Click"/>
|
||||
<phone:LongListSelector Tag="{Binding Name}" Visibility="{Binding Visible}" ItemsSource="{Binding Chairs}">
|
||||
-->
|
||||
<ListBox ItemsSource="{Binding Chairs}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock x:Name="ChairTB" Tag="{Binding Url}" Text="{Binding Name_DE}" MouseLeftButtonDown="ChairTB_Click" Margin="12,6,12,6" Padding="0,0,0,0" HorizontalAlignment="Stretch" TextWrapping="Wrap" FontSize="24"/>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
<!--
|
||||
<ListBox ItemsSource="{Binding Chairs}">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<!--chair button-->
|
||||
<Button Tag="{Binding Url}" Click="ChairTB_Click" HorizontalContentAlignment="Left">
|
||||
<TextBlock Text="{Binding Name}" HorizontalAlignment="Stretch" TextWrapping="Wrap" FontSize="24"/>
|
||||
</Button>
|
||||
<StackPanel Visibility="Collapsed">
|
||||
<!--add to favorite button-->
|
||||
<Button BorderBrush="Transparent" Tag="{Binding Name}" Click="AddBtn_Click" HorizontalContentAlignment="Left">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="64"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Grid.Column="0" Grid.Row="0" Height="32" Width="32" Source="{Binding Path=ThemelizedIcon.Add, Source={StaticResource ThemelizedIcons}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Path=LocalizedResources.Add, Source={StaticResource LocalizedStrings}}" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
<!--info button-->
|
||||
<Button x:Name="InfoBtn" BorderBrush="Transparent" Tag="{Binding Url}" Click="InfoBtn_Click" HorizontalContentAlignment="Left">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="64"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Grid.Column="0" Grid.Row="0" Height="32" Width="32" Source="{Binding Path=ThemelizedIcon.Info, Source={StaticResource ThemelizedIcons}}" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Path=LocalizedResources.Info, Source={StaticResource LocalizedStrings}}" VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</phone:LongListSelector.ItemTemplate>
|
||||
</phone:LongListSelector>
|
||||
-->
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</DataTemplate>
|
||||
</phone:Pivot.ItemTemplate>
|
||||
</phone:Pivot>
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
@@ -1,130 +1,149 @@
|
||||
using CampusAppWP8.Api.Departments;
|
||||
using CampusAppWP8.Utility;
|
||||
using Microsoft.Phone.Controls;
|
||||
using Microsoft.Phone.Tasks;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="DepartmentPage.xaml.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>24.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Departments
|
||||
{
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Pivot page with list of the chairs of the facultis.
|
||||
/// Pivot page with list of the chairs of the faculties.
|
||||
/// </summary>
|
||||
public partial class DepartmentPage : PhoneApplicationPage
|
||||
{
|
||||
/// <summary>
|
||||
/// Stores the last visible department panel.
|
||||
/// For checking, if the source of the list is already set.
|
||||
/// </summary>
|
||||
private UIElement lastVisibleUIElem = null;
|
||||
private bool isSourceSet = false;
|
||||
|
||||
/// <summary>
|
||||
/// department/chair feed object, storing the model and data.
|
||||
/// Last clicked button object.
|
||||
/// </summary>
|
||||
private DepartmentFeed feed { get; set; }
|
||||
|
||||
private FrameworkElement lastClickedBtn = null;
|
||||
|
||||
/// <summary>
|
||||
/// Default constructor.
|
||||
/// Initializes a new instance of the <see cref="DepartmentPage" /> class.
|
||||
/// </summary>
|
||||
public DepartmentPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
// init feed object
|
||||
this.feed = new DepartmentFeed();
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On naviagtion to this page.
|
||||
/// Init the feed loading.
|
||||
/// On navigation to this page.
|
||||
/// Initialize the feed loading.
|
||||
/// </summary>
|
||||
/// <param name="e">event args</param>
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
|
||||
this.feed.EventHandler.FeedIsReadyEvent += new FeedEventHandler.FeedReadyHandler(SetupDepartmentPivot);
|
||||
this.feed.LoadFeed();
|
||||
}
|
||||
if (this.isSourceSet == false)
|
||||
{
|
||||
this.DepartmentPivot.ItemsSource = DepartmentIndexPage.GetFeed().GetModel().Faculties;
|
||||
this.isSourceSet = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called after the feeds are loaded.
|
||||
/// Set the pivotitem source of this page.
|
||||
/// </summary>
|
||||
private void SetupDepartmentPivot()
|
||||
{
|
||||
DepartmentPivot.ItemsSource = feed.Model._faculties;
|
||||
string pivotIndex = string.Empty;
|
||||
|
||||
// Navigate to the selected pivotitem
|
||||
if (NavigationContext.QueryString.TryGetValue("pivotindex", out pivotIndex))
|
||||
{
|
||||
int pivotIndexInt = int.Parse(pivotIndex) - 1;
|
||||
|
||||
// if the index is in the range of the array
|
||||
if ((pivotIndexInt >= 0) && (pivotIndexInt < DepartmentIndexPage.GetFeed().GetModel().Faculties.Count()))
|
||||
{
|
||||
DepartmentPivot.SelectedIndex = pivotIndexInt;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show("ERROR: pivotIndex out of range!!!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On orientation changed.
|
||||
/// </summary>
|
||||
/// <param name="sender">unused</param>
|
||||
/// <param name="e">unused</param>
|
||||
/// <param name="sender">sender object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called at clicking on the department headline buttons.
|
||||
/// Collapses all visible department panels and open (set to visible)
|
||||
/// the clicked department list.
|
||||
/// On clicking a chair TextBlock.
|
||||
/// Open the browser with the url of the chair.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked department button</param>
|
||||
/// <param name="e">unused</param>
|
||||
private void DepartmentBtn_Click(object sender, RoutedEventArgs e)
|
||||
/// <param name="sender">clicked chair TextBlock</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void ChairTB_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// if the sender was a button
|
||||
if(sender is Button)
|
||||
FrameworkElement tempBtn = sender as FrameworkElement;
|
||||
StackPanel tempParent = null;
|
||||
|
||||
if (this.lastClickedBtn != tempBtn)
|
||||
{
|
||||
Button btn = sender as Button;
|
||||
|
||||
// if the parent is a stackpanel
|
||||
if(btn.Parent is StackPanel)
|
||||
if (this.lastClickedBtn != null)
|
||||
{
|
||||
StackPanel pan = (StackPanel)btn.Parent;
|
||||
|
||||
// if there is a child after the clicked button in the parent panel
|
||||
if ((pan.Children.Count() > 1) && (pan.Children[1] != null))
|
||||
{
|
||||
// if the clicked department wasn't the one clicked before
|
||||
if (pan.Children[1] != this.lastVisibleUIElem)
|
||||
{
|
||||
// collapse the last visible chair list
|
||||
if (this.lastVisibleUIElem != null)
|
||||
this.lastVisibleUIElem.Visibility = Visibility.Collapsed;
|
||||
|
||||
// open the choosen chair list
|
||||
pan.Children[1].Visibility = Visibility.Visible;
|
||||
this.lastVisibleUIElem = pan.Children[1];
|
||||
}
|
||||
}
|
||||
tempParent = this.lastClickedBtn.Parent as StackPanel;
|
||||
tempParent.Children[1].Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
tempParent = tempBtn.Parent as StackPanel;
|
||||
tempParent.Children[1].Visibility = Visibility.Visible;
|
||||
|
||||
this.lastClickedBtn = tempBtn;
|
||||
}
|
||||
else
|
||||
{
|
||||
tempParent = this.lastClickedBtn.Parent as StackPanel;
|
||||
tempParent.Children[1].Visibility = Visibility.Collapsed;
|
||||
this.lastClickedBtn = null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On clicking a chair textbolock.
|
||||
/// Open the browser with the url of the chair.
|
||||
/// On clicking on a add button.
|
||||
/// Add the chair to the favorite list.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked chair textblock</param>
|
||||
/// <param name="e"></param>
|
||||
private void ChairTB_Click(object sender, RoutedEventArgs e)
|
||||
/// <param name="sender">clicked button</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void AddBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (sender is FrameworkElement)
|
||||
{
|
||||
FrameworkElement btn = sender as FrameworkElement;
|
||||
Button btn = this.lastClickedBtn as Button;
|
||||
TextBlock btnText = btn.Content as TextBlock;
|
||||
|
||||
// if the chair has a url in the tag element
|
||||
if ((btn.Tag != null) && ((btn.Tag as string).Length > 0))
|
||||
{
|
||||
// open browser with the url
|
||||
WebBrowserTask task = new WebBrowserTask();
|
||||
task.Uri = new Uri(btn.Tag.ToString(), UriKind.Absolute);
|
||||
task.Show();
|
||||
}
|
||||
Model.Departments.ChairModel tempModel = DepartmentIndexPage.GetFeed().GetModel().Faculties[this.DepartmentPivot.SelectedIndex].GetChairModel(btnText.Text);
|
||||
|
||||
if (tempModel != null)
|
||||
{
|
||||
DepartmentIndexPage.GetFavoriteFeed().GetModel().Faculties[0].AddChair(tempModel);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// On clicking on a info button.
|
||||
/// Open the info page to this chair.
|
||||
/// </summary>
|
||||
/// <param name="sender">clicked button</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void InfoBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement infoBtn = sender as FrameworkElement;
|
||||
string chairName = ((this.lastClickedBtn as Button).Content as TextBlock).Text.ToString();
|
||||
|
||||
NavigationService.Navigate(new Uri(Constants.PathDepartment_DepartmentInfoPage + "?url=" + infoBtn.Tag.ToString() + "&name=" + chairName, UriKind.Relative));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,11 @@
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
@@ -26,7 +27,20 @@
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.EventApp_Title, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
|
||||
</StackPanel>
|
||||
<!-- Content -->
|
||||
<ListBox x:Name="ButtonPanel" Grid.Row="1">
|
||||
<ListBox x:Name="EventList" Grid.Row="1">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<lui:NavigateButton Name="EventItem" QuerryStringValue="{Binding Index}" Url="{Binding Path=Constants.PathEvent_EventPage, Source={StaticResource Const}}" QuerryStringName="{Binding Path=Constants.ParamPivotIndex, Source={StaticResource Const}}" Style="{StaticResource ListButtonStyle}">
|
||||
<TextBlock TextWrapping="Wrap" Text="{Binding Title}" />
|
||||
</lui:NavigateButton>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
</phone:PhoneApplicationPage>
|
||||
@@ -7,27 +7,21 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Events
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Api.Events;
|
||||
using CampusAppWP8.Model.events_news;
|
||||
using CampusAppWP8.Feed.Events;
|
||||
using CampusAppWP8.Utility;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Overview page of all events.
|
||||
/// </summary>
|
||||
public partial class EventIndexPage : PhoneApplicationPage
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets Event Feed object, which contains the RSS models and data.
|
||||
/// Event Feed object, which contains the RSS models and data.
|
||||
/// </summary>
|
||||
public static EventFeed eventFeed { get; set; }
|
||||
private static EventFeed eventFeed = null;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="EventIndexPage" /> class.
|
||||
@@ -35,7 +29,23 @@ namespace CampusAppWP8.Pages.Events
|
||||
public EventIndexPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
EventIndexPage.eventFeed = new EventFeed();
|
||||
|
||||
if (EventIndexPage.eventFeed == null)
|
||||
{
|
||||
EventIndexPage.eventFeed = new EventFeed(false);
|
||||
}
|
||||
|
||||
EventIndexPage.eventFeed.onLoaded += new EventFeed.OnLoaded(this.SetupEventPageList);
|
||||
EventIndexPage.eventFeed.LoadData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the eventFeed object.
|
||||
/// </summary>
|
||||
/// <returns>event feed object</returns>
|
||||
public static EventFeed GetEventFeed()
|
||||
{
|
||||
return EventIndexPage.eventFeed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -45,17 +55,6 @@ namespace CampusAppWP8.Pages.Events
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
|
||||
if ((EventIndexPage.eventFeed.Model == null)
|
||||
|| (EventIndexPage.eventFeed.Model.Channel == null)
|
||||
|| (EventIndexPage.eventFeed.Model.Channel.Count() == 0)
|
||||
|| (EventIndexPage.eventFeed.Model.Channel[0].item == null)
|
||||
|| (EventIndexPage.eventFeed.Model.Channel[0].item.Count() == 0))
|
||||
{
|
||||
// Set handler and load the fees informations.
|
||||
EventIndexPage.eventFeed.EventHandler.FeedIsReadyEvent += new FeedEventHandler.FeedReadyHandler(this.SetupEventPageList);
|
||||
EventIndexPage.eventFeed.LoadFeed();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -65,53 +64,7 @@ namespace CampusAppWP8.Pages.Events
|
||||
/// </summary>
|
||||
private void SetupEventPageList()
|
||||
{
|
||||
if ((EventIndexPage.eventFeed.Model != null)
|
||||
&& (EventIndexPage.eventFeed.Model.Channel != null)
|
||||
&& (EventIndexPage.eventFeed.Model.Channel.Count() >= 1)
|
||||
&& (this.ButtonPanel.Items.Count() == 0))
|
||||
{
|
||||
// Sort the list of rssfeeds.
|
||||
IEnumerable<RSSModel> tempList = EventIndexPage.eventFeed.Model.Channel[0].item.OrderByDescending(e => e.DTTimestamp);
|
||||
EventIndexPage.eventFeed.Model.Channel[0].item = new ObservableCollection<RSSModel>(tempList);
|
||||
|
||||
// Create the buttons for the fees selection and add it to the buttonpanel.
|
||||
for (int i = 0; i < EventIndexPage.eventFeed.Model.Channel[0].item.Count(); i++)
|
||||
{
|
||||
Button tempBtn = new Button();
|
||||
tempBtn.Name = "EventRowAppButton";
|
||||
tempBtn.Content = EventIndexPage.eventFeed.Model.Channel[0].item[i].Title;
|
||||
tempBtn.VerticalContentAlignment = VerticalAlignment.Stretch;
|
||||
tempBtn.HorizontalContentAlignment = HorizontalAlignment.Stretch;
|
||||
tempBtn.BorderThickness = new Thickness(0.0);
|
||||
tempBtn.Padding = new Thickness(0.0);
|
||||
tempBtn.Click += this.EventRowAppButton_Click;
|
||||
tempBtn.Tag = i;
|
||||
|
||||
this.ButtonPanel.Items.Add(tempBtn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the eventFeed object.
|
||||
/// </summary>
|
||||
public static EventFeed GetEventFeed
|
||||
{
|
||||
get { return EventIndexPage.eventFeed; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Is called on clicking on a feed button.
|
||||
/// Navigates to the event pivot page with the information of the
|
||||
/// selected feed index.
|
||||
/// </summary>
|
||||
/// <param name="sender">pressed button object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void EventRowAppButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement tempElem = sender as FrameworkElement;
|
||||
|
||||
NavigationService.Navigate(new Uri("/pages/events/EventPage.xaml?pivotindex=" + tempElem.Tag, UriKind.Relative));
|
||||
this.EventList.ItemsSource = EventIndexPage.eventFeed.Model.Channel[0].Item;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,12 @@
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:viewModel="clr-namespace:CampusAppWP8.Model.events_news"
|
||||
xmlns:viewModel="clr-namespace:CampusAppWP8.Model.RSS"
|
||||
mc:Ignorable="d"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<phone:PhoneApplicationPage.Resources>
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>03.05.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
namespace CampusAppWP8.Pages.Events
|
||||
{
|
||||
using System;
|
||||
@@ -14,8 +13,7 @@ namespace CampusAppWP8.Pages.Events
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using Microsoft.Phone.Controls;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// EventPage, where every event fees has his own PivotItem.
|
||||
/// </summary>
|
||||
@@ -47,13 +45,8 @@ namespace CampusAppWP8.Pages.Events
|
||||
// Set pivotitem Source
|
||||
if (this.isSourceSet == false)
|
||||
{
|
||||
if ((EventIndexPage.GetEventFeed.Model != null)
|
||||
&& (EventIndexPage.GetEventFeed.Model.Channel != null)
|
||||
&& (EventIndexPage.GetEventFeed.Model.Channel.Count() >= 1))
|
||||
{
|
||||
this.EventPivot.ItemsSource = EventIndexPage.GetEventFeed.Model.Channel[0].item;
|
||||
this.isSourceSet = true;
|
||||
}
|
||||
this.EventPivot.ItemsSource = EventIndexPage.GetEventFeed().Model.Channel[0].Item;
|
||||
this.isSourceSet = true;
|
||||
}
|
||||
|
||||
string pivotIndex = string.Empty;
|
||||
@@ -64,7 +57,7 @@ namespace CampusAppWP8.Pages.Events
|
||||
int pivotIndexInt = int.Parse(pivotIndex);
|
||||
|
||||
// if the index is in the range of the array
|
||||
if ((pivotIndexInt >= 0) && (pivotIndexInt < EventIndexPage.GetEventFeed.Model.Channel[0].item.Count()))
|
||||
if ((pivotIndexInt >= 0) && (pivotIndexInt < EventIndexPage.GetEventFeed().Model.Channel[0].Item.Count()))
|
||||
{
|
||||
EventPivot.SelectedIndex = pivotIndexInt;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
@@ -22,11 +22,12 @@
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<ProgressBar Name="ProgressBar" Visibility="Collapsed" IsIndeterminate="True"/>
|
||||
<ProgressBar Name="ProgressBar" Grid.Row="1" Visibility="Collapsed" IsIndeterminate="True"/>
|
||||
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<Border BorderBrush="{StaticResource PhoneBorderBrush}" BorderThickness="0,0,0,2" >
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}"/>
|
||||
</Border>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextTitle2Style}"/>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
|
||||
@@ -53,7 +54,7 @@
|
||||
<Border BorderBrush="{StaticResource PhoneBorderBrush}" BorderThickness="0,2,0,0" Grid.Row="1">
|
||||
<StackPanel >
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Course, Source={StaticResource LocalizedStrings}}"/>
|
||||
<!-- Listpicket of courses -->
|
||||
<!-- Listpicket of courses -->
|
||||
<toolkit:ListPicker Name="Course" ExpansionMode="FullScreenOnly" FullModeHeader="{Binding Path=LocalizedResources.LectureApp_ListPickerHeaderCourse, Source={StaticResource LocalizedStrings}}" >
|
||||
<toolkit:ListPicker.ItemTemplate>
|
||||
<DataTemplate>
|
||||
@@ -64,9 +65,9 @@
|
||||
</toolkit:ListPicker.ItemTemplate>
|
||||
<toolkit:ListPicker.FullModeItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Text}"/>
|
||||
</StackPanel>
|
||||
<Border BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="12,0,0,0" Margin="0,0,0,6">
|
||||
<TextBlock Text="{Binding Text}" Style="{StaticResource PhoneTextGroupHeaderStyle}" TextWrapping="Wrap"/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</toolkit:ListPicker.FullModeItemTemplate>
|
||||
</toolkit:ListPicker>
|
||||
@@ -76,7 +77,7 @@
|
||||
<StackPanel >
|
||||
<!-- Listpicket of degree-->
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Degree, Source={StaticResource LocalizedStrings}}"/>
|
||||
<toolkit:ListPicker Name="Degree">
|
||||
<toolkit:ListPicker Name="Degree" ExpansionMode="FullScreenOnly">
|
||||
<toolkit:ListPicker.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
@@ -86,12 +87,12 @@
|
||||
</toolkit:ListPicker.ItemTemplate>
|
||||
<toolkit:ListPicker.FullModeItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Text}"/>
|
||||
</StackPanel>
|
||||
<Border BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="12,0,0,0" Margin="0,0,0,6">
|
||||
<TextBlock Text="{Binding Text}" Style="{StaticResource PhoneTextGroupHeaderStyle}" TextWrapping="Wrap"/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</toolkit:ListPicker.FullModeItemTemplate>
|
||||
</toolkit:ListPicker>
|
||||
</toolkit:ListPicker>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border BorderBrush="{StaticResource PhoneBorderBrush}" BorderThickness="0,2,0,0" Grid.Row="3">
|
||||
@@ -99,7 +100,7 @@
|
||||
<!-- Listpicket of semesters(from to) -->
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Term, Source={StaticResource LocalizedStrings}}"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<toolkit:ListPicker Width="60" Name="From" >
|
||||
<toolkit:ListPicker Width="60" Name="From" ExpansionMode="FullScreenOnly">
|
||||
<toolkit:ListPicker.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
@@ -109,14 +110,14 @@
|
||||
</toolkit:ListPicker.ItemTemplate>
|
||||
<toolkit:ListPicker.FullModeItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Text}"/>
|
||||
</StackPanel>
|
||||
<Border BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="12,0,0,0" Margin="0,0,0,6">
|
||||
<TextBlock Text="{Binding Text}" Style="{StaticResource PhoneTextGroupHeaderStyle}" TextWrapping="Wrap"/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</toolkit:ListPicker.FullModeItemTemplate>
|
||||
</toolkit:ListPicker>
|
||||
<TextBlock Text="bis" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
<toolkit:ListPicker Width="60" Name="To">
|
||||
<toolkit:ListPicker Width="60" Name="To" ExpansionMode="FullScreenOnly">
|
||||
<toolkit:ListPicker.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
@@ -126,11 +127,12 @@
|
||||
</toolkit:ListPicker.ItemTemplate>
|
||||
<toolkit:ListPicker.FullModeItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Text}"/>
|
||||
</StackPanel>
|
||||
<Border BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="12,0,0,0" Margin="0,0,0,6">
|
||||
<TextBlock Text="{Binding Text}" Style="{StaticResource PhoneTextGroupHeaderStyle}" TextWrapping="Wrap"/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</toolkit:ListPicker.FullModeItemTemplate>
|
||||
|
||||
</toolkit:ListPicker>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
@@ -139,7 +141,7 @@
|
||||
<StackPanel>
|
||||
<!-- Listpicket of semster -->
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Semester, Source={StaticResource LocalizedStrings}}"/>
|
||||
<toolkit:ListPicker Name="Semester">
|
||||
<toolkit:ListPicker Name="Semester" ExpansionMode="FullScreenOnly">
|
||||
<toolkit:ListPicker.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
@@ -149,9 +151,9 @@
|
||||
</toolkit:ListPicker.ItemTemplate>
|
||||
<toolkit:ListPicker.FullModeItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Text}"/>
|
||||
</StackPanel>
|
||||
<Border BorderBrush="{StaticResource PhoneAccentBrush}" BorderThickness="12,0,0,0" Margin="0,0,0,6">
|
||||
<TextBlock Text="{Binding Text}" Style="{StaticResource PhoneTextGroupHeaderStyle}" TextWrapping="Wrap"/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</toolkit:ListPicker.FullModeItemTemplate>
|
||||
</toolkit:ListPicker>
|
||||
@@ -159,7 +161,7 @@
|
||||
</Border>
|
||||
<Border BorderBrush="{StaticResource PhoneBorderBrush}" BorderThickness="0,2,0,0" Grid.Row="5">
|
||||
<Button Name="SearchButton" Click="SendRequest">
|
||||
<Image Name="SearchButtonImg" Source="{Binding Path=ThemelizedIcon.Search, Source={StaticResource ThemelizedIcons}}" Width="100" />
|
||||
<Image Name="SearchButtonImg" Source="{Binding Path=ThemelizedIcon.Search, Source={StaticResource ThemelizedIcons}}" Width="60" />
|
||||
</Button>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace CampusAppWP8.Pages.Lecture
|
||||
using System.Windows;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Api.Lecture;
|
||||
using CampusAppWP8.Feed.Lecture;
|
||||
using CampusAppWP8.Model.Lecture;
|
||||
using CampusAppWP8.Model.Utility;
|
||||
using CampusAppWP8.Resources;
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_DetailsHeader, Source={StaticResource LocalizedStrings}}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_DetailsHeader, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextTitle2Style}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
|
||||
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
@@ -13,39 +15,6 @@
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<phone:PhoneApplicationPage.Resources>
|
||||
<DataTemplate x:Key="LectureItemTemplate">
|
||||
|
||||
<Border Background="{x:Null}" BorderBrush="{StaticResource PhoneInverseInactiveBrush}" BorderThickness="0,1,0,0" Padding="0,0,0,0">
|
||||
<StackPanel>
|
||||
<Button Click="ToggleOptions" BorderBrush="{x:Null}">
|
||||
<Grid>
|
||||
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Text="{Binding Type}" Grid.Column="0" Grid.Row="0"/>
|
||||
|
||||
<TextBlock Text=" : " Grid.Column="1" Grid.Row="0"/>
|
||||
<TextBlock Text="{Binding Title}" TextWrapping="Wrap" Grid.Column="2" Grid.Row="0"/>
|
||||
</Grid>
|
||||
</Button>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
|
||||
<Button Name="Link" Visibility="Collapsed" Content="Link" Tag="{Binding Modul.Number}" Click="ShowModulWebPage"/>
|
||||
<Button Name="Details" Visibility="Collapsed" Content="Details" Tag="{Binding Id}" Click="ShowDetailPage"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</phone:PhoneApplicationPage.Resources>
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
@@ -55,16 +24,49 @@
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextTitle2Style}" />
|
||||
</StackPanel>
|
||||
|
||||
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
|
||||
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
|
||||
<ScrollViewer>
|
||||
<phone:LongListSelector Name="ResultList" ItemTemplate="{StaticResource LectureItemTemplate}" HorizontalContentAlignment="Left" />
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
<ListBox x:Name="ResultList" Grid.Row="1">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border BorderBrush="{StaticResource PhoneContrastBackgroundBrush}" Style="{StaticResource ListButtonBorder}">
|
||||
<StackPanel>
|
||||
<lui:ToggleButton ToggleContentTag="{Binding Path=Constants.ToggleContent, Source={StaticResource Const}}" Style="{StaticResource ListButtonNoneBorder}" HorizontalContentAlignment="Left" >
|
||||
<Grid HorizontalAlignment="Left">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Orientation="Horizontal" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left">
|
||||
<TextBlock Text="{Binding Type}" TextAlignment="Left" HorizontalAlignment="Left" />
|
||||
<TextBlock Text=" : "/>
|
||||
</StackPanel>
|
||||
<TextBlock Text="{Binding Title}" TextWrapping="Wrap" Grid.Column="1" Grid.Row="0"/>
|
||||
</Grid>
|
||||
</lui:ToggleButton>
|
||||
<StackPanel Tag="{Binding Path=Constants.ToggleContent, Source={StaticResource Const}}" Visibility="Collapsed">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<lui:NavigateButton toolkit:TiltEffect.IsTiltEnabled="True" Name="Link" Url="{Binding Path=Constants.PathLecture_ModulWebPage, Source={StaticResource Const}}" QuerryStringValue="{Binding Modul.Number}" QuerryStringName="{Binding Path=Constants.ParamModelLecture_ModulNumber, Source={StaticResource Const}}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Link, Source={StaticResource ThemelizedIcons}}" Height="50"/>
|
||||
</lui:NavigateButton>
|
||||
<lui:NavigateButton toolkit:TiltEffect.IsTiltEnabled="True" Name="Details" Content="Details" Url="{Binding Path=Constants.PathLecture_ResultDetailPage, Source={StaticResource Const}}" QuerryStringValue="{Binding Id}" QuerryStringName="{Binding Path=Constants.ParamModelLecture_ActivityId, Source={StaticResource Const}}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
namespace CampusAppWP8.Pages.Lecture
|
||||
{
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
@@ -42,113 +43,8 @@ namespace CampusAppWP8.Pages.Lecture
|
||||
return;
|
||||
}
|
||||
|
||||
this.ResultList.ItemsSource = list.Activities;
|
||||
base.OnNavigatedTo(e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method toggle the Visibility of the Link- and Details-Buttons
|
||||
/// </summary>
|
||||
/// <param name="sender">Caller of the function</param>
|
||||
/// <param name="e">some EventArgs</param>
|
||||
private void ToggleOptions(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button button = (Button)sender;
|
||||
StackPanel parent = (StackPanel)button.Parent;
|
||||
|
||||
Button link = (Button)parent.FindName("Link");
|
||||
Button details = (Button)parent.FindName("Details");
|
||||
if (link.Tag == null)
|
||||
{
|
||||
link.IsEnabled = false;
|
||||
}
|
||||
|
||||
this.ToogleVisibility(link);
|
||||
this.ToogleVisibility(details);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method shows the Link- and Details-Buttons
|
||||
/// </summary>
|
||||
/// <param name="parent">Reference of the StackPanel which include the buttons </param>
|
||||
private void ShowOptions(StackPanel parent)
|
||||
{
|
||||
Button link = (Button)parent.FindName("Link");
|
||||
Button details = (Button)parent.FindName("Details");
|
||||
this.ShowVisibility(link);
|
||||
this.ShowVisibility(details);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method hide the Link- and Details-Buttons
|
||||
/// </summary>
|
||||
/// <param name="parent">Reference of the StackPanel which include the buttons </param>
|
||||
private void HideOptions(StackPanel parent)
|
||||
{
|
||||
UIElement link = (UIElement)parent.FindName("Link");
|
||||
UIElement details = (UIElement)parent.FindName("Details");
|
||||
this.HideVisibility(link);
|
||||
this.HideVisibility(details);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method toggle the Visibility of an UIElement
|
||||
/// </summary>
|
||||
/// <param name="element">UIElement which Visibility has to be toggle</param>
|
||||
private void ToogleVisibility(UIElement element)
|
||||
{
|
||||
if (System.Windows.Visibility.Visible.Equals(element.Visibility))
|
||||
{
|
||||
this.HideVisibility(element);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ShowVisibility(element);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method set the Visibility=true of an UIElement
|
||||
/// </summary>
|
||||
/// <param name="element">UIElement which Visibility has to been true</param>
|
||||
private void ShowVisibility(UIElement element)
|
||||
{
|
||||
element.Visibility = System.Windows.Visibility.Visible;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method set the Visibility=false of an UIElement
|
||||
/// </summary>
|
||||
/// <param name="element">UIElement which Visibility has to been false</param>
|
||||
private void HideVisibility(UIElement element)
|
||||
{
|
||||
element.Visibility = System.Windows.Visibility.Collapsed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method navigate to ModuleWebPage
|
||||
/// </summary>
|
||||
/// <param name="sender">Caller of the function</param>
|
||||
/// <param name="e">some EventArgs</param>
|
||||
private void ShowModulWebPage(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button btn = (Button)sender;
|
||||
HideOptions((StackPanel)btn.Parent);
|
||||
Uri url = new Uri(Constants.PathLecture_ModulWebPage + "?" + Constants.ParamModelLecture_ModulNumber + "=" + btn.Tag, UriKind.Relative);
|
||||
NavigationService.Navigate(url);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method navigate to DetailPage
|
||||
/// </summary>
|
||||
/// <param name="sender">Caller of the function</param>
|
||||
/// <param name="e">some EventArgs</param>
|
||||
private void ShowDetailPage(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Button btn = (Button)sender;
|
||||
HideOptions((StackPanel)btn.Parent);
|
||||
Uri url = new Uri(Constants.PathLecture_ResultDetailPage + "?" + Constants.ParamModelLecture_ActivityId + "=" + btn.Tag, UriKind.Relative);
|
||||
NavigationService.Navigate(url);
|
||||
this.ResultList.ItemsSource = list.Activities.OrderByDescending(o => o.Type).ThenBy(o => o.Title).ToList();
|
||||
base.OnNavigatedTo(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
62
CampusAppWP8/CampusAppWP8/Pages/Links/LinkPage.xaml
Normal file
@@ -0,0 +1,62 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.Pages.Links.LinkPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
|
||||
mc:Ignorable="d"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<ProgressBar Name="ProgressBar" Visibility="Collapsed" IsIndeterminate="True"/>
|
||||
<!--Pivotsteuerelement-->
|
||||
<phone:Pivot Title="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}">
|
||||
<!--Pivotelement eins-->
|
||||
<phone:PivotItem Header="{Binding Path=LocalizedResources.LinkApp_CommonLinks, Source={StaticResource LocalizedStrings}}">
|
||||
<ListBox x:Name="CommonLinkPanel">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<lui:LinkButton Style="{StaticResource ListButtonStyle}" Content="{Binding Title}" Url="{Binding Link}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</phone:PivotItem>
|
||||
|
||||
<!--Pivotelement zwei-->
|
||||
<phone:PivotItem Header="{Binding Path=LocalizedResources.LinkApp_ClubLinks, Source={StaticResource LocalizedStrings}}">
|
||||
<ListBox x:Name="ClubLinkPanel">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<lui:LinkButton Style="{StaticResource ListButtonStyle}" Content="{Binding Title}" Url="{Binding Link}"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</phone:PivotItem>
|
||||
</phone:Pivot>
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
153
CampusAppWP8/CampusAppWP8/Pages/Links/LinkPage.xaml.cs
Normal file
@@ -0,0 +1,153 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="LinkPage.xaml.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>02.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Links
|
||||
{
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Feed.Link;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Class for the LinkPage
|
||||
/// </summary>
|
||||
public partial class LinkPage : PhoneApplicationPage
|
||||
{
|
||||
#region Members
|
||||
|
||||
/// <summary>
|
||||
/// the feed of the CommonLinks
|
||||
/// </summary>
|
||||
private CommonLinkFeed commonLinkFeed;
|
||||
|
||||
/// <summary>
|
||||
/// the feed of the ClubLinks
|
||||
/// </summary>
|
||||
private ClubLinkFeed clubLinkFeed;
|
||||
|
||||
/// <summary>
|
||||
/// how many feeds are currently loading
|
||||
/// </summary>
|
||||
private int loadingFeeds;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LinkPage" /> class.
|
||||
/// </summary>
|
||||
public LinkPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region protected
|
||||
|
||||
/// <summary>
|
||||
/// Override the OnNavigatedTo method
|
||||
/// </summary>
|
||||
/// <param name="e">Arguments of navigation</param>
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
|
||||
this.InitializeFeeds();
|
||||
this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
|
||||
this.loadingFeeds = 2;
|
||||
this.commonLinkFeed.LoadData();
|
||||
this.clubLinkFeed.LoadData();
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region private
|
||||
|
||||
/// <summary>
|
||||
/// Method initialize the Feeds
|
||||
/// </summary>
|
||||
private void InitializeFeeds()
|
||||
{
|
||||
if (this.commonLinkFeed == null)
|
||||
{
|
||||
this.InitializeCommonLinkFeed();
|
||||
}
|
||||
|
||||
if (this.clubLinkFeed == null)
|
||||
{
|
||||
this.InitializeClubLinkFeed();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method initialize the CommonLinkFeed
|
||||
/// </summary>
|
||||
private void InitializeCommonLinkFeed()
|
||||
{
|
||||
this.commonLinkFeed = new CommonLinkFeed();
|
||||
this.commonLinkFeed.onLoaded += new CommonLinkFeed.OnLoaded(this.CommonLinkFeedIsReady);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method initialize the ClubLinkFeed
|
||||
/// </summary>
|
||||
private void InitializeClubLinkFeed()
|
||||
{
|
||||
this.clubLinkFeed = new ClubLinkFeed();
|
||||
this.clubLinkFeed.onLoaded += new ClubLinkFeed.OnLoaded(this.ClubLinkFeedIsReady);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method will be execute if the CommonLinkFeed is ready
|
||||
/// </summary>
|
||||
private void CommonLinkFeedIsReady()
|
||||
{
|
||||
this.SetupCommonPivot();
|
||||
this.loadingFeeds--;
|
||||
|
||||
if (this.loadingFeeds < 1)
|
||||
{
|
||||
this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method will be execute if the ClubLinkFeed is ready
|
||||
/// </summary>
|
||||
private void ClubLinkFeedIsReady()
|
||||
{
|
||||
this.SetupClubPivot();
|
||||
this.loadingFeeds--;
|
||||
if (this.loadingFeeds < 1)
|
||||
{
|
||||
this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method set ItemSource for the CommonLinkPanel
|
||||
/// </summary>
|
||||
private void SetupCommonPivot()
|
||||
{
|
||||
this.CommonLinkPanel.ItemsSource = this.commonLinkFeed.Model.Links;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method set ItemSource for the ClubLinkPanel
|
||||
/// </summary>
|
||||
private void SetupClubPivot()
|
||||
{
|
||||
this.ClubLinkPanel.ItemsSource = this.clubLinkFeed.Model.Links;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -21,8 +21,7 @@
|
||||
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Day}" />
|
||||
|
||||
<TextBlock Text="{Binding Day}" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
|
||||
@@ -53,7 +52,7 @@
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Dinner1, Source={StaticResource LocalizedStrings}}" FontWeight="Bold" />
|
||||
<TextBlock Text=" : "/>
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Dinner1}" TextWrapping="Wrap"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Dinner1}" TextWrapping="Wrap"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@@ -68,7 +67,7 @@
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Dinner2, Source={StaticResource LocalizedStrings}}" FontWeight="Bold" />
|
||||
<TextBlock Text=" : "/>
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Dinner2}" TextWrapping="Wrap"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Dinner2}" TextWrapping="Wrap"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@@ -83,7 +82,7 @@
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Dinner3, Source={StaticResource LocalizedStrings}}" FontWeight="Bold" />
|
||||
<TextBlock Text=" : "/>
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Dinner3}" TextWrapping="Wrap"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Dinner3}" TextWrapping="Wrap"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@@ -98,7 +97,7 @@
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Dinner4, Source={StaticResource LocalizedStrings}}" FontWeight="Bold" />
|
||||
<TextBlock Text=" : "/>
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Dinner4}" TextWrapping="Wrap"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Dinner4}" TextWrapping="Wrap"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@@ -127,7 +126,7 @@
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Action, Source={StaticResource LocalizedStrings}}" FontWeight="Bold" />
|
||||
<TextBlock Text=" : "/>
|
||||
</StackPanel>
|
||||
<TextBlock Grid.Column="2" Text="{Binding Action}" TextWrapping="Wrap"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Action}" TextWrapping="Wrap"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
@@ -3,15 +3,14 @@
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>03.05.2013</sience>
|
||||
// <sience>04.05.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Mensa
|
||||
{
|
||||
using System;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Api.Mensa;
|
||||
using CampusAppWP8.Utility;
|
||||
using Microsoft.Phone.Controls;
|
||||
using CampusAppWP8.Feed.Mensa;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Class for the MensaPage
|
||||
@@ -66,9 +65,9 @@ namespace CampusAppWP8.Pages.Mensa
|
||||
this.InitializeFeed();
|
||||
}
|
||||
this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
|
||||
this.feed.LoadFeed();
|
||||
this.feed.LoadData();
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region private
|
||||
|
||||
/// <summary>
|
||||
@@ -77,10 +76,10 @@ namespace CampusAppWP8.Pages.Mensa
|
||||
private void InitializeFeed()
|
||||
{
|
||||
this.feed = new MensaFeed();
|
||||
this.feed.EventHandler.FeedIsReadyEvent += new FeedEventHandler.FeedReadyHandler(this.FeedIsReady);
|
||||
this.feed.onLoaded += new MensaFeed.OnLoaded(this.FeedIsReady);
|
||||
this.CalcSelectedIndex();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Method will be execute if the feed is ready
|
||||
@@ -98,7 +97,7 @@ namespace CampusAppWP8.Pages.Mensa
|
||||
{
|
||||
this.MensaPivot.ItemsSource = this.feed.Model.Menus;
|
||||
this.MensaPivot.SelectedIndex = this.selectedIndex;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method calculate which pivot has to be selected
|
||||
@@ -132,7 +131,6 @@ namespace CampusAppWP8.Pages.Mensa
|
||||
this.selectedIndex = todayIndex;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,11 @@
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
@@ -26,7 +27,20 @@
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.NewsApp_Title, Source={StaticResource LocalizedStrings}}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
|
||||
</StackPanel>
|
||||
<!-- Content -->
|
||||
<ListBox x:Name="ButtonPanel" Grid.Row="1">
|
||||
<ListBox x:Name="NewsList" Grid.Row="1">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<lui:NavigateButton Name="NewsItem" QuerryStringValue="{Binding Index}" Url="{Binding Path=Constants.PathNews_NewsPage, Source={StaticResource Const}}" QuerryStringName="{Binding Path=Constants.ParamPivotIndex, Source={StaticResource Const}}" Style="{StaticResource ListButtonStyle}">
|
||||
<TextBlock TextWrapping="Wrap" Text="{Binding Title}" />
|
||||
</lui:NavigateButton>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -7,15 +7,9 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.News
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Api.News;
|
||||
using CampusAppWP8.Model.events_news;
|
||||
using CampusAppWP8.Feed.News;
|
||||
using CampusAppWP8.Utility;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
@@ -25,9 +19,9 @@ namespace CampusAppWP8.Pages.News
|
||||
public partial class NewsIndexPage : PhoneApplicationPage
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets News Feed object, which contains the RSS models and data.
|
||||
/// News Feed object, which contains the RSS models and data.
|
||||
/// </summary>
|
||||
public static NewsFeed newsFeed { get; set; }
|
||||
private static NewsFeed newsFeed = null;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="NewsIndexPage" /> class.
|
||||
@@ -35,7 +29,23 @@ namespace CampusAppWP8.Pages.News
|
||||
public NewsIndexPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
NewsIndexPage.newsFeed = new NewsFeed();
|
||||
|
||||
if (NewsIndexPage.newsFeed == null)
|
||||
{
|
||||
NewsIndexPage.newsFeed = new NewsFeed(false);
|
||||
}
|
||||
|
||||
NewsIndexPage.newsFeed.onLoaded += new NewsFeed.OnLoaded(this.SetupNewsPageList);
|
||||
NewsIndexPage.newsFeed.LoadData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the newsFeed object.
|
||||
/// </summary>
|
||||
/// <returns>news feed object</returns>
|
||||
public static NewsFeed GetNewsFeed()
|
||||
{
|
||||
return NewsIndexPage.newsFeed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -45,17 +55,6 @@ namespace CampusAppWP8.Pages.News
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
|
||||
if ((NewsIndexPage.newsFeed.Model == null)
|
||||
|| (NewsIndexPage.newsFeed.Model.Channel == null)
|
||||
|| (NewsIndexPage.newsFeed.Model.Channel.Count() == 0)
|
||||
|| (NewsIndexPage.newsFeed.Model.Channel[0].item == null)
|
||||
|| (NewsIndexPage.newsFeed.Model.Channel[0].item.Count() == 0))
|
||||
{
|
||||
// Set handler and load the fees informations.
|
||||
NewsIndexPage.newsFeed.EventHandler.FeedIsReadyEvent += new FeedEventHandler.FeedReadyHandler(this.SetupNewsPageList);
|
||||
NewsIndexPage.newsFeed.LoadFeed();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -65,53 +64,7 @@ namespace CampusAppWP8.Pages.News
|
||||
/// </summary>
|
||||
private void SetupNewsPageList()
|
||||
{
|
||||
if ((NewsIndexPage.newsFeed.Model != null)
|
||||
&& (NewsIndexPage.newsFeed.Model.Channel != null)
|
||||
&& (NewsIndexPage.newsFeed.Model.Channel.Count() >= 1)
|
||||
&& (this.ButtonPanel.Items.Count() == 0))
|
||||
{
|
||||
// Sort the list of rssfeeds.
|
||||
IEnumerable<RSSModel> tempList = NewsIndexPage.newsFeed.Model.Channel[0].item.OrderByDescending(e => e.DTTimestamp);
|
||||
NewsIndexPage.newsFeed.Model.Channel[0].item = new ObservableCollection<RSSModel>(tempList);
|
||||
|
||||
// Create the buttons for the fees selection and add it to the buttonpanel.
|
||||
for (int i = 0; i < NewsIndexPage.newsFeed.Model.Channel[0].item.Count(); i++)
|
||||
{
|
||||
Button tempBtn = new Button();
|
||||
tempBtn.Name = "NewsRowAppButton";
|
||||
tempBtn.Content = NewsIndexPage.newsFeed.Model.Channel[0].item[i].Title;
|
||||
tempBtn.VerticalContentAlignment = VerticalAlignment.Stretch;
|
||||
tempBtn.HorizontalContentAlignment = HorizontalAlignment.Stretch;
|
||||
tempBtn.BorderThickness = new Thickness(0.0);
|
||||
tempBtn.Padding = new Thickness(0.0);
|
||||
tempBtn.Click += this.NewsRowAppButton_Click;
|
||||
tempBtn.Tag = i;
|
||||
|
||||
this.ButtonPanel.Items.Add(tempBtn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the newsFeed object.
|
||||
/// </summary>
|
||||
public static NewsFeed GetNewsFeed
|
||||
{
|
||||
get { return NewsIndexPage.newsFeed; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Is called on clicking on a feed button.
|
||||
/// Navigates to the news pivot page with the information of the
|
||||
/// selected feed index.
|
||||
/// </summary>
|
||||
/// <param name="sender">pressed button object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void NewsRowAppButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement tempElem = sender as FrameworkElement;
|
||||
|
||||
NavigationService.Navigate(new Uri("/pages/news/NewsPage.xaml?pivotindex=" + tempElem.Tag, UriKind.Relative));
|
||||
this.NewsList.ItemsSource = NewsIndexPage.newsFeed.Model.Channel[0].Item;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:viewModel="clr-namespace:CampusAppWP8.Model.events_news"
|
||||
xmlns:viewModel="clr-namespace:CampusAppWP8.Model.RSS"
|
||||
mc:Ignorable="d"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="Portrait" Orientation="Portrait"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<phone:PhoneApplicationPage.Resources>
|
||||
|
||||
@@ -14,7 +14,6 @@ namespace CampusAppWP8.Pages.News
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using Microsoft.Phone.Controls;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
/// <summary>
|
||||
/// EventPage, where every news fees has his own PivotItem.
|
||||
@@ -47,14 +46,8 @@ namespace CampusAppWP8.Pages.News
|
||||
// Set pivotitem Source
|
||||
if (this.isSourceSet == false)
|
||||
{
|
||||
if ((NewsIndexPage.GetNewsFeed.Model != null)
|
||||
&& (NewsIndexPage.GetNewsFeed.Model.Channel != null)
|
||||
&& (NewsIndexPage.GetNewsFeed.Model.Channel.Count() >= 1)
|
||||
&& (this.NewsPivot.Items.Count() == 0))
|
||||
{
|
||||
this.NewsPivot.ItemsSource = NewsIndexPage.GetNewsFeed.Model.Channel[0].item;
|
||||
this.isSourceSet = true;
|
||||
}
|
||||
this.NewsPivot.ItemsSource = NewsIndexPage.GetNewsFeed().Model.Channel[0].Item;
|
||||
this.isSourceSet = true;
|
||||
}
|
||||
|
||||
string pivotIndex = string.Empty;
|
||||
@@ -65,7 +58,7 @@ namespace CampusAppWP8.Pages.News
|
||||
int pivotIndexInt = int.Parse(pivotIndex);
|
||||
|
||||
// if the index is in the range of the array
|
||||
if ((pivotIndexInt >= 0) && (pivotIndexInt < NewsIndexPage.GetNewsFeed.Model.Channel[0].item.Count()))
|
||||
if ((pivotIndexInt >= 0) && (pivotIndexInt < NewsIndexPage.GetNewsFeed().Model.Channel[0].Item.Count()))
|
||||
{
|
||||
NewsPivot.SelectedIndex = pivotIndexInt;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
@@ -37,8 +38,8 @@
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<Button Content="{Binding Title}" Background="Gray" BorderBrush="Gray" Foreground="Black" Margin="-10,-10,-10,-10" Click="InstitutionBtn_Click"/>
|
||||
<StackPanel Visibility="Collapsed">
|
||||
<lui:ToggleButton Content="{Binding Title}" ToggleContentTag="{Binding Path=Constants.ToggleContent, Source={StaticResource Const}}" Style="{StaticResource ListButtonStyle}"/>
|
||||
<StackPanel Visibility="Collapsed" Tag="{Binding Path=Constants.ToggleContent, Source={StaticResource Const}}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<!--day-->
|
||||
@@ -94,7 +95,7 @@
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
|
||||
<!--building-->
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Path=LocalizedResources.Building, Source={StaticResource LocalizedStrings}}" Visibility="{Binding VisibleBuilding}" Padding="10,3,10,0"/>
|
||||
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Building}" Visibility="{Binding VisibleBuilding}" HorizontalAlignment="Left" Padding="10,3,10,0"/>
|
||||
@@ -111,19 +112,13 @@
|
||||
<ColumnDefinition Width="auto"/>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
|
||||
<!--mail button-->
|
||||
<Button Grid.Column="0" Tag="{Binding EMailTitle}" BorderBrush="Transparent" Background="Transparent" Height="100" Visibility="{Binding VisibleEMail}" Click="EMailBtn_Click" Padding="0" Margin="-10">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}"/>
|
||||
</Button>
|
||||
<lui:EmailButton Grid.Column="0" EmailAddress="{Binding EMail}" BorderBrush="Transparent" Background="Transparent" Height="100" Visibility="{Binding VisibleEMail}" Padding="0" Margin="-10"/>
|
||||
<!--phone button-->
|
||||
<Button Grid.Column="1" Tag="{Binding PhoneTitle}" BorderBrush="Transparent" Background="Transparent" Height="100" Visibility="{Binding VisiblePhone}" Click="PhoneBtn_Click" Padding="0" Margin="-10">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Phone, Source={StaticResource ThemelizedIcons}}"/>
|
||||
</Button>
|
||||
<!--location button-->
|
||||
<Button Grid.Column="2" Tag="{Binding Building}" BorderBrush="Transparent" Background="Transparent" Height="100" Visibility="{Binding VisibleBuilding}" Click="LocationBtn_Click" Padding="0" Margin="-10">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Campus, Source={StaticResource ThemelizedIcons}}"/>
|
||||
</Button>
|
||||
<lui:PhoneButton Grid.Column="1" Number="{Binding Phone}" DisplayName="{Binding Title}" BorderBrush="Transparent" Background="Transparent" Height="100" Visibility="{Binding VisiblePhone}" Padding="0" Margin="-10"/>
|
||||
<!--location button -->
|
||||
<lui:GoToMapButton Grid.Column="2" SearchTerm="{Binding Building}" BorderBrush="Transparent" Background="Transparent" Height="100" Visibility="{Binding VisibleBuilding}" Padding="0" Margin="-10" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
@@ -7,15 +7,10 @@
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.Openinghours
|
||||
{
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Feed.Openinghours;
|
||||
using CampusAppWP8.Utility;
|
||||
using Microsoft.Phone.Controls;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Opening hours page.
|
||||
/// </summary>
|
||||
@@ -28,11 +23,6 @@ namespace CampusAppWP8.Pages.Openinghours
|
||||
/// </summary>
|
||||
private OpeninghoursFeed feed = null;
|
||||
|
||||
/// <summary>
|
||||
/// last visible UI element.
|
||||
/// </summary>
|
||||
private UIElement lastOpenUIElem = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
@@ -69,7 +59,7 @@ namespace CampusAppWP8.Pages.Openinghours
|
||||
this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
|
||||
}
|
||||
|
||||
this.feed.LoadFeed();
|
||||
this.feed.LoadData();
|
||||
}
|
||||
|
||||
// protected
|
||||
@@ -83,7 +73,7 @@ namespace CampusAppWP8.Pages.Openinghours
|
||||
private void InitializeFeed()
|
||||
{
|
||||
this.feed = new OpeninghoursFeed();
|
||||
this.feed.EventHandler.FeedIsReadyEvent += new FeedEventHandler.FeedReadyHandler(this.FeedIsReady);
|
||||
this.feed.onLoaded += new OpeninghoursFeed.OnLoaded(this.FeedIsReady);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -103,91 +93,6 @@ namespace CampusAppWP8.Pages.Openinghours
|
||||
this.InstitutionPanel.ItemsSource = this.feed.Model.Institutions;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called on clicking on a institution.
|
||||
/// </summary>
|
||||
/// <param name="sender">button object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void InstitutionBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (this.lastOpenUIElem != null)
|
||||
{
|
||||
this.lastOpenUIElem.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
|
||||
FrameworkElement btn = sender as FrameworkElement;
|
||||
StackPanel parent = btn.Parent as StackPanel;
|
||||
|
||||
if (parent.Children.Count() >= 2)
|
||||
{
|
||||
if (this.lastOpenUIElem != parent.Children[1])
|
||||
{
|
||||
this.lastOpenUIElem = parent.Children[1];
|
||||
this.lastOpenUIElem.Visibility = Visibility.Visible;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.lastOpenUIElem = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called on clicking on a mail button.
|
||||
/// </summary>
|
||||
/// <param name="sender">button object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void EMailBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement tempUIElem = sender as FrameworkElement;
|
||||
|
||||
string[] info = tempUIElem.Tag.ToString().Split(':');
|
||||
|
||||
if ((info.Count() > 0) && (info[0] != null))
|
||||
{
|
||||
EmailComposeTask emailTask = new EmailComposeTask();
|
||||
emailTask.To = "mailto:" + info[0];
|
||||
emailTask.Show();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called on clicking on a phone button.
|
||||
/// </summary>
|
||||
/// <param name="sender">button object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void PhoneBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement tempUIElem = sender as FrameworkElement;
|
||||
PhoneCallTask phoneCallTask = new PhoneCallTask();
|
||||
|
||||
string[] info = tempUIElem.Tag.ToString().Split(':');
|
||||
|
||||
if ((info.Count() > 0) && (info[0] != null))
|
||||
{
|
||||
phoneCallTask.PhoneNumber = info[0];
|
||||
}
|
||||
|
||||
if ((info.Count() > 1) && (info[1] != null))
|
||||
{
|
||||
phoneCallTask.DisplayName = info[1];
|
||||
}
|
||||
|
||||
phoneCallTask.Show();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called on clicking on a location button.
|
||||
/// </summary>
|
||||
/// <param name="sender">button object</param>
|
||||
/// <param name="e">event args</param>
|
||||
private void LocationBtn_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
FrameworkElement tempUIElem = sender as FrameworkElement;
|
||||
|
||||
// TODO: open campusmap
|
||||
}
|
||||
|
||||
// private
|
||||
#endregion
|
||||
// Method
|
||||
|
||||
141
CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml
Normal file
@@ -0,0 +1,141 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.Pages.StartPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
OrientationChanged="PhoneApplicationPage_OrientationChanged"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
|
||||
<Grid x:Name="ContentPanel" Margin="12,0,12,12" Grid.Row="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Row 0 -->
|
||||
<lui:NavigateButton Name="TimeTableAppButton" Grid.Row="0" Grid.Column="0" Style="{StaticResource StartPageButton}" IsEnabled="False">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Schedule, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.TimeTableApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="NewsAppButton" Grid.Row="0" Grid.Column="1" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathNews_NewsIndexPage, Source={StaticResource Const}}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.News, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.NewsApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="LectureAppButton" Grid.Row="0" Grid.Column="2" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathLecture_LecturePage, Source={StaticResource Const}}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Lectures, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<!-- Row 1 -->
|
||||
|
||||
<lui:NavigateButton Name="HomeworkAppButton" Grid.Row="1" Grid.Column="0" Style="{StaticResource StartPageButton}" IsEnabled="False">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Homework, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Name="HomeworkAppButtonText" Text="{Binding Path=LocalizedResources.HomeworkApp_Title2, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="EventAppButton" Grid.Row="1" Grid.Column="1" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathEvents_EventsIndexPage, Source={StaticResource Const}}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.News, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.EventApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="CampusMapAppButton" Grid.Row="1" Grid.Column="2" Style="{StaticResource StartPageButton}" IsEnabled="False">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Campus, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.CampusMapApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<!-- Row 2 -->
|
||||
<lui:NavigateButton Name="DepartmentAppButton" Grid.Row="2" Grid.Column="0" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathDepartment_DepartmentIndexPage, Source={StaticResource Const}}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Departments, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.DepartmentApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="MensaAppButton" Grid.Row="2" Grid.Column="1" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathMensa_MensaPage, Source={StaticResource Const}}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Mensa, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="MailAppButton" Grid.Row="2" Grid.Column="2" Style="{StaticResource StartPageButton}" Url="{Binding Path=Constants.PathMail_WebMailPage, Source={StaticResource Const}}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MailApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<!-- Row 3 -->
|
||||
<lui:NavigateButton Name="OpenHoursAppButton" Url="{Binding Path=Constants.PathOpeninghours_OpeninghoursPage, Source={StaticResource Const}}" Grid.Row="3" Grid.Column="0" Style="{StaticResource StartPageButton}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Openhours, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Name="OpenHoursAppButtonText" Text="{Binding Path=LocalizedResources.OpenHoursApp_Title2, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="LinkAppButton" Url="{Binding Path=Constants.PathLinks_LinkPage, Source={StaticResource Const}}" Grid.Row="3" Grid.Column="1" Style="{StaticResource StartPageButton}">
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Link, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LinkApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
|
||||
<lui:NavigateButton Name="OSAAppButton" Url="{Binding Path=Constants.PathStudentCouncil_StudentCouncilPage, Source={StaticResource Const}}" Grid.Row="3" Grid.Column="2" Style="{StaticResource StartPageButton}">
|
||||
<lui:NavigateButton.RenderTransform>
|
||||
<CompositeTransform/>
|
||||
</lui:NavigateButton.RenderTransform>
|
||||
<StackPanel Style="{StaticResource StartPageStackPanelStyle}">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.StudentCouncil, Source={StaticResource ThemelizedIcons}}" Style="{StaticResource StartPageButtonImg}"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.OSAApp_Title, Source={StaticResource LocalizedStrings}}" Style="{StaticResource StartPageButtonText}"/>
|
||||
</StackPanel>
|
||||
</lui:NavigateButton>
|
||||
</Grid>
|
||||
|
||||
<!-- <Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" /> -->
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
83
CampusAppWP8/CampusAppWP8/Pages/StartPage.xaml.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="StartPage.xaml.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>21.05.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages
|
||||
{
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Navigation;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Class for the StartPage
|
||||
/// </summary>
|
||||
public partial class StartPage : PhoneApplicationPage
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="StartPage" /> class.
|
||||
/// </summary>
|
||||
public StartPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method handle OrientationPage
|
||||
/// </summary>
|
||||
/// <param name="sender">Caller of the function</param>
|
||||
/// <param name="e">some EventArgs</param>
|
||||
private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
|
||||
{
|
||||
// Switch the placement of the buttons based on an orientation change.
|
||||
if (this.Orientation == PageOrientation.LandscapeLeft || this.Orientation == PageOrientation.LandscapeRight)
|
||||
{
|
||||
OpenHoursAppButton.SetValue(Grid.RowProperty, 0);
|
||||
OpenHoursAppButton.SetValue(Grid.ColumnProperty, 3);
|
||||
OpenHoursAppButtonText.Text = AppResources.OpenHoursApp_Title;
|
||||
|
||||
OSAAppButton.SetValue(Grid.RowProperty, 1);
|
||||
OSAAppButton.SetValue(Grid.ColumnProperty, 3);
|
||||
|
||||
LinkAppButton.SetValue(Grid.RowProperty, 2);
|
||||
LinkAppButton.SetValue(Grid.ColumnProperty, 3);
|
||||
|
||||
ContentPanel.Margin = new Thickness(12, -24, 0, 0);
|
||||
|
||||
HomeworkAppButtonText.Text = AppResources.HomeworkApp_Title;
|
||||
ContentPanel.RowDefinitions[3].Height = GridLength.Auto;
|
||||
ContentPanel.ColumnDefinitions[3].Width = new GridLength(1, GridUnitType.Star);
|
||||
}
|
||||
else
|
||||
{
|
||||
// If not in portrait, move buttonList content to visible row and column.
|
||||
ContentPanel.Margin = new Thickness(12, 0, 12, 12);
|
||||
OpenHoursAppButton.SetValue(Grid.RowProperty, 3);
|
||||
OpenHoursAppButton.SetValue(Grid.ColumnProperty, 0);
|
||||
OpenHoursAppButtonText.Text = AppResources.OpenHoursApp_Title2;
|
||||
|
||||
OSAAppButton.SetValue(Grid.RowProperty, 3);
|
||||
OSAAppButton.SetValue(Grid.ColumnProperty, 1);
|
||||
|
||||
LinkAppButton.SetValue(Grid.RowProperty, 3);
|
||||
LinkAppButton.SetValue(Grid.ColumnProperty, 2);
|
||||
|
||||
HomeworkAppButtonText.Text = AppResources.HomeworkApp_Title2;
|
||||
|
||||
ContentPanel.RowDefinitions[3].Height = new GridLength(1,GridUnitType.Star);
|
||||
ContentPanel.ColumnDefinitions[3].Width = GridLength.Auto;
|
||||
}
|
||||
}
|
||||
|
||||
private void OpenDepartmentApp(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Uri url = new Uri(Constants.PathDepartment_DepartmentIndexPage, UriKind.Relative);
|
||||
NavigationService.Navigate(url);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.Pages.StudentCouncil.StudentCouncilPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:lui="clr-namespace:CampusAppWP8.Utility.Lui.Button"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<ProgressBar Name="ProgressBar" Visibility="Collapsed" IsIndeterminate="True"/>
|
||||
<phone:Pivot Name="StudentCouncilPivot" Title="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}">
|
||||
<phone:Pivot.HeaderTemplate>
|
||||
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<TextBlock Text="{Binding Key}" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
|
||||
</phone:Pivot.HeaderTemplate>
|
||||
<phone:Pivot.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ListBox x:Name="ListPanel" ItemsSource="{Binding Value}">
|
||||
<ListBox.ItemContainerStyle>
|
||||
<Style TargetType="ListBoxItem">
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
</Style>
|
||||
</ListBox.ItemContainerStyle>
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel>
|
||||
<lui:ToggleButton Content="{Binding Name}" ToggleContentTag="{Binding Path=Constants.ToggleContent, Source={StaticResource Const}}" Style="{StaticResource ListButtonStyle}"/>
|
||||
<StackPanel Tag="{Binding Path=Constants.ToggleContent, Source={StaticResource Const}}" Orientation="Horizontal" HorizontalAlignment="Center" Visibility="Collapsed">
|
||||
<lui:LinkButton Height="75" Url="{Binding Url}" />
|
||||
<lui:EmailButton Height="75" EmailAddress="{Binding Email}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</DataTemplate>
|
||||
</phone:Pivot.ItemTemplate>
|
||||
</phone:Pivot>
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||
@@ -0,0 +1,94 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="StudentCouncilPage.xaml.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>03.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Pages.StudentCouncil
|
||||
{
|
||||
using System.Windows.Navigation;
|
||||
using Microsoft.Phone.Controls;
|
||||
using CampusAppWP8.Feed.StudentCouncil;
|
||||
|
||||
/// <summary>
|
||||
/// Class for the StudentCouncilPage
|
||||
/// </summary>
|
||||
public partial class StudentCouncilPage : PhoneApplicationPage
|
||||
{
|
||||
#region Members
|
||||
|
||||
/// <summary>
|
||||
/// the feed of the StudentCouncil
|
||||
/// </summary>
|
||||
private StudentCouncilFeed feed;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="StudentCouncilPage" /> class.
|
||||
/// </summary>
|
||||
public StudentCouncilPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.InitializeFeed();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Method
|
||||
|
||||
#region protected
|
||||
|
||||
/// <summary>
|
||||
/// Override the OnNavigatedTo method
|
||||
/// </summary>
|
||||
/// <param name="e">Arguments of navigation</param>
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
if (this.feed == null)
|
||||
{
|
||||
this.InitializeFeed();
|
||||
}
|
||||
|
||||
this.ProgressBar.Visibility = System.Windows.Visibility.Visible;
|
||||
this.feed.LoadData();
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region private
|
||||
|
||||
/// <summary>
|
||||
/// Method initialize the Feed
|
||||
/// </summary>
|
||||
private void InitializeFeed()
|
||||
{
|
||||
this.feed = new StudentCouncilFeed();
|
||||
this.feed.onLoaded += new StudentCouncilFeed.OnLoaded(this.FeedIsReady);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method will be execute if the feed is ready
|
||||
/// </summary>
|
||||
private void FeedIsReady()
|
||||
{
|
||||
this.SetupStudentCouncilPivot();
|
||||
this.ProgressBar.Visibility = System.Windows.Visibility.Collapsed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method set ItemSource
|
||||
/// </summary>
|
||||
private void SetupStudentCouncilPivot()
|
||||
{
|
||||
this.StudentCouncilPivot.ItemsSource = this.feed.Model.GetStudentCouncilsGroupByFaculty();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -16,15 +16,14 @@
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28"/>
|
||||
|
||||
-->
|
||||
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
|
||||
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
|
||||
<Grid x:Name="ContentPanel" Grid.Row="1">
|
||||
<phone:WebBrowser x:Name="WebmailBrowser" IsScriptEnabled="True"/>
|
||||
|
||||
</Grid>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2012/deployment" AppPlatformVersion="8.0">
|
||||
<DefaultLanguage xmlns="" code="de-DE" />
|
||||
<App xmlns="" ProductID="{120b88cc-f3f0-4c5a-a3fd-c26e835338cc}" Title="CampusAppWP8" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="CampusAppWP8 author" Description="Die BTU-CampusApp für WP8" Publisher="CampusAppWP8" PublisherID="{3511cc48-91b0-4ffb-9023-b69a81021a46}">
|
||||
<IconPath IsRelative="true" IsResource="false">Assets\ApplicationIcon.png</IconPath>
|
||||
<IconPath IsRelative="true" IsResource="false">Assets\Icons\DarkTheme\btulogo_159.png</IconPath>
|
||||
<Capabilities>
|
||||
<Capability Name="ID_CAP_NETWORKING" />
|
||||
<Capability Name="ID_CAP_SENSORS" />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion:4.0.30319.18046
|
||||
// Laufzeitversion:4.0.30319.18051
|
||||
//
|
||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code erneut generiert wird.
|
||||
@@ -60,6 +60,15 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Hinzufügen ähnelt.
|
||||
/// </summary>
|
||||
public static string Add {
|
||||
get {
|
||||
return ResourceManager.GetString("Add", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Hinzufügen ähnelt.
|
||||
/// </summary>
|
||||
@@ -132,6 +141,33 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Löschen ähnelt.
|
||||
/// </summary>
|
||||
public static string Delete {
|
||||
get {
|
||||
return ResourceManager.GetString("Delete", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Löschung ist fehlgeschlagen ähnelt.
|
||||
/// </summary>
|
||||
public static string DeleteFailed {
|
||||
get {
|
||||
return ResourceManager.GetString("DeleteFailed", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Löschung war erfolgreich ähnelt.
|
||||
/// </summary>
|
||||
public static string DeleteSucceeded {
|
||||
get {
|
||||
return ResourceManager.GetString("DeleteSucceeded", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Lehrstühle ähnelt.
|
||||
/// </summary>
|
||||
@@ -159,6 +195,15 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Favoriten ähnelt.
|
||||
/// </summary>
|
||||
public static string Favorites {
|
||||
get {
|
||||
return ResourceManager.GetString("Favorites", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Hinweis ähnelt.
|
||||
/// </summary>
|
||||
@@ -177,6 +222,24 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Haus- aufgaben ähnelt.
|
||||
/// </summary>
|
||||
public static string HomeworkApp_Title2 {
|
||||
get {
|
||||
return ResourceManager.GetString("HomeworkApp_Title2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Details ähnelt.
|
||||
/// </summary>
|
||||
public static string Info {
|
||||
get {
|
||||
return ResourceManager.GetString("Info", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Studiengang ähnelt.
|
||||
/// </summary>
|
||||
@@ -294,6 +357,24 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die stud. Vereine ähnelt.
|
||||
/// </summary>
|
||||
public static string LinkApp_ClubLinks {
|
||||
get {
|
||||
return ResourceManager.GetString("LinkApp_ClubLinks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die allg. Links ähnelt.
|
||||
/// </summary>
|
||||
public static string LinkApp_CommonLinks {
|
||||
get {
|
||||
return ResourceManager.GetString("LinkApp_CommonLinks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Links ähnelt.
|
||||
/// </summary>
|
||||
@@ -429,6 +510,15 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Öffnungs- zeiten ähnelt.
|
||||
/// </summary>
|
||||
public static string OpenHoursApp_Title2 {
|
||||
get {
|
||||
return ResourceManager.GetString("OpenHoursApp_Title2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Fachschaften ähnelt.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,290 +1,320 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="ResourceFlowDirection" xml:space="preserve">
|
||||
<value>LeftToRight</value>
|
||||
<comment>Controls the FlowDirection for all elements in the RootFrame. Set to the traditional direction of this resource file's language</comment>
|
||||
</data>
|
||||
<data name="ResourceLanguage" xml:space="preserve">
|
||||
<value>de-de</value>
|
||||
<comment>Controls the Language and ensures that the font for all elements in the RootFrame aligns with the app's language. Set to the language code of this resource file's language.</comment>
|
||||
</data>
|
||||
<data name="ApplicationTitle" xml:space="preserve">
|
||||
<value>BTU CampusApp</value>
|
||||
</data>
|
||||
<data name="SampleProperty" xml:space="preserve">
|
||||
<value>Beispielwert für die Laufzeiteigenschaft</value>
|
||||
</data>
|
||||
<data name="AppBarButtonText" xml:space="preserve">
|
||||
<value>Hinzufügen</value>
|
||||
</data>
|
||||
<data name="AppBarMenuItemText" xml:space="preserve">
|
||||
<value>Menübefehl</value>
|
||||
</data>
|
||||
<data name="WelcomeString" xml:space="preserve">
|
||||
<value>Willkommen zur BTU-CampusApp WP8</value>
|
||||
</data>
|
||||
<data name="CampusMapApp_Title" xml:space="preserve">
|
||||
<value>Campusplan</value>
|
||||
</data>
|
||||
<data name="DepartmentApp_Title" xml:space="preserve">
|
||||
<value>Lehrstühle</value>
|
||||
</data>
|
||||
<data name="EventApp_Title" xml:space="preserve">
|
||||
<value>Events</value>
|
||||
</data>
|
||||
<data name="HomeworkApp_Title" xml:space="preserve">
|
||||
<value>Hausaufgaben</value>
|
||||
</data>
|
||||
<data name="LectureApp_Title" xml:space="preserve">
|
||||
<value>Vorlesungen</value>
|
||||
</data>
|
||||
<data name="LinkApp_Title" xml:space="preserve">
|
||||
<value>Links</value>
|
||||
</data>
|
||||
<data name="MailApp_Title" xml:space="preserve">
|
||||
<value>Webmail</value>
|
||||
</data>
|
||||
<data name="MensaApp_Title" xml:space="preserve">
|
||||
<value>Mensaplan</value>
|
||||
</data>
|
||||
<data name="NewsApp_Title" xml:space="preserve">
|
||||
<value>News</value>
|
||||
</data>
|
||||
<data name="OpenHoursApp_Title" xml:space="preserve">
|
||||
<value>Öffnungszeiten</value>
|
||||
</data>
|
||||
<data name="OSAApp_Title" xml:space="preserve">
|
||||
<value>Fachschaften</value>
|
||||
</data>
|
||||
<data name="TimeTableApp_Title" xml:space="preserve">
|
||||
<value>Stundenplan</value>
|
||||
</data>
|
||||
<data name="LectureApp_Course" xml:space="preserve">
|
||||
<value>Studiengang</value>
|
||||
</data>
|
||||
<data name="LectureApp_Degree" xml:space="preserve">
|
||||
<value>Abschluss</value>
|
||||
</data>
|
||||
<data name="LectureApp_LectureName" xml:space="preserve">
|
||||
<value>Veranstaltungsname</value>
|
||||
</data>
|
||||
<data name="LectureApp_Semester" xml:space="preserve">
|
||||
<value>Semester</value>
|
||||
</data>
|
||||
<data name="LectureApp_Term" xml:space="preserve">
|
||||
<value>Fachsemester</value>
|
||||
</data>
|
||||
<data name="Time_Day_Friday" xml:space="preserve">
|
||||
<value>Freitag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Monday" xml:space="preserve">
|
||||
<value>Montag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Thursday" xml:space="preserve">
|
||||
<value>Donnerstag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Tuesday" xml:space="preserve">
|
||||
<value>Dienstag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Wednesday" xml:space="preserve">
|
||||
<value>Mittwoch</value>
|
||||
</data>
|
||||
<data name="MensaApp_Action" xml:space="preserve">
|
||||
<value>Aktion</value>
|
||||
</data>
|
||||
<data name="MensaApp_Bio" xml:space="preserve">
|
||||
<value>Bio</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner1" xml:space="preserve">
|
||||
<value>Essen 1</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner2" xml:space="preserve">
|
||||
<value>Essen 2</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner3" xml:space="preserve">
|
||||
<value>Essen 3</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner4" xml:space="preserve">
|
||||
<value>Essen 4</value>
|
||||
</data>
|
||||
<data name="MensaApp_NotToday" xml:space="preserve">
|
||||
<value>Heute nicht im Angbot</value>
|
||||
</data>
|
||||
<data name="NewsHomeBtn" xml:space="preserve">
|
||||
<value>zur Übersicht</value>
|
||||
</data>
|
||||
<data name="MensaApp_DinnerLabelW" xml:space="preserve">
|
||||
<value>84</value>
|
||||
</data>
|
||||
<data name="LectureApp_Courses" xml:space="preserve">
|
||||
<value>Studiengänge</value>
|
||||
</data>
|
||||
<data name="LectureApp_Department" xml:space="preserve">
|
||||
<value>Lehrstuhl</value>
|
||||
</data>
|
||||
<data name="LectureApp_DetailsHeader" xml:space="preserve">
|
||||
<value>Vorlesungen - Details</value>
|
||||
</data>
|
||||
<data name="LectureApp_LectureTopic" xml:space="preserve">
|
||||
<value>Lehrinhalt</value>
|
||||
</data>
|
||||
<data name="LectureApp_Officer" xml:space="preserve">
|
||||
<value>Verantwortlicher</value>
|
||||
</data>
|
||||
<data name="LectureApp_Type" xml:space="preserve">
|
||||
<value>Veranstaltungsart</value>
|
||||
</data>
|
||||
<data name="Faculty" xml:space="preserve">
|
||||
<value>Fakultät</value>
|
||||
</data>
|
||||
<data name="Professorship_chairs" xml:space="preserve">
|
||||
<value>Lehrstühle</value>
|
||||
</data>
|
||||
<data name="NewsLinkBtn" xml:space="preserve">
|
||||
<value>Link</value>
|
||||
</data>
|
||||
<data name="Degree_Bachelor" xml:space="preserve">
|
||||
<value>Bachelor</value>
|
||||
</data>
|
||||
<data name="Degree_Diploma" xml:space="preserve">
|
||||
<value>Diplom</value>
|
||||
</data>
|
||||
<data name="Degree_Master" xml:space="preserve">
|
||||
<value>Master</value>
|
||||
</data>
|
||||
<data name="LectureApp_ListPickerHeaderCourse" xml:space="preserve">
|
||||
<value>Studiengangauswahl</value>
|
||||
</data>
|
||||
<data name="Building" xml:space="preserve">
|
||||
<value>Gebäude</value>
|
||||
</data>
|
||||
<data name="Hint" xml:space="preserve">
|
||||
<value>Hinweis</value>
|
||||
</data>
|
||||
<data name="Room" xml:space="preserve">
|
||||
<value>Raum</value>
|
||||
</data>
|
||||
<data name="Time_Day_Saturday" xml:space="preserve">
|
||||
<value>Samstag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Sunday" xml:space="preserve">
|
||||
<value>Sonntag</value>
|
||||
</data>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="ResourceFlowDirection" xml:space="preserve">
|
||||
<value>LeftToRight</value>
|
||||
<comment>Controls the FlowDirection for all elements in the RootFrame. Set to the traditional direction of this resource file's language</comment>
|
||||
</data>
|
||||
<data name="ResourceLanguage" xml:space="preserve">
|
||||
<value>de-de</value>
|
||||
<comment>Controls the Language and ensures that the font for all elements in the RootFrame aligns with the app's language. Set to the language code of this resource file's language.</comment>
|
||||
</data>
|
||||
<data name="ApplicationTitle" xml:space="preserve">
|
||||
<value>BTU CampusApp</value>
|
||||
</data>
|
||||
<data name="SampleProperty" xml:space="preserve">
|
||||
<value>Beispielwert für die Laufzeiteigenschaft</value>
|
||||
</data>
|
||||
<data name="AppBarButtonText" xml:space="preserve">
|
||||
<value>Hinzufügen</value>
|
||||
</data>
|
||||
<data name="AppBarMenuItemText" xml:space="preserve">
|
||||
<value>Menübefehl</value>
|
||||
</data>
|
||||
<data name="WelcomeString" xml:space="preserve">
|
||||
<value>Willkommen zur BTU-CampusApp WP8</value>
|
||||
</data>
|
||||
<data name="CampusMapApp_Title" xml:space="preserve">
|
||||
<value>Campusplan</value>
|
||||
</data>
|
||||
<data name="DepartmentApp_Title" xml:space="preserve">
|
||||
<value>Lehrstühle</value>
|
||||
</data>
|
||||
<data name="EventApp_Title" xml:space="preserve">
|
||||
<value>Events</value>
|
||||
</data>
|
||||
<data name="HomeworkApp_Title2" xml:space="preserve">
|
||||
<value>Haus- aufgaben</value>
|
||||
</data>
|
||||
<data name="LectureApp_Title" xml:space="preserve">
|
||||
<value>Vorlesungen</value>
|
||||
</data>
|
||||
<data name="LinkApp_Title" xml:space="preserve">
|
||||
<value>Links</value>
|
||||
</data>
|
||||
<data name="MailApp_Title" xml:space="preserve">
|
||||
<value>Webmail</value>
|
||||
</data>
|
||||
<data name="MensaApp_Title" xml:space="preserve">
|
||||
<value>Mensaplan</value>
|
||||
</data>
|
||||
<data name="NewsApp_Title" xml:space="preserve">
|
||||
<value>News</value>
|
||||
</data>
|
||||
<data name="OpenHoursApp_Title2" xml:space="preserve">
|
||||
<value>Öffnungs- zeiten</value>
|
||||
</data>
|
||||
<data name="OSAApp_Title" xml:space="preserve">
|
||||
<value>Fachschaften</value>
|
||||
</data>
|
||||
<data name="TimeTableApp_Title" xml:space="preserve">
|
||||
<value>Stundenplan</value>
|
||||
</data>
|
||||
<data name="LectureApp_Course" xml:space="preserve">
|
||||
<value>Studiengang</value>
|
||||
</data>
|
||||
<data name="LectureApp_Degree" xml:space="preserve">
|
||||
<value>Abschluss</value>
|
||||
</data>
|
||||
<data name="LectureApp_LectureName" xml:space="preserve">
|
||||
<value>Veranstaltungsname</value>
|
||||
</data>
|
||||
<data name="LectureApp_Semester" xml:space="preserve">
|
||||
<value>Semester</value>
|
||||
</data>
|
||||
<data name="LectureApp_Term" xml:space="preserve">
|
||||
<value>Fachsemester</value>
|
||||
</data>
|
||||
<data name="Time_Day_Friday" xml:space="preserve">
|
||||
<value>Freitag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Monday" xml:space="preserve">
|
||||
<value>Montag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Thursday" xml:space="preserve">
|
||||
<value>Donnerstag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Tuesday" xml:space="preserve">
|
||||
<value>Dienstag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Wednesday" xml:space="preserve">
|
||||
<value>Mittwoch</value>
|
||||
</data>
|
||||
<data name="MensaApp_Action" xml:space="preserve">
|
||||
<value>Aktion</value>
|
||||
</data>
|
||||
<data name="MensaApp_Bio" xml:space="preserve">
|
||||
<value>Bio</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner1" xml:space="preserve">
|
||||
<value>Essen 1</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner2" xml:space="preserve">
|
||||
<value>Essen 2</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner3" xml:space="preserve">
|
||||
<value>Essen 3</value>
|
||||
</data>
|
||||
<data name="MensaApp_Dinner4" xml:space="preserve">
|
||||
<value>Essen 4</value>
|
||||
</data>
|
||||
<data name="MensaApp_NotToday" xml:space="preserve">
|
||||
<value>Heute nicht im Angbot</value>
|
||||
</data>
|
||||
<data name="NewsHomeBtn" xml:space="preserve">
|
||||
<value>zur Übersicht</value>
|
||||
</data>
|
||||
<data name="MensaApp_DinnerLabelW" xml:space="preserve">
|
||||
<value>84</value>
|
||||
</data>
|
||||
<data name="LectureApp_Courses" xml:space="preserve">
|
||||
<value>Studiengänge</value>
|
||||
</data>
|
||||
<data name="LectureApp_Department" xml:space="preserve">
|
||||
<value>Lehrstuhl</value>
|
||||
</data>
|
||||
<data name="LectureApp_DetailsHeader" xml:space="preserve">
|
||||
<value>Vorlesungen - Details</value>
|
||||
</data>
|
||||
<data name="LectureApp_LectureTopic" xml:space="preserve">
|
||||
<value>Lehrinhalt</value>
|
||||
</data>
|
||||
<data name="LectureApp_Officer" xml:space="preserve">
|
||||
<value>Verantwortlicher</value>
|
||||
</data>
|
||||
<data name="LectureApp_Type" xml:space="preserve">
|
||||
<value>Veranstaltungsart</value>
|
||||
</data>
|
||||
<data name="Faculty" xml:space="preserve">
|
||||
<value>Fakultät</value>
|
||||
</data>
|
||||
<data name="Professorship_chairs" xml:space="preserve">
|
||||
<value>Lehrstühle</value>
|
||||
</data>
|
||||
<data name="NewsLinkBtn" xml:space="preserve">
|
||||
<value>Link</value>
|
||||
</data>
|
||||
<data name="Degree_Bachelor" xml:space="preserve">
|
||||
<value>Bachelor</value>
|
||||
</data>
|
||||
<data name="Degree_Diploma" xml:space="preserve">
|
||||
<value>Diplom</value>
|
||||
</data>
|
||||
<data name="Degree_Master" xml:space="preserve">
|
||||
<value>Master</value>
|
||||
</data>
|
||||
<data name="LectureApp_ListPickerHeaderCourse" xml:space="preserve">
|
||||
<value>Studiengangauswahl</value>
|
||||
</data>
|
||||
<data name="Building" xml:space="preserve">
|
||||
<value>Gebäude</value>
|
||||
</data>
|
||||
<data name="Hint" xml:space="preserve">
|
||||
<value>Hinweis</value>
|
||||
</data>
|
||||
<data name="Room" xml:space="preserve">
|
||||
<value>Raum</value>
|
||||
</data>
|
||||
<data name="Time_Day_Saturday" xml:space="preserve">
|
||||
<value>Samstag</value>
|
||||
</data>
|
||||
<data name="Time_Day_Sunday" xml:space="preserve">
|
||||
<value>Sonntag</value>
|
||||
</data>
|
||||
<data name="Add" xml:space="preserve">
|
||||
<value>Hinzufügen</value>
|
||||
</data>
|
||||
<data name="Favorites" xml:space="preserve">
|
||||
<value>Favoriten</value>
|
||||
</data>
|
||||
<data name="Info" xml:space="preserve">
|
||||
<value>Details</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Löschen</value>
|
||||
</data>
|
||||
<data name="DeleteFailed" xml:space="preserve">
|
||||
<value>Löschung ist fehlgeschlagen</value>
|
||||
</data>
|
||||
<data name="DeleteSucceeded" xml:space="preserve">
|
||||
<value>Löschung war erfolgreich</value>
|
||||
</data>
|
||||
<data name="HomeworkApp_Title" xml:space="preserve">
|
||||
<value>Hausaufgaben</value>
|
||||
</data>
|
||||
<data name="OpenHoursApp_Title" xml:space="preserve">
|
||||
<value>Öffnungszeiten</value>
|
||||
</data>
|
||||
<data name="LinkApp_ClubLinks" xml:space="preserve">
|
||||
<value>stud. Vereine</value>
|
||||
</data>
|
||||
<data name="LinkApp_CommonLinks" xml:space="preserve">
|
||||
<value>allg. Links</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1,7 +1,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion:4.0.30319.18046
|
||||
// Laufzeitversion:4.0.30319.18051
|
||||
//
|
||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code erneut generiert wird.
|
||||
@@ -22,7 +22,7 @@ namespace CampusAppWP8.Resources {
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Constants {
|
||||
public class Constants {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CampusAppWP8.Resources.Constants", typeof(Constants).Assembly);
|
||||
@@ -51,7 +51,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
public static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
@@ -60,10 +60,100 @@ namespace CampusAppWP8.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die DepartmentFavoriteFeed.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileDepartment_Favorite_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("FileDepartment_Favorite_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die DepartmentFeed.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileDepartment_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("FileDepartment_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die EventsFeed.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileEvents_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("FileEvents_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die ClubLinks.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileLink_ClubLinks {
|
||||
get {
|
||||
return ResourceManager.GetString("FileLink_ClubLinks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die CommonLinks.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileLink_CommonLinks {
|
||||
get {
|
||||
return ResourceManager.GetString("FileLink_CommonLinks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die MensaFeed.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileMensa_Shedule {
|
||||
get {
|
||||
return ResourceManager.GetString("FileMensa_Shedule", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die NewsFeed.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileNews_Name {
|
||||
get {
|
||||
return ResourceManager.GetString("FileNews_Name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die OpeninghoursFeed.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileOpeningHours_OpeningHours {
|
||||
get {
|
||||
return ResourceManager.GetString("FileOpeningHours_OpeningHours", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die StudentCouncils.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string FileStudentCouncil_StudentCouncils {
|
||||
get {
|
||||
return ResourceManager.GetString("FileStudentCouncil_StudentCouncils", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_DepartmentFavoriteModel ähnelt.
|
||||
/// </summary>
|
||||
public static string IsolatedStorage_DepartmentFavoriteModel {
|
||||
get {
|
||||
return ResourceManager.GetString("IsolatedStorage_DepartmentFavoriteModel", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die LectureModel ähnelt.
|
||||
/// </summary>
|
||||
internal static string IsolatedStorage_LectureModel {
|
||||
public static string IsolatedStorage_LectureModel {
|
||||
get {
|
||||
return ResourceManager.GetString("IsolatedStorage_LectureModel", resourceCulture);
|
||||
}
|
||||
@@ -72,7 +162,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die IsolatedStorage_LecturePageModel ähnelt.
|
||||
/// </summary>
|
||||
internal static string IsolatedStorage_LecturePageModel {
|
||||
public static string IsolatedStorage_LecturePageModel {
|
||||
get {
|
||||
return ResourceManager.GetString("IsolatedStorage_LecturePageModel", resourceCulture);
|
||||
}
|
||||
@@ -81,7 +171,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die lsf_auszug ähnelt.
|
||||
/// </summary>
|
||||
internal static string LectureXmlValidRootName {
|
||||
public static string LectureXmlValidRootName {
|
||||
get {
|
||||
return ResourceManager.GetString("LectureXmlValidRootName", resourceCulture);
|
||||
}
|
||||
@@ -90,7 +180,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Studiengang ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamGetLecture_Course {
|
||||
public static string ParamGetLecture_Course {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamGetLecture_Course", resourceCulture);
|
||||
}
|
||||
@@ -99,7 +189,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Abschluss ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamGetLecture_Degree {
|
||||
public static string ParamGetLecture_Degree {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamGetLecture_Degree", resourceCulture);
|
||||
}
|
||||
@@ -108,7 +198,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Von ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamGetLecture_From {
|
||||
public static string ParamGetLecture_From {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamGetLecture_From", resourceCulture);
|
||||
}
|
||||
@@ -117,7 +207,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Semester ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamGetLecture_Semester {
|
||||
public static string ParamGetLecture_Semester {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamGetLecture_Semester", resourceCulture);
|
||||
}
|
||||
@@ -126,7 +216,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Bis ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamGetLecture_To {
|
||||
public static string ParamGetLecture_To {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamGetLecture_To", resourceCulture);
|
||||
}
|
||||
@@ -135,7 +225,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die ActivityId ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamModelLecture_ActivityId {
|
||||
public static string ParamModelLecture_ActivityId {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamModelLecture_ActivityId", resourceCulture);
|
||||
}
|
||||
@@ -144,25 +234,79 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die ModulNumber ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamModelLecture_ModulNumber {
|
||||
public static string ParamModelLecture_ModulNumber {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamModelLecture_ModulNumber", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die pivotindex ähnelt.
|
||||
/// </summary>
|
||||
public static string ParamPivotIndex {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamPivotIndex", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die Url ähnelt.
|
||||
/// </summary>
|
||||
internal static string ParamUrl {
|
||||
public static string ParamUrl {
|
||||
get {
|
||||
return ResourceManager.GetString("ParamUrl", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Departments/DepartmentFavoritePage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathDepartment_DepartmentFavoritePage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathDepartment_DepartmentFavoritePage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Departments/DepartmentIndexPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathDepartment_DepartmentIndexPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathDepartment_DepartmentIndexPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Departments/DepartmentInfoPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathDepartment_DepartmentInfoPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathDepartment_DepartmentInfoPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Departments/DepartmentPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathDepartment_DepartmentPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathDepartment_DepartmentPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Events/EventPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathEvent_EventPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathEvent_EventPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Events/EventIndexPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathEvents_EventsIndexPage {
|
||||
public static string PathEvents_EventsIndexPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathEvents_EventsIndexPage", resourceCulture);
|
||||
}
|
||||
@@ -171,7 +315,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Lecture/LecturePage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathLecture_LecturePage {
|
||||
public static string PathLecture_LecturePage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathLecture_LecturePage", resourceCulture);
|
||||
}
|
||||
@@ -180,7 +324,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Lecture/ModulWebPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathLecture_ModulWebPage {
|
||||
public static string PathLecture_ModulWebPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathLecture_ModulWebPage", resourceCulture);
|
||||
}
|
||||
@@ -189,7 +333,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Lecture/ResultDetailPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathLecture_ResultDetailPage {
|
||||
public static string PathLecture_ResultDetailPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathLecture_ResultDetailPage", resourceCulture);
|
||||
}
|
||||
@@ -198,16 +342,25 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Lecture/ResultPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathLecture_ResultPage {
|
||||
public static string PathLecture_ResultPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathLecture_ResultPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Links/LinkPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathLinks_LinkPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathLinks_LinkPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Webmail/WebmailPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathMail_WebMailPage {
|
||||
public static string PathMail_WebMailPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathMail_WebMailPage", resourceCulture);
|
||||
}
|
||||
@@ -216,7 +369,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Mensa/MensaPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathMensa_MensaPage {
|
||||
public static string PathMensa_MensaPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathMensa_MensaPage", resourceCulture);
|
||||
}
|
||||
@@ -225,25 +378,70 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/News/NewsIndexPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathNews_NewsIndexPage {
|
||||
public static string PathNews_NewsIndexPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathNews_NewsIndexPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/News/NewsPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathNews_NewsPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathNews_NewsPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/Openinghours/OpeninghoursPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
internal static string PathOpeninghours_OpeninghoursPage {
|
||||
public static string PathOpeninghours_OpeninghoursPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathOpeninghours_OpeninghoursPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die /Pages/StudentCouncil/StudentCouncilPage.xaml ähnelt.
|
||||
/// </summary>
|
||||
public static string PathStudentCouncil_StudentCouncilPage {
|
||||
get {
|
||||
return ResourceManager.GetString("PathStudentCouncil_StudentCouncilPage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die ToggleContent ähnelt.
|
||||
/// </summary>
|
||||
public static string ToggleContent {
|
||||
get {
|
||||
return ResourceManager.GetString("ToggleContent", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.tu-cottbus.de/campusapp-data/professorships.xml ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlDepartment_Addr {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlDepartment_Addr", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.tu-cottbus.de/oracle-gateway/php/rss2feed_veranstaltungen.php ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlEvents_Addr {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlEvents_Addr", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.zv.tu-cottbus.de/LSFveranst/LSF4 ähnelt.
|
||||
/// </summary>
|
||||
internal static string UrlLecture_ApiBaseAddr {
|
||||
public static string UrlLecture_ApiBaseAddr {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlLecture_ApiBaseAddr", resourceCulture);
|
||||
}
|
||||
@@ -252,16 +450,70 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die https://www.tu-cottbus.de/modul/ ähnelt.
|
||||
/// </summary>
|
||||
internal static string UrlLecture_ModulBaseAddr {
|
||||
public static string UrlLecture_ModulBaseAddr {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlLecture_ModulBaseAddr", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.tu-cottbus.de/campusapp-data/getdata.php?db=clubs&app=2&appversion=1 ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlLink_ClubLinks {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlLink_ClubLinks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.tu-cottbus.de/campusapp-data/getdata.php?db=links&app=2&appversion=1 ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlLink_CommonLinks {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlLink_CommonLinks", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.studentenwerk-frankfurt.de/2011/ClassPackage/App_IKMZ_BTU/ ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlMensa_Week {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlMensa_Week", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.tu-cottbus.de/oracle-gateway/php/rss2feed_aktuelles.php ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlNews_Addr {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlNews_Addr", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.tu-cottbus.de/campusapp-data/getdata.php?db=openinghours&app=2&appversion=1 ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlOpeningHours_OpeningHours {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlOpeningHours_OpeningHours", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die http://www.tu-cottbus.de/campusapp-data/getdata.php?db=studentcouncils&app=2&appversion=1 ähnelt.
|
||||
/// </summary>
|
||||
public static string UrlStudentCouncil_StudentCouncils {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlStudentCouncil_StudentCouncils", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die https://webmail.tu-cottbus.de ähnelt.
|
||||
/// </summary>
|
||||
internal static string UrlWebMail_Addr {
|
||||
public static string UrlWebMail_Addr {
|
||||
get {
|
||||
return ResourceManager.GetString("UrlWebMail_Addr", resourceCulture);
|
||||
}
|
||||
@@ -270,7 +522,7 @@ namespace CampusAppWP8.Resources {
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die root ähnelt.
|
||||
/// </summary>
|
||||
internal static string XMLRootElementName {
|
||||
public static string XMLRootElementName {
|
||||
get {
|
||||
return ResourceManager.GetString("XMLRootElementName", resourceCulture);
|
||||
}
|
||||
|
||||
@@ -1,192 +1,279 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="IsolatedStorage_LectureModel" xml:space="preserve">
|
||||
<value>LectureModel</value>
|
||||
</data>
|
||||
<data name="ParamModelLecture_ActivityId" xml:space="preserve">
|
||||
<value>ActivityId</value>
|
||||
</data>
|
||||
<data name="ParamModelLecture_ModulNumber" xml:space="preserve">
|
||||
<value>ModulNumber</value>
|
||||
</data>
|
||||
<data name="ParamUrl" xml:space="preserve">
|
||||
<value>Url</value>
|
||||
</data>
|
||||
<data name="PathLecture_ModulWebPage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/ModulWebPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathLecture_ResultDetailPage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/ResultDetailPage.xaml</value>
|
||||
</data>
|
||||
<data name="UrlLecture_ModulBaseAddr" xml:space="preserve">
|
||||
<value>https://www.tu-cottbus.de/modul/</value>
|
||||
</data>
|
||||
<data name="XMLRootElementName" xml:space="preserve">
|
||||
<value>root</value>
|
||||
</data>
|
||||
<data name="UrlWebMail_Addr" xml:space="preserve">
|
||||
<value>https://webmail.tu-cottbus.de</value>
|
||||
</data>
|
||||
<data name="PathLecture_ResultPage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/ResultPage.xaml</value>
|
||||
</data>
|
||||
<data name="LectureXmlValidRootName" xml:space="preserve">
|
||||
<value>lsf_auszug</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_Course" xml:space="preserve">
|
||||
<value>Studiengang</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_Degree" xml:space="preserve">
|
||||
<value>Abschluss</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_From" xml:space="preserve">
|
||||
<value>Von</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_Semester" xml:space="preserve">
|
||||
<value>Semester</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_To" xml:space="preserve">
|
||||
<value>Bis</value>
|
||||
</data>
|
||||
<data name="UrlLecture_ApiBaseAddr" xml:space="preserve">
|
||||
<value>http://www.zv.tu-cottbus.de/LSFveranst/LSF4</value>
|
||||
</data>
|
||||
<data name="IsolatedStorage_LecturePageModel" xml:space="preserve">
|
||||
<value>IsolatedStorage_LecturePageModel</value>
|
||||
</data>
|
||||
<data name="PathLecture_LecturePage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/LecturePage.xaml</value>
|
||||
</data>
|
||||
<data name="PathEvents_EventsIndexPage" xml:space="preserve">
|
||||
<value>/Pages/Events/EventIndexPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathMail_WebMailPage" xml:space="preserve">
|
||||
<value>/Pages/Webmail/WebmailPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathMensa_MensaPage" xml:space="preserve">
|
||||
<value>/Pages/Mensa/MensaPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathNews_NewsIndexPage" xml:space="preserve">
|
||||
<value>/Pages/News/NewsIndexPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathOpeninghours_OpeninghoursPage" xml:space="preserve">
|
||||
<value>/Pages/Openinghours/OpeninghoursPage.xaml</value>
|
||||
</data>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="IsolatedStorage_LectureModel" xml:space="preserve">
|
||||
<value>LectureModel</value>
|
||||
</data>
|
||||
<data name="ParamModelLecture_ActivityId" xml:space="preserve">
|
||||
<value>ActivityId</value>
|
||||
</data>
|
||||
<data name="ParamModelLecture_ModulNumber" xml:space="preserve">
|
||||
<value>ModulNumber</value>
|
||||
</data>
|
||||
<data name="ParamUrl" xml:space="preserve">
|
||||
<value>Url</value>
|
||||
</data>
|
||||
<data name="PathLecture_ModulWebPage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/ModulWebPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathLecture_ResultDetailPage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/ResultDetailPage.xaml</value>
|
||||
</data>
|
||||
<data name="UrlLecture_ModulBaseAddr" xml:space="preserve">
|
||||
<value>https://www.tu-cottbus.de/modul/</value>
|
||||
</data>
|
||||
<data name="XMLRootElementName" xml:space="preserve">
|
||||
<value>root</value>
|
||||
</data>
|
||||
<data name="UrlWebMail_Addr" xml:space="preserve">
|
||||
<value>https://webmail.tu-cottbus.de</value>
|
||||
</data>
|
||||
<data name="PathLecture_ResultPage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/ResultPage.xaml</value>
|
||||
</data>
|
||||
<data name="LectureXmlValidRootName" xml:space="preserve">
|
||||
<value>lsf_auszug</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_Course" xml:space="preserve">
|
||||
<value>Studiengang</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_Degree" xml:space="preserve">
|
||||
<value>Abschluss</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_From" xml:space="preserve">
|
||||
<value>Von</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_Semester" xml:space="preserve">
|
||||
<value>Semester</value>
|
||||
</data>
|
||||
<data name="ParamGetLecture_To" xml:space="preserve">
|
||||
<value>Bis</value>
|
||||
</data>
|
||||
<data name="UrlLecture_ApiBaseAddr" xml:space="preserve">
|
||||
<value>http://www.zv.tu-cottbus.de/LSFveranst/LSF4</value>
|
||||
</data>
|
||||
<data name="IsolatedStorage_LecturePageModel" xml:space="preserve">
|
||||
<value>IsolatedStorage_LecturePageModel</value>
|
||||
</data>
|
||||
<data name="PathLecture_LecturePage" xml:space="preserve">
|
||||
<value>/Pages/Lecture/LecturePage.xaml</value>
|
||||
</data>
|
||||
<data name="PathEvents_EventsIndexPage" xml:space="preserve">
|
||||
<value>/Pages/Events/EventIndexPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathMail_WebMailPage" xml:space="preserve">
|
||||
<value>/Pages/Webmail/WebmailPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathMensa_MensaPage" xml:space="preserve">
|
||||
<value>/Pages/Mensa/MensaPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathNews_NewsIndexPage" xml:space="preserve">
|
||||
<value>/Pages/News/NewsIndexPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathOpeninghours_OpeninghoursPage" xml:space="preserve">
|
||||
<value>/Pages/Openinghours/OpeninghoursPage.xaml</value>
|
||||
</data>
|
||||
<data name="IsolatedStorage_DepartmentFavoriteModel" xml:space="preserve">
|
||||
<value>IsolatedStorage_DepartmentFavoriteModel</value>
|
||||
</data>
|
||||
<data name="FileDepartment_Favorite_Name" xml:space="preserve">
|
||||
<value>DepartmentFavoriteFeed.xml</value>
|
||||
</data>
|
||||
<data name="FileDepartment_Name" xml:space="preserve">
|
||||
<value>DepartmentFeed.xml</value>
|
||||
</data>
|
||||
<data name="PathDepartment_DepartmentIndexPage" xml:space="preserve">
|
||||
<value>/Pages/Departments/DepartmentIndexPage.xaml</value>
|
||||
</data>
|
||||
<data name="UrlDepartment_Addr" xml:space="preserve">
|
||||
<value>http://www.tu-cottbus.de/campusapp-data/professorships.xml</value>
|
||||
</data>
|
||||
<data name="PathDepartment_DepartmentFavoritePage" xml:space="preserve">
|
||||
<value>/Pages/Departments/DepartmentFavoritePage.xaml</value>
|
||||
</data>
|
||||
<data name="PathDepartment_DepartmentInfoPage" xml:space="preserve">
|
||||
<value>/Pages/Departments/DepartmentInfoPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathDepartment_DepartmentPage" xml:space="preserve">
|
||||
<value>/Pages/Departments/DepartmentPage.xaml</value>
|
||||
</data>
|
||||
<data name="FileLink_ClubLinks" xml:space="preserve">
|
||||
<value>ClubLinks.xml</value>
|
||||
</data>
|
||||
<data name="FileLink_CommonLinks" xml:space="preserve">
|
||||
<value>CommonLinks.xml</value>
|
||||
</data>
|
||||
<data name="FileStudentCouncil_StudentCouncils" xml:space="preserve">
|
||||
<value>StudentCouncils.xml</value>
|
||||
</data>
|
||||
<data name="ParamPivotIndex" xml:space="preserve">
|
||||
<value>pivotindex</value>
|
||||
</data>
|
||||
<data name="PathEvent_EventPage" xml:space="preserve">
|
||||
<value>/Pages/Events/EventPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathLinks_LinkPage" xml:space="preserve">
|
||||
<value>/Pages/Links/LinkPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathNews_NewsPage" xml:space="preserve">
|
||||
<value>/Pages/News/NewsPage.xaml</value>
|
||||
</data>
|
||||
<data name="PathStudentCouncil_StudentCouncilPage" xml:space="preserve">
|
||||
<value>/Pages/StudentCouncil/StudentCouncilPage.xaml</value>
|
||||
</data>
|
||||
<data name="ToggleContent" xml:space="preserve">
|
||||
<value>ToggleContent</value>
|
||||
</data>
|
||||
<data name="UrlLink_ClubLinks" xml:space="preserve">
|
||||
<value>http://www.tu-cottbus.de/campusapp-data/getdata.php?db=clubs&app=2&appversion=1</value>
|
||||
</data>
|
||||
<data name="UrlLink_CommonLinks" xml:space="preserve">
|
||||
<value>http://www.tu-cottbus.de/campusapp-data/getdata.php?db=links&app=2&appversion=1</value>
|
||||
</data>
|
||||
<data name="UrlStudentCouncil_StudentCouncils" xml:space="preserve">
|
||||
<value>http://www.tu-cottbus.de/campusapp-data/getdata.php?db=studentcouncils&app=2&appversion=1</value>
|
||||
</data>
|
||||
<data name="FileMensa_Shedule" xml:space="preserve">
|
||||
<value>MensaFeed.xml</value>
|
||||
</data>
|
||||
<data name="FileEvents_Name" xml:space="preserve">
|
||||
<value>EventsFeed.xml</value>
|
||||
</data>
|
||||
<data name="FileEvents_Name" xml:space="preserve">
|
||||
<value>EventsFeed.xml</value>
|
||||
</data>
|
||||
<data name="UrlMensa_Week" xml:space="preserve">
|
||||
<value>http://www.studentenwerk-frankfurt.de/2011/ClassPackage/App_IKMZ_BTU/</value>
|
||||
</data>
|
||||
<data name="FileOpeningHours_OpeningHours" xml:space="preserve">
|
||||
<value>OpeninghoursFeed.xml</value>
|
||||
</data>
|
||||
<data name="UrlOpeningHours_OpeningHours" xml:space="preserve">
|
||||
<value>http://www.tu-cottbus.de/campusapp-data/getdata.php?db=openinghours&app=2&appversion=1</value>
|
||||
</data>
|
||||
<data name="FileNews_Name" xml:space="preserve">
|
||||
<value>NewsFeed.xml</value>
|
||||
</data>
|
||||
<data name="UrlEvents_Addr" xml:space="preserve">
|
||||
<value>http://www.tu-cottbus.de/oracle-gateway/php/rss2feed_veranstaltungen.php</value>
|
||||
</data>
|
||||
<data name="UrlNews_Addr" xml:space="preserve">
|
||||
<value>http://www.tu-cottbus.de/oracle-gateway/php/rss2feed_aktuelles.php</value>
|
||||
</data>
|
||||
</root>
|
||||
387
CampusAppWP8/CampusAppWP8/Resources/Icons.Designer.cs
generated
@@ -1,42 +1,40 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion:4.0.30319.18046
|
||||
//
|
||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code erneut generiert wird.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="Icons.Designer.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>28.06.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Resources
|
||||
{
|
||||
using System;
|
||||
using System.Windows;
|
||||
|
||||
/// <summary>
|
||||
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
/// Icons uri string.
|
||||
/// </summary>
|
||||
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
||||
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
||||
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
||||
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class Icons
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Resource manager object.
|
||||
/// </summary>
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
/// <summary>
|
||||
/// Culture information object.
|
||||
/// </summary>
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="Icons" /> class.
|
||||
/// </summary>
|
||||
internal Icons()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
||||
/// Gets the resource manager.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Resources.ResourceManager ResourceManager
|
||||
@@ -45,18 +43,16 @@ namespace CampusAppWP8.Resources
|
||||
{
|
||||
if (object.ReferenceEquals(resourceMan, null))
|
||||
{
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CampusAppWP8.Resources.Icons",
|
||||
|
||||
typeof(Icons).Assembly);
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CampusAppWP8.Resources.Icons", typeof(Icons).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
||||
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
||||
/// Gets or sets the culture information.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
public static global::System.Globalization.CultureInfo Culture
|
||||
@@ -65,6 +61,7 @@ typeof(Icons).Assembly);
|
||||
{
|
||||
return resourceCulture;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
resourceCulture = value;
|
||||
@@ -72,11 +69,198 @@ typeof(Icons).Assembly);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the full filename of the icon, depending on the current theme.
|
||||
/// Gets the uri string of the campus icon.
|
||||
/// </summary>
|
||||
/// <param name="_key">Tagname</param>
|
||||
/// <returns>Filename</returns>
|
||||
private static string Themerize(string _key)
|
||||
public static string Campus
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Campus");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the departments icon.
|
||||
/// </summary>
|
||||
public static string Departments
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Departments");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the homework icon.
|
||||
/// </summary>
|
||||
public static string Homework
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Homework");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the lectures icon.
|
||||
/// </summary>
|
||||
public static string Lectures
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Lectures");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the link icon.
|
||||
/// </summary>
|
||||
public static string Link
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Link");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the mensa icon.
|
||||
/// </summary>
|
||||
public static string Mensa
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Mensa");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the news icon.
|
||||
/// </summary>
|
||||
public static string News
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("News");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the opening hours icon.
|
||||
/// </summary>
|
||||
public static string Openhours
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Openhours");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the schedule icon.
|
||||
/// </summary>
|
||||
public static string Schedule
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Schedule");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the search icon.
|
||||
/// </summary>
|
||||
public static string Search
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Search");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the student council icon.
|
||||
/// </summary>
|
||||
public static string StudentCouncil
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("StudentCouncil");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the web mail icon.
|
||||
/// </summary>
|
||||
public static string WebMail
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("WebMail");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the favorite icon.
|
||||
/// </summary>
|
||||
public static string Favorite
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Favorite");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the delete icon.
|
||||
/// </summary>
|
||||
public static string Delete
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Delete");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the info icon.
|
||||
/// </summary>
|
||||
public static string Info
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Info");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the add icon.
|
||||
/// </summary>
|
||||
public static string Add
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Add");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the uri string of the phone icon.
|
||||
/// </summary>
|
||||
public static string Phone
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Phone");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the theme depending string of a icon.
|
||||
/// </summary>
|
||||
/// <param name="key">icon name</param>
|
||||
/// <returns>uri string of the icon</returns>
|
||||
private static string Themerize(string key)
|
||||
{
|
||||
string retValue = string.Empty;
|
||||
|
||||
@@ -89,152 +273,9 @@ typeof(Icons).Assembly);
|
||||
retValue = "/Assets/Icons/LightTheme/";
|
||||
}
|
||||
|
||||
retValue += ResourceManager.GetString(_key, resourceCulture);
|
||||
retValue += ResourceManager.GetString(key, resourceCulture);
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die campus_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Campus
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Campus");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die departments_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Departments
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Departments");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die homework_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Homework
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Homework");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die lectures_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Lectures
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Lectures");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die link_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Link
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Link");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die mensa_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Mensa
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Mensa");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die news_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string News
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("News");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die openhours_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Openhours
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Openhours");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die schedule_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Schedule
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Schedule");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die search_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Search
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Search");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die student_council_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string StudentCouncil
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("StudentCouncil");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die webmail_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string WebMail
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("WebMail");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sucht eine lokalisierte Zeichenfolge, die phone_159.png ähnelt.
|
||||
/// </summary>
|
||||
public static string Phone
|
||||
{
|
||||
get
|
||||
{
|
||||
return Themerize("Phone");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,159 +1,171 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Campus" xml:space="preserve">
|
||||
<value>campus_159.png</value>
|
||||
</data>
|
||||
<data name="Departments" xml:space="preserve">
|
||||
<value>departments_159.png</value>
|
||||
</data>
|
||||
<data name="Homework" xml:space="preserve">
|
||||
<value>homework_159.png</value>
|
||||
</data>
|
||||
<data name="Lectures" xml:space="preserve">
|
||||
<value>lectures_159.png</value>
|
||||
</data>
|
||||
<data name="Link" xml:space="preserve">
|
||||
<value>link_159.png</value>
|
||||
</data>
|
||||
<data name="Mensa" xml:space="preserve">
|
||||
<value>mensa_159.png</value>
|
||||
</data>
|
||||
<data name="News" xml:space="preserve">
|
||||
<value>news_159.png</value>
|
||||
</data>
|
||||
<data name="Openhours" xml:space="preserve">
|
||||
<value>openhours_159.png</value>
|
||||
</data>
|
||||
<data name="Phone" xml:space="preserve">
|
||||
<value>phone_159.png</value>
|
||||
</data>
|
||||
<data name="Schedule" xml:space="preserve">
|
||||
<value>schedule_159.png</value>
|
||||
</data>
|
||||
<data name="Search" xml:space="preserve">
|
||||
<value>search_159.png</value>
|
||||
</data>
|
||||
<data name="StudentCouncil" xml:space="preserve">
|
||||
<value>student_council_159.png</value>
|
||||
</data>
|
||||
<data name="WebMail" xml:space="preserve">
|
||||
<value>webmail_159.png</value>
|
||||
</data>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Add" xml:space="preserve">
|
||||
<value>add_159.png</value>
|
||||
</data>
|
||||
<data name="Campus" xml:space="preserve">
|
||||
<value>campus_159.png</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>delete_159.png</value>
|
||||
</data>
|
||||
<data name="Departments" xml:space="preserve">
|
||||
<value>departments_159.png</value>
|
||||
</data>
|
||||
<data name="Favorite" xml:space="preserve">
|
||||
<value>favorite_159.png</value>
|
||||
</data>
|
||||
<data name="Homework" xml:space="preserve">
|
||||
<value>homework_159.png</value>
|
||||
</data>
|
||||
<data name="Info" xml:space="preserve">
|
||||
<value>info_159.png</value>
|
||||
</data>
|
||||
<data name="Lectures" xml:space="preserve">
|
||||
<value>lectures_159.png</value>
|
||||
</data>
|
||||
<data name="Link" xml:space="preserve">
|
||||
<value>link_159.png</value>
|
||||
</data>
|
||||
<data name="Mensa" xml:space="preserve">
|
||||
<value>mensa_159.png</value>
|
||||
</data>
|
||||
<data name="News" xml:space="preserve">
|
||||
<value>news_159.png</value>
|
||||
</data>
|
||||
<data name="Openhours" xml:space="preserve">
|
||||
<value>openhours_159.png</value>
|
||||
</data>
|
||||
<data name="Phone" xml:space="preserve">
|
||||
<value>phone_159.png</value>
|
||||
</data>
|
||||
<data name="Schedule" xml:space="preserve">
|
||||
<value>schedule_159.png</value>
|
||||
</data>
|
||||
<data name="Search" xml:space="preserve">
|
||||
<value>search_159.png</value>
|
||||
</data>
|
||||
<data name="StudentCouncil" xml:space="preserve">
|
||||
<value>student_council_159.png</value>
|
||||
</data>
|
||||
<data name="WebMail" xml:space="preserve">
|
||||
<value>webmail_159.png</value>
|
||||
</data>
|
||||
</root>
|
||||
27
CampusAppWP8/CampusAppWP8/Styles/ListButton.xaml
Normal file
@@ -0,0 +1,27 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
|
||||
mc:Ignorable="d">
|
||||
<Style x:Key="ListButtonStyle" TargetType="Button">
|
||||
<Setter Property="Background" Value="{StaticResource PhoneBackgroundBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource PhoneContrastBackgroundBrush}"/>
|
||||
<Setter Property="BorderThickness" Value="6,3,6,3"/>
|
||||
<Setter Property="Margin" Value="-10"/>
|
||||
<Setter Property="toolkit:TiltEffect.IsTiltEnabled" Value="True"/>
|
||||
</Style>
|
||||
<Style x:Key="ListButtonNoneBorder" TargetType="Button">
|
||||
<Setter Property="Background" Value="{x:Null}"/>
|
||||
<Setter Property="BorderBrush" Value="{x:Null}"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Margin" Value="-10"/>
|
||||
<Setter Property="toolkit:TiltEffect.IsTiltEnabled" Value="True"/>
|
||||
</Style>
|
||||
<Style x:Key="ListButtonBorder" TargetType="Border">
|
||||
<Setter Property="Background" Value="{StaticResource PhoneBackgroundBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource PhoneContrastBackgroundBrush}"/>
|
||||
<Setter Property="BorderThickness" Value="6,3,6,3"/>
|
||||
<Setter Property="Margin" Value="0,0,0,3"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
28
CampusAppWP8/CampusAppWP8/Styles/StartPageStyles.xaml
Normal file
@@ -0,0 +1,28 @@
|
||||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
|
||||
mc:Ignorable="d">
|
||||
<Style x:Key="StartPageStackPanelStyle" TargetType="StackPanel">
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
|
||||
</Style>
|
||||
<Style x:Key="StartPageButton" TargetType="Button">
|
||||
<Setter Property="Margin" Value="-6"/>
|
||||
<Setter Property="BorderBrush" Value="{x:Null}"/>
|
||||
<Setter Property="Background" Value="{StaticResource PhoneAccentBrush}"/>
|
||||
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="toolkit:TiltEffect.IsTiltEnabled" Value="True"/>
|
||||
</Style>
|
||||
<Style x:Key="StartPageButtonText" TargetType="TextBlock">
|
||||
<Setter Property="TextWrapping" Value="Wrap"/>
|
||||
<Setter Property="TextAlignment" Value="Center"/>
|
||||
</Style>
|
||||
<Style x:Key="StartPageButtonImg" TargetType="Image">
|
||||
<Setter Property="Height" Value="100"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
@@ -139,6 +139,6 @@ namespace CampusAppWP8.Utility
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
231
CampusAppWP8/CampusAppWP8/Utility/File.cs
Normal file
@@ -0,0 +1,231 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="File.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>03.05.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility
|
||||
{
|
||||
using System;
|
||||
using System.IO;
|
||||
using Windows.Storage;
|
||||
|
||||
/// <summary>
|
||||
/// File class.
|
||||
/// </summary>
|
||||
public class File
|
||||
{
|
||||
/// <summary>
|
||||
/// Folder object.
|
||||
/// </summary>
|
||||
private static readonly IStorageFolder LocalFolder = ApplicationData.Current.LocalFolder;
|
||||
|
||||
/// <summary>
|
||||
/// File name.
|
||||
/// </summary>
|
||||
private string filename = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Read type.
|
||||
/// </summary>
|
||||
private IOTypeRead readType;
|
||||
|
||||
/// <summary>
|
||||
/// Write type.
|
||||
/// </summary>
|
||||
private IOTypeWrite writeType;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="File" /> class.
|
||||
/// </summary>
|
||||
/// <param name="filename">file name</param>
|
||||
/// <param name="read">read type</param>
|
||||
/// <param name="write">write type</param>
|
||||
public File(string filename, IOTypeRead read, IOTypeWrite write)
|
||||
{
|
||||
this.filename = filename;
|
||||
this.readType = (read == IOTypeRead.INVALID) ? IOTypeRead.ReadAsync : read;
|
||||
this.writeType = write;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// IO read type ENUM.
|
||||
/// </summary>
|
||||
public enum IOTypeRead
|
||||
{
|
||||
/// <summary>
|
||||
/// Invalid/unset state.
|
||||
/// </summary>
|
||||
INVALID = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Sync read.
|
||||
/// </summary>
|
||||
ReadSync = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Async read.
|
||||
/// </summary>
|
||||
ReadAsync = 2
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// IO write type ENUM.
|
||||
/// </summary>
|
||||
public enum IOTypeWrite
|
||||
{
|
||||
/// <summary>
|
||||
/// Invalid/unset state.
|
||||
/// </summary>
|
||||
INVALID = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Sync write.
|
||||
/// </summary>
|
||||
WriteSync = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Async write.
|
||||
/// </summary>
|
||||
WriteAsync = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Read only, no writing.
|
||||
/// </summary>
|
||||
ReadOnly = 3
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read data from file to a string.
|
||||
/// </summary>
|
||||
/// <param name="ioType">read type</param>
|
||||
/// <returns>data string</returns>
|
||||
public string ReadFile(IOTypeRead ioType = IOTypeRead.INVALID)
|
||||
{
|
||||
string retValue = null;
|
||||
|
||||
if (this.Exist() == true)
|
||||
{
|
||||
IOTypeRead tempType = ioType;
|
||||
|
||||
if (tempType == IOTypeRead.INVALID)
|
||||
{
|
||||
tempType = this.readType;
|
||||
}
|
||||
|
||||
if (tempType == IOTypeRead.ReadAsync)
|
||||
{
|
||||
// retValue = this.ReadAsync();
|
||||
retValue = this.ReadSync();
|
||||
}
|
||||
else if (tempType == IOTypeRead.ReadSync)
|
||||
{
|
||||
retValue = this.ReadSync();
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write bytes to the file.
|
||||
/// </summary>
|
||||
/// <param name="data">data byte array</param>
|
||||
/// <param name="ioType">write type</param>
|
||||
public void WriteFile(byte[] data, IOTypeWrite ioType = IOTypeWrite.INVALID)
|
||||
{
|
||||
IOTypeWrite tempType = ioType;
|
||||
|
||||
if (tempType == IOTypeWrite.INVALID)
|
||||
{
|
||||
tempType = this.writeType;
|
||||
}
|
||||
|
||||
if (tempType == IOTypeWrite.WriteAsync)
|
||||
{
|
||||
this.WriteAsync(data);
|
||||
}
|
||||
else if (tempType == IOTypeWrite.WriteSync)
|
||||
{
|
||||
// this.WriteSync(data);
|
||||
this.WriteAsync(data);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return a info object of the file.
|
||||
/// </summary>
|
||||
/// <returns>info of the file</returns>
|
||||
public FileInfo GetFileInfo()
|
||||
{
|
||||
FileInfo info = new FileInfo(File.LocalFolder.Path + "\\" + this.filename);
|
||||
return info;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if a file is existing.
|
||||
/// </summary>
|
||||
/// <returns>true, if file exists, otherwise false</returns>
|
||||
public bool Exist()
|
||||
{
|
||||
return this.GetFileInfo().Exists;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read data synchronous from file.
|
||||
/// </summary>
|
||||
/// <returns>data string</returns>
|
||||
private string ReadSync()
|
||||
{
|
||||
string retValue = null;
|
||||
|
||||
using (Stream fileStream = File.LocalFolder.OpenStreamForReadAsync(this.filename).Result)
|
||||
{
|
||||
using (StreamReader streamReader = new StreamReader(fileStream))
|
||||
{
|
||||
retValue = streamReader.ReadToEnd();
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Read data asynchronous from file.
|
||||
/// </summary>
|
||||
/// <returns>data string</returns>
|
||||
private string ReadAsync()
|
||||
{
|
||||
string retValue = string.Empty;
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write data synchronous to file.
|
||||
/// </summary>
|
||||
/// <param name="data">data array</param>
|
||||
/// <returns>true, if succeeded</returns>
|
||||
private bool WriteSync(byte[] data)
|
||||
{
|
||||
bool retValue = true;
|
||||
|
||||
return retValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Write data asynchronous to file.
|
||||
/// </summary>
|
||||
/// <param name="data">data array</param>
|
||||
private async void WriteAsync(byte[] data)
|
||||
{
|
||||
var file = await File.LocalFolder.CreateFileAsync(this.filename, CreationCollisionOption.ReplaceExisting);
|
||||
|
||||
using (var s = await file.OpenStreamForWriteAsync())
|
||||
{
|
||||
await s.WriteAsync(data, 0, data.Length);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ namespace CampusAppWP8.Utility
|
||||
/// <summary>
|
||||
/// Class realize the access of restful HttpRequest
|
||||
/// </summary>
|
||||
public abstract class HttpRequest
|
||||
public class HttpRequest
|
||||
{
|
||||
#region Members
|
||||
|
||||
|
||||
81
CampusAppWP8/CampusAppWP8/Utility/Lui/Button/EmailButton.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="EmailButton.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>04.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility.Lui.Button
|
||||
{
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media.Imaging;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
/// <summary>
|
||||
/// This class create an Button which start the Email-Client
|
||||
/// </summary>
|
||||
public class EmailButton : System.Windows.Controls.Button
|
||||
{
|
||||
#region Members
|
||||
|
||||
/// <summary>
|
||||
/// Register the EmailProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty EmailProperty = DependencyProperty.Register("EmailAddress", typeof(object), typeof(EmailButton), new PropertyMetadata(false));
|
||||
|
||||
/// <summary>
|
||||
/// Icon of the Button
|
||||
/// </summary>
|
||||
private static BitmapImage icon = new BitmapImage(new Uri(Icons.WebMail, UriKind.Relative));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="EmailButton" /> class.
|
||||
/// </summary>
|
||||
public EmailButton()
|
||||
: base()
|
||||
{
|
||||
this.Content = new Image
|
||||
{
|
||||
Source = icon
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Proberties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the EmailAddress
|
||||
/// </summary>
|
||||
public object EmailAddress
|
||||
{
|
||||
get { return (object)this.GetValue(EmailProperty); }
|
||||
set { this.SetValue(EmailProperty, value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the OnClick-Method from button
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// now method start the EmailComposeTask
|
||||
/// </remarks>
|
||||
protected override void OnClick()
|
||||
{
|
||||
EmailComposeTask emailTask = new EmailComposeTask();
|
||||
emailTask.To = "mailto:" + this.EmailAddress.ToString();
|
||||
emailTask.Show();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="GoToMapButton.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>08.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility.Lui.Button
|
||||
{
|
||||
using System;
|
||||
using System.Device.Location;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media.Imaging;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
/// <summary>
|
||||
/// This class create an Button which open a Map
|
||||
/// </summary>
|
||||
public class GoToMapButton : System.Windows.Controls.Button
|
||||
{
|
||||
#region Members
|
||||
|
||||
/// <summary>
|
||||
/// Register the SearchTermProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty SearchTermProperty = DependencyProperty.Register("SearchTerm", typeof(object), typeof(GoToMapButton), new PropertyMetadata(false));
|
||||
|
||||
/// <summary>
|
||||
/// Icon of the Button
|
||||
/// </summary>
|
||||
private static BitmapImage icon = new BitmapImage(new Uri(Icons.Campus, UriKind.Relative));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="GoToMapButton" /> class.
|
||||
/// </summary>
|
||||
public GoToMapButton()
|
||||
: base()
|
||||
{
|
||||
this.Content = new Image
|
||||
{
|
||||
Source = icon
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Proberties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Url
|
||||
/// </summary>
|
||||
public object SearchTerm
|
||||
{
|
||||
get { return (object)this.GetValue(SearchTermProperty); }
|
||||
set { this.SetValue(SearchTermProperty, value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the OnClick-Method from button
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// now method start the MapTask
|
||||
/// </remarks>
|
||||
protected override void OnClick()
|
||||
{
|
||||
MapsTask mapsTask = new MapsTask();
|
||||
mapsTask.Center = new GeoCoordinate(51.766788, 14.326681);
|
||||
mapsTask.SearchTerm = this.SearchTerm as string;
|
||||
mapsTask.ZoomLevel = 15;
|
||||
mapsTask.Show();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
82
CampusAppWP8/CampusAppWP8/Utility/Lui/Button/LinkButton.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="LinkButton.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>08.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility.Lui.Button
|
||||
{
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media.Imaging;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
/// <summary>
|
||||
/// This class create an Button which start the WebBrowser, which an certain url
|
||||
/// </summary>
|
||||
public class LinkButton : System.Windows.Controls.Button
|
||||
{
|
||||
#region Members
|
||||
|
||||
/// <summary>
|
||||
/// Register the EmailProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty LinkProperty = DependencyProperty.Register("Url", typeof(object), typeof(LinkButton), new PropertyMetadata(false));
|
||||
|
||||
/// <summary>
|
||||
/// Icon of the Button
|
||||
/// </summary>
|
||||
private static BitmapImage icon = new BitmapImage(new Uri(Icons.Link, UriKind.Relative));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="LinkButton" /> class.
|
||||
/// </summary>
|
||||
public LinkButton()
|
||||
: base()
|
||||
{
|
||||
this.Content = new Image
|
||||
{
|
||||
Source = icon
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Proberties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Url
|
||||
/// </summary>
|
||||
public object Url
|
||||
{
|
||||
get { return (object)this.GetValue(LinkProperty); }
|
||||
set { this.SetValue(LinkProperty, value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the OnClick-Method from button
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// now method start the WebBrowserTask
|
||||
/// </remarks>
|
||||
protected override void OnClick()
|
||||
{
|
||||
Uri linkUrl = new Uri(this.Url as string, UriKind.Absolute);
|
||||
WebBrowserTask webBrowserTask = new WebBrowserTask();
|
||||
webBrowserTask.Uri = linkUrl;
|
||||
webBrowserTask.Show();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
104
CampusAppWP8/CampusAppWP8/Utility/Lui/Button/NavigateButton.cs
Normal file
@@ -0,0 +1,104 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="NavigateButton.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>08.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility.Lui.Button
|
||||
{
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// This class create an Button which navigate to a certain page
|
||||
/// </summary>
|
||||
public class NavigateButton : System.Windows.Controls.Button
|
||||
{
|
||||
#region Members
|
||||
|
||||
/// <summary>
|
||||
/// Register the UrlProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty NavigateProperty = DependencyProperty.Register("Url", typeof(object), typeof(NavigateButton), new PropertyMetadata(false));
|
||||
|
||||
/// <summary>
|
||||
/// Register the QueryValueProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty QueryValueProperty = DependencyProperty.Register("QuerryStringValue", typeof(object), typeof(NavigateButton), new PropertyMetadata(false));
|
||||
|
||||
/// <summary>
|
||||
/// Register the QueryNameProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty QueryNameProperty = DependencyProperty.Register("QuerryStringName", typeof(object), typeof(NavigateButton), new PropertyMetadata(false));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="NavigateButton" /> class.
|
||||
/// </summary>
|
||||
public NavigateButton()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Proberties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the Url
|
||||
/// </summary>
|
||||
public object Url
|
||||
{
|
||||
get { return (object)this.GetValue(NavigateProperty); }
|
||||
set { this.SetValue(NavigateProperty, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the QueryStringName
|
||||
/// </summary>
|
||||
public object QuerryStringName
|
||||
{
|
||||
get { return (object)this.GetValue(QueryNameProperty); }
|
||||
set { this.SetValue(QueryNameProperty, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the QueryStringValue
|
||||
/// </summary>
|
||||
public object QuerryStringValue
|
||||
{
|
||||
get { return (object)this.GetValue(QueryValueProperty); }
|
||||
set { this.SetValue(QueryValueProperty, value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the OnClick-Method from button
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// now method navigate to a certain page
|
||||
/// </remarks>
|
||||
protected override void OnClick()
|
||||
{
|
||||
string urlString = this.Url as string;
|
||||
|
||||
if (this.QuerryStringName != null && this.QuerryStringValue != null)
|
||||
{
|
||||
urlString += "?" + this.QuerryStringName + "=" + this.QuerryStringValue;
|
||||
}
|
||||
|
||||
Uri url = new Uri(urlString as string, UriKind.Relative);
|
||||
Page page = App.RootFrame.Content as Page;
|
||||
page.NavigationService.Navigate(url);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
96
CampusAppWP8/CampusAppWP8/Utility/Lui/Button/PhoneButton.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="PhoneButton.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>08.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility.Lui.Button
|
||||
{
|
||||
using System;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media.Imaging;
|
||||
using CampusAppWP8.Resources;
|
||||
using Microsoft.Phone.Tasks;
|
||||
|
||||
/// <summary>
|
||||
/// This class create an Button which start a PhoneCall
|
||||
/// </summary>
|
||||
public class PhoneButton : System.Windows.Controls.Button
|
||||
{
|
||||
#region Members
|
||||
|
||||
/// <summary>
|
||||
/// Register the PhoneProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty PhoneProperty = DependencyProperty.Register("Number", typeof(object), typeof(PhoneButton), new PropertyMetadata(false));
|
||||
|
||||
/// <summary>
|
||||
/// Register the DisplayNameProperty
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty DisplayNameProperty = DependencyProperty.Register("DisplayName", typeof(object), typeof(PhoneButton), new PropertyMetadata(false));
|
||||
|
||||
/// <summary>
|
||||
/// Icon of the Button
|
||||
/// </summary>
|
||||
private static BitmapImage icon = new BitmapImage(new Uri(Icons.Phone, UriKind.Relative));
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="PhoneButton" /> class.
|
||||
/// </summary>
|
||||
public PhoneButton()
|
||||
: base()
|
||||
{
|
||||
this.Content = new Image
|
||||
{
|
||||
Source = icon
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Proberties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the PhoneNumber
|
||||
/// </summary>
|
||||
public object Number
|
||||
{
|
||||
get { return (object)this.GetValue(PhoneProperty); }
|
||||
set { this.SetValue(PhoneProperty, value); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the DisplayName
|
||||
/// </summary>
|
||||
public object DisplayName
|
||||
{
|
||||
get { return (object)this.GetValue(DisplayNameProperty); }
|
||||
set { this.SetValue(DisplayNameProperty, value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the OnClick-Method from button
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// now method start the PhoneTask
|
||||
/// </remarks>
|
||||
protected override void OnClick()
|
||||
{
|
||||
PhoneCallTask phoneCallTask = new PhoneCallTask();
|
||||
phoneCallTask.PhoneNumber = this.Number as string;
|
||||
phoneCallTask.DisplayName = this.DisplayName as string;
|
||||
phoneCallTask.Show();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
257
CampusAppWP8/CampusAppWP8/Utility/Lui/Button/ToggleButton.cs
Normal file
@@ -0,0 +1,257 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="ToggleButton.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>08.07.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility.Lui.Button
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// This class create an Button which can toggle the Visibility of certain FrameworkElements
|
||||
/// </summary>
|
||||
public class ToggleButton : System.Windows.Controls.Button
|
||||
{
|
||||
#region Members
|
||||
|
||||
#region public
|
||||
/// <summary>
|
||||
/// Register the ToggleContentTag
|
||||
/// </summary>
|
||||
public static readonly DependencyProperty ToggleContentTagProperty = DependencyProperty.Register("ToggleContentTag", typeof(object), typeof(ToggleButton), new PropertyMetadata(false));
|
||||
|
||||
#endregion
|
||||
#region private
|
||||
|
||||
/// <summary>
|
||||
/// List of FrameworkElement which can change their Visibility by this button
|
||||
/// </summary>
|
||||
private List<FrameworkElement> toggleElements = null;
|
||||
|
||||
/// <summary>
|
||||
/// EventHandler of the ToggleButton
|
||||
/// </summary>
|
||||
private ToggleButtonHandler eventHandler;
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ToggleButton" /> class.
|
||||
/// </summary>
|
||||
public ToggleButton()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Events
|
||||
|
||||
/// <summary>
|
||||
/// Delegate for the ToggleButton events
|
||||
/// </summary>
|
||||
private delegate void ToggleButtonHandler();
|
||||
|
||||
/// <summary>
|
||||
/// The closeButtonEvent
|
||||
/// </summary>
|
||||
private static event ToggleButtonHandler CloseButtonEvent;
|
||||
#endregion
|
||||
|
||||
#region Proberties
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the ToggleContentTag
|
||||
/// </summary>
|
||||
public object ToggleContentTag
|
||||
{
|
||||
get { return (object)this.GetValue(ToggleContentTagProperty); }
|
||||
set { this.SetValue(ToggleContentTagProperty, value); }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
#region public
|
||||
|
||||
/// <summary>
|
||||
/// Method close the ToggleContent of the old ToggleContent and then show the new one
|
||||
/// </summary>
|
||||
public void ToggleToggleContent()
|
||||
{
|
||||
if (this.toggleElements != null)
|
||||
{
|
||||
// close the old (other) Button
|
||||
if (CloseButtonEvent != null && !CloseButtonEvent.Equals(this.eventHandler))
|
||||
{
|
||||
CloseButtonEvent();
|
||||
}
|
||||
|
||||
foreach (UIElement elment in this.toggleElements)
|
||||
{
|
||||
this.ToggleToggleContentElement(elment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method show all Element of the ToggleContent
|
||||
/// </summary>
|
||||
public void ShowToggleContent()
|
||||
{
|
||||
if (this.toggleElements != null)
|
||||
{
|
||||
foreach (UIElement elment in this.toggleElements)
|
||||
{
|
||||
this.ShowToggleContentElement(elment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method show all Element of the ToggleContent
|
||||
/// </summary>
|
||||
public void HideToggleContent()
|
||||
{
|
||||
if (this.toggleElements != null)
|
||||
{
|
||||
foreach (UIElement elment in this.toggleElements)
|
||||
{
|
||||
this.HideToggleContentElement(elment);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region protected
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the OnClick-Method from button
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// now method toggle the visibility of some FrameWorkElements
|
||||
/// </remarks>
|
||||
protected override void OnClick()
|
||||
{
|
||||
if (this.toggleElements == null)
|
||||
{
|
||||
this.SetupToggleElements();
|
||||
}
|
||||
|
||||
this.ToggleToggleContent();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region private
|
||||
|
||||
/// <summary>
|
||||
/// Method look for some ToggleContent
|
||||
/// </summary>
|
||||
private void SetupToggleElements()
|
||||
{
|
||||
this.toggleElements = new List<FrameworkElement>();
|
||||
Panel parent = this.Parent as Panel;
|
||||
if (parent == null)
|
||||
{
|
||||
parent = this.GetFirstParentPanel();
|
||||
}
|
||||
|
||||
foreach (FrameworkElement element in parent.Children)
|
||||
{
|
||||
string elementTag = element.Tag as string;
|
||||
if (elementTag != null && elementTag.Contains(this.ToggleContentTag as string))
|
||||
{
|
||||
this.toggleElements.Add(element);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the first panel, which is a parent of this button
|
||||
/// </summary>
|
||||
/// <returns> first panel of the parents</returns>
|
||||
private Panel GetFirstParentPanel()
|
||||
{
|
||||
FrameworkElement parentElement = this.Parent as FrameworkElement;
|
||||
Panel parentPanel = parentElement as Panel;
|
||||
while (parentPanel == null)
|
||||
{
|
||||
parentElement = parentElement.Parent as FrameworkElement;
|
||||
if (parentElement == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
parentPanel = parentElement as Panel;
|
||||
}
|
||||
|
||||
return parentPanel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method toggle the visibility of a certain element
|
||||
/// </summary>
|
||||
/// <param name="element">element of the ToggleContent</param>
|
||||
private void ToggleToggleContentElement(UIElement element)
|
||||
{
|
||||
if (element != null)
|
||||
{
|
||||
if (Visibility.Collapsed.Equals(element.Visibility))
|
||||
{
|
||||
this.ShowToggleContentElement(element);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.HideToggleContentElement(element);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method show the visibility of a certain element
|
||||
/// </summary>
|
||||
/// <param name="element">element of the ToggleContent</param>
|
||||
private void ShowToggleContentElement(UIElement element)
|
||||
{
|
||||
if (element != null)
|
||||
{
|
||||
element.Visibility = Visibility.Visible;
|
||||
if (this.eventHandler == null)
|
||||
{
|
||||
this.eventHandler = new ToggleButtonHandler(this.HideToggleContent);
|
||||
CloseButtonEvent += this.eventHandler;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method hide the visibility of a certain element
|
||||
/// </summary>
|
||||
/// <param name="element">element of the ToggleContent</param>
|
||||
private void HideToggleContentElement(UIElement element)
|
||||
{
|
||||
if (element != null)
|
||||
{
|
||||
element.Visibility = Visibility.Collapsed;
|
||||
if (this.eventHandler != null)
|
||||
{
|
||||
CloseButtonEvent -= this.eventHandler;
|
||||
this.eventHandler = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
57
CampusAppWP8/CampusAppWP8/Utility/Utilities.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// <copyright file="Utilities.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>fiedlchr</author>
|
||||
// <sience>16.07.2013</sience>
|
||||
//-----------------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility
|
||||
{
|
||||
using System;
|
||||
|
||||
public static class Utilities
|
||||
{
|
||||
public enum DifferenceType
|
||||
{
|
||||
Equal,
|
||||
Less,
|
||||
LessEqual,
|
||||
Greater,
|
||||
GreaterEqual
|
||||
};
|
||||
|
||||
|
||||
public static bool DayDifference(DifferenceType type, DateTime date, double totalDiff)
|
||||
{
|
||||
bool retValue = false;
|
||||
|
||||
TimeSpan diff = DateTime.Now.Subtract(date);
|
||||
|
||||
if ((DifferenceType.Less == type) || (DifferenceType.LessEqual == type))
|
||||
{
|
||||
if (diff.TotalDays < totalDiff)
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ((DifferenceType.Greater == type) || (DifferenceType.GreaterEqual == type))
|
||||
{
|
||||
if (diff.TotalDays > totalDiff)
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ((DifferenceType.Equal == type) || (DifferenceType.LessEqual == type) || (DifferenceType.GreaterEqual == type))
|
||||
{
|
||||
if (diff.TotalDays == totalDiff)
|
||||
{
|
||||
retValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Utility
|
||||
{
|
||||
using System.IO;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.Serialization;
|
||||
|
||||
@@ -36,5 +37,39 @@ namespace CampusAppWP8.Utility
|
||||
T model = (T)serializer.Deserialize(document.CreateReader());
|
||||
return model;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method serializes a model to a string.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">type of the model</typeparam>
|
||||
/// <param name="model">model object</param>
|
||||
/// <returns>serialized string</returns>
|
||||
public static string SerializationToString<T>(T model)
|
||||
{
|
||||
string retValue = string.Empty;
|
||||
|
||||
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
|
||||
ns.Add("", "");
|
||||
|
||||
XmlSerializer serializer = new XmlSerializer(typeof(T));
|
||||
TextWriter writer = new StringWriter();
|
||||
|
||||
serializer.Serialize(writer, model, ns);
|
||||
|
||||
retValue = writer.ToString();
|
||||
|
||||
if (retValue.StartsWith("<?xml") == true)
|
||||
{
|
||||
int endTag = retValue.IndexOf("?>");
|
||||
retValue = retValue.Substring(endTag + 2);
|
||||
|
||||
if (retValue.StartsWith("\r\n") == true)
|
||||
{
|
||||
retValue = retValue.Substring(2);
|
||||
}
|
||||
}
|
||||
|
||||
return retValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="BaseModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>03.05.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model
|
||||
{
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
|
||||
/// <summary>
|
||||
/// This Class provide a basic model
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// not necessary, maybe delete => deprecated
|
||||
/// </remarks>
|
||||
public class BaseModel : INotifyPropertyChanged
|
||||
{
|
||||
/// <summary>
|
||||
/// The PropertyChangedEvent
|
||||
/// </summary>
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Method fire PropertyChangedEvents
|
||||
/// </summary>
|
||||
/// <param name="propertyName">name of the property</param>
|
||||
public void NotifyPropertyChanged(string propertyName)
|
||||
{
|
||||
PropertyChangedEventHandler handler = this.PropertyChanged;
|
||||
if (null != handler)
|
||||
{
|
||||
handler(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// <copyright file="BaseViewModel.cs" company="BTU/IIT">
|
||||
// Company copyright tag.
|
||||
// </copyright>
|
||||
// <author>stubbfel</author>
|
||||
// <sience>03.05.2013</sience>
|
||||
//----------------------------------------------------------------------
|
||||
namespace CampusAppWP8.Model
|
||||
{
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
|
||||
/// <summary>
|
||||
/// This Class provide a basic ViewModel
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// not necessary, maybe delete => deprecated
|
||||
/// </remarks>
|
||||
public class BaseViewModel : INotifyPropertyChanged
|
||||
{
|
||||
/// <summary>
|
||||
/// The PropertyChangedEvent
|
||||
/// </summary>
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Method fire PropertyChangedEvents
|
||||
/// </summary>
|
||||
/// <param name="propertyName">name of the property</param>
|
||||
public void NotifyPropertyChanged(string propertyName)
|
||||
{
|
||||
PropertyChangedEventHandler handler = this.PropertyChanged;
|
||||
if (null != handler)
|
||||
{
|
||||
handler(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
<phone:PhoneApplicationPage
|
||||
x:Class="CampusAppWP8.Pages.StartPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
|
||||
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
FontFamily="{StaticResource PhoneFontFamilyNormal}"
|
||||
FontSize="{StaticResource PhoneFontSizeNormal}"
|
||||
Foreground="{StaticResource PhoneForegroundBrush}"
|
||||
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
|
||||
OrientationChanged="PhoneApplicationPage_OrientationChanged"
|
||||
mc:Ignorable="d"
|
||||
shell:SystemTray.IsVisible="True">
|
||||
|
||||
<!--LayoutRoot ist das Stammraster, in dem alle anderen Seiteninhalte platziert werden-->
|
||||
<Grid x:Name="LayoutRoot" Background="Transparent">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!--TitlePanel enthält den Namen der Anwendung und den Seitentitel-->
|
||||
<StackPanel Grid.Row="0" Margin="12,17,0,28">
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}" Style="{StaticResource PhoneTextNormalStyle}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--ContentPanel - zusätzliche Inhalte hier platzieren-->
|
||||
<Grid x:Name="ContentPanel" Margin="12,0,0,0" Grid.Row="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Row 0 -->
|
||||
<Button Name="TimeTableAppButton" Grid.Row="0" Grid.Column="0" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" IsEnabled="False">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Schedule, Source={StaticResource ThemelizedIcons}}" Height="100"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.TimeTableApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="LectureAppButton" Grid.Row="0" Grid.Column="1" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" Click="OpenLectureApp">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Lectures, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LectureApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="NewsAppButton" Grid.Row="0" Grid.Column="2" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" Click="OpenNewsApp">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.News, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.NewsApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<!-- Row 1 -->
|
||||
<Button Name="MensaAppButton" Grid.Row="1" Grid.Column="0" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" Click="OpenMensaApp">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Mensa, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MensaApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="CampusMapAppButton" Grid.Row="1" Grid.Column="1" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" IsEnabled="False">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Campus, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.CampusMapApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="HomeworkAppButton" Grid.Row="1" Grid.Column="2" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" IsEnabled="False">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Mensa, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.HomeworkApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<!-- Row 2 -->
|
||||
<Button Name="DepartmentAppButton" Grid.Row="2" Grid.Column="0" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" IsEnabled="False">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Departments, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.DepartmentApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="EventAppButton" Grid.Row="2" Grid.Column="1" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" Click="OpenEventsApp">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.News, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.EventApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="MailAppButton" Grid.Row="2" Grid.Column="2" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" Click="OpenWebMailApp">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.WebMail, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.MailApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<!-- Row 3 -->
|
||||
<Button Name="OpenHoursAppButton" Grid.Row="3" Grid.Column="0" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" Click="OpenOpeninghoursApp">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Openhours, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.OpenHoursApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="OSAAppButton" Grid.Row="3" Grid.Column="1" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" IsEnabled="False">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.StudentCouncil, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.OSAApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
|
||||
<Button Name="LinkAppButton" Grid.Row="3" Grid.Column="2" BorderBrush="{x:Null}" Background="{x:Null}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" BorderThickness="0" Padding="0" IsEnabled="False">
|
||||
<StackPanel Height="auto" Margin="-12,-12,-12,-12">
|
||||
<Image Source="{Binding Path=ThemelizedIcon.Link, Source={StaticResource ThemelizedIcons}}" Height="100" Visibility="Visible"/>
|
||||
<TextBlock Text="{Binding Path=LocalizedResources.LinkApp_Title, Source={StaticResource LocalizedStrings}}" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
||||
</StackPanel>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<!-- <Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" /> -->
|
||||
</Grid>
|
||||
|
||||
</phone:PhoneApplicationPage>
|
||||