110 Commits

Author SHA1 Message Date
stubbfel
7978e27049 Merge branch 'develmaster'
Conflicts:
	Doc/html/annotated.html
	Doc/html/class_campus_app_w_p8_1_1_app-members.html
	Doc/html/class_campus_app_w_p8_1_1_app.html
	Doc/html/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed-members.html
	Doc/html/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed.html
	Doc/html/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed.png
	Doc/html/class_campus_app_w_p8_1_1_localized_strings-members.html
	Doc/html/class_campus_app_w_p8_1_1_localized_strings.html
	Doc/html/class_campus_app_w_p8_1_1_main_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_main_page.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_base_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_base_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_base_view_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_base_view_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_campusmap_1_1_map_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_campusmap_1_1_map_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_campusmap_1_1_map_pin_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_campusmap_1_1_map_pin_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_chair_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_chair_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_department_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_department_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_department_view_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_department_view_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_faculty_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_faculty_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_activity-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_activity.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_course-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_course.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_date-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_date.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_lecturer-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_lecturer.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_list-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_list.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_module-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_module.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_page_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_page_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_modul_web_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_modul_web_page.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_mensa_1_1_menu_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_mensa_1_1_menu_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_mensa_1_1_menu_week_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_mensa_1_1_menu_week_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_openinghours_1_1_openinghours_institution_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_openinghours_1_1_openinghours_institution_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_openinghours_1_1_openinghours_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_openinghours_1_1_openinghours_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_utility_1_1_list_picker_item_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_utility_1_1_list_picker_item_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_utility_1_1_url_param_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1_utility_1_1_url_param_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_channel_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_channel_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_model.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_view_model-members.html
	Doc/html/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_view_model.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_campusmap_1_1_campus_map_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_campusmap_1_1_campus_map_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_departments_1_1_department_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_departments_1_1_department_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_index_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_index_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_lecture_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_lecture_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_modul_web_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_modul_web_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_detail_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_detail_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_results-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_results.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_mensa_1_1_mensa_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_mensa_1_1_mensa_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_index_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_index_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_openinghours_1_1_openinghours_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_openinghours_1_1_openinghours_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_openinghours_1_1_openinghours_page.png
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_start_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_start_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_webmail_1_1_webmail_page-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1_webmail_1_1_webmail_page.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1news_1_1_r_s_s_item-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1news_1_1_r_s_s_item.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1news_1_1_r_s_s_news_template-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1news_1_1_r_s_s_news_template.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1webmail_1_1_webmail-members.html
	Doc/html/class_campus_app_w_p8_1_1_pages_1_1webmail_1_1_webmail.html
	Doc/html/class_campus_app_w_p8_1_1_resources_1_1_app_resources-members.html
	Doc/html/class_campus_app_w_p8_1_1_resources_1_1_app_resources.html
	Doc/html/class_campus_app_w_p8_1_1_resources_1_1_icons-members.html
	Doc/html/class_campus_app_w_p8_1_1_resources_1_1_icons.html
	Doc/html/class_campus_app_w_p8_1_1_themelized_icons-members.html
	Doc/html/class_campus_app_w_p8_1_1_themelized_icons.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_api_3_01_t_01_4-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_api_3_01_t_01_4.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_api_event_handler-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_api_event_handler.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_feed_3_01_t_01_4-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_feed_3_01_t_01_4.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_feed_3_01_t_01_4.png
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_feed_event_handler-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_feed_event_handler.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_http_request-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_http_request.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_http_request.png
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_logger-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_logger.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_xml_api_3_01_t_01_4-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_xml_api_3_01_t_01_4.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_xml_feed_3_01_t_01_4-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_xml_feed_3_01_t_01_4.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_xml_feed_3_01_t_01_4.png
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_xml_manager-members.html
	Doc/html/class_campus_app_w_p8_1_1_utility_1_1_xml_manager.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1_page1-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1_page1.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1_start_page-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1_start_page.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1campusmap_1_1_page1-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1campusmap_1_1_page1.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_lecture-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_lecture.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_page1-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_page1.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1mensa_1_1_mensa-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1mensa_1_1_mensa.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1mensa_1_1_mensa_page-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1mensa_1_1_mensa_page.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1news_1_1_news_page-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1news_1_1_news_page.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1news_1_1_r_s_s_news_template-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1news_1_1_r_s_s_news_template.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1webmail_1_1_page1-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1webmail_1_1_page1.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1webmail_1_1_webmail-members.html
	Doc/html/class_campus_app_w_p8_1_1pages_1_1webmail_1_1_webmail.html
	Doc/html/classes.html
	Doc/html/dir_07d4c02db4037bb0bfdef01a0daf6030.html
	Doc/html/dir_0a0262648802c8fa7405f815eca989e4.html
	Doc/html/dir_1073e9f439c87c111068755896d82c05.html
	Doc/html/dir_13969638f06df799347bce25efcb3a16.html
	Doc/html/dir_21535ccf759c2a522698b0b6a65b0eb5.html
	Doc/html/dir_2a8f810c3f9bbb1cb1ccf83264a53774.html
	Doc/html/dir_2d311ea570d9e1c140e3775582f0c6e6.html
	Doc/html/dir_2d53bace0827e2bf2f77ef9b5661f678.html
	Doc/html/dir_3193f1d6fb141dd24ccdf3ab919c59e1.html
	Doc/html/dir_43c9fdb099d661ab6adf29f06188c90c.html
	Doc/html/dir_4ee4bf09d6a96bb5475eb8efb397b98b.html
	Doc/html/dir_61694d696174b41f9f942e5b19002064.html
	Doc/html/dir_6bacb8829aeb51ed3b0d715b6a3da162.html
	Doc/html/dir_6c1b508c19440a399d17c73bbbf14cb6.html
	Doc/html/dir_6de442f01690ad19364998fec61f3845.html
	Doc/html/dir_7165f1354b38a80f29943ecc19b7740c.html
	Doc/html/dir_7992d2ae2f44549358f6bbac582ef56c.html
	Doc/html/dir_7f12a6abf42a32e793ec2672821d39ef.html
	Doc/html/dir_8cb11b48f8851fbd9a1032c9b3b20f54.html
	Doc/html/dir_8e2bb6ed875431774c2c5ec3d327b5af.html
	Doc/html/dir_8effc334115523b582ac57fdba9e762a.html
	Doc/html/dir_93a662dedef0a167f025fa842da5b025.html
	Doc/html/dir_af3a313bd21a45ca7168411249229c16.html
	Doc/html/dir_b4437153e4904c41e1f33bcad5707ff0.html
	Doc/html/dir_c2e72ee4966602e4b455c4ea040a3c82.html
	Doc/html/dir_c5add0b19063b6242461e8e811903b23.html
	Doc/html/dir_c96c24b29d5f5a7edd4a32cfcf0ce524.html
	Doc/html/dir_ccd35b6bf37d1a47cc7b6a40c3b9a180.html
	Doc/html/dir_d41793d8c394d152b5e09a3e26715b0f.html
	Doc/html/dir_d96a967f964c1de2cbce6cdd2c6f9987.html
	Doc/html/dir_db660fa6ccabfebae5ecfcb91b23cb0b.html
	Doc/html/dir_e01013a89c0db186579be3bde17b6d61.html
	Doc/html/dir_e1864963f19accb1eed35087a40e2ce7.html
	Doc/html/dir_e29671f860be0283b1e43fd2c2c54c8d.html
	Doc/html/dir_e5003b30e146229ea390d69e22496900.html
	Doc/html/dir_e7609f5a50dfa281e7e0cb66859d2aae.html
	Doc/html/dir_e97261cef6f1d192a7010cc49059f2e2.html
	Doc/html/dir_ec3d220e6deb3baaa30cfdec1c46791f.html
	Doc/html/dir_f430e31c3cc30ed9318a1321b6bff73e.html
	Doc/html/dir_f8272e37d6159d9ca7e64f5775e84948.html
	Doc/html/dir_fbd722b3c940652002633e6ed0c44f4f.html
	Doc/html/dir_fd54810065c522d18968f48cf271eca3.html
	Doc/html/dir_fe309a583d11a5902082c112d0275875.html
	Doc/html/functions.html
	Doc/html/functions_0x62.html
	Doc/html/functions_0x63.html
	Doc/html/functions_0x64.html
	Doc/html/functions_0x65.html
	Doc/html/functions_0x66.html
	Doc/html/functions_0x67.html
	Doc/html/functions_0x68.html
	Doc/html/functions_0x69.html
	Doc/html/functions_0x6b.html
	Doc/html/functions_0x6c.html
	Doc/html/functions_0x6d.html
	Doc/html/functions_0x6e.html
	Doc/html/functions_0x6f.html
	Doc/html/functions_0x70.html
	Doc/html/functions_0x72.html
	Doc/html/functions_0x73.html
	Doc/html/functions_0x74.html
	Doc/html/functions_0x75.html
	Doc/html/functions_0x76.html
	Doc/html/functions_0x77.html
	Doc/html/functions_0x78.html
	Doc/html/functions_evnt.html
	Doc/html/functions_func.html
	Doc/html/functions_prop.html
	Doc/html/functions_prop_0x62.html
	Doc/html/functions_prop_0x63.html
	Doc/html/functions_prop_0x64.html
	Doc/html/functions_prop_0x65.html
	Doc/html/functions_prop_0x66.html
	Doc/html/functions_prop_0x67.html
	Doc/html/functions_prop_0x68.html
	Doc/html/functions_prop_0x69.html
	Doc/html/functions_prop_0x6b.html
	Doc/html/functions_prop_0x6c.html
	Doc/html/functions_prop_0x6d.html
	Doc/html/functions_prop_0x6e.html
	Doc/html/functions_prop_0x6f.html
	Doc/html/functions_prop_0x70.html
	Doc/html/functions_prop_0x72.html
	Doc/html/functions_prop_0x73.html
	Doc/html/functions_prop_0x74.html
	Doc/html/functions_prop_0x75.html
	Doc/html/functions_prop_0x76.html
	Doc/html/functions_prop_0x77.html
	Doc/html/hierarchy.html
	Doc/html/index.hhc
	Doc/html/index.hhk
	Doc/html/index.hhp
	Doc/html/index.html
	Doc/html/namespace_campus_app_w_p8.html
	Doc/html/namespace_campus_app_w_p8_1_1_feed.html
	Doc/html/namespace_campus_app_w_p8_1_1_feed_1_1_openinghours.html
	Doc/html/namespace_campus_app_w_p8_1_1_model.html
	Doc/html/namespace_campus_app_w_p8_1_1_model_1_1_campusmap.html
	Doc/html/namespace_campus_app_w_p8_1_1_model_1_1_departments.html
	Doc/html/namespace_campus_app_w_p8_1_1_model_1_1_lecture.html
	Doc/html/namespace_campus_app_w_p8_1_1_model_1_1_mensa.html
	Doc/html/namespace_campus_app_w_p8_1_1_model_1_1_openinghours.html
	Doc/html/namespace_campus_app_w_p8_1_1_model_1_1_utility.html
	Doc/html/namespace_campus_app_w_p8_1_1_model_1_1events__news.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_campusmap.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_departments.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_events.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_lecture.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_mensa.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_news.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_openinghours.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1_webmail.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1news.html
	Doc/html/namespace_campus_app_w_p8_1_1_pages_1_1webmail.html
	Doc/html/namespace_campus_app_w_p8_1_1_resources.html
	Doc/html/namespace_campus_app_w_p8_1_1_utility.html
	Doc/html/namespace_campus_app_w_p8_1_1pages.html
	Doc/html/namespace_campus_app_w_p8_1_1pages_1_1campusmap.html
	Doc/html/namespace_campus_app_w_p8_1_1pages_1_1lecture.html
	Doc/html/namespace_campus_app_w_p8_1_1pages_1_1mensa.html
	Doc/html/namespace_campus_app_w_p8_1_1pages_1_1news.html
	Doc/html/namespace_campus_app_w_p8_1_1pages_1_1webmail.html
	Doc/html/namespaces.html
	Doc/latex/annotated.tex
	Doc/latex/class_campus_app_w_p8_1_1_app.pdf
	Doc/latex/class_campus_app_w_p8_1_1_app.tex
	Doc/latex/class_campus_app_w_p8_1_1_feed_1_1_departments_1_1_department_favorite_feed.pdf
	Doc/latex/class_campus_app_w_p8_1_1_feed_1_1_link_1_1_common_link_feed.pdf
	Doc/latex/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed.eps
	Doc/latex/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed.pdf
	Doc/latex/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed.tex
	Doc/latex/class_campus_app_w_p8_1_1_feed_1_1_student_council_1_1_student_council_feed.pdf
	Doc/latex/class_campus_app_w_p8_1_1_main_model_3_01_t_01_4.eps
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_base_view_model.pdf
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_campusmap_1_1_map_model.tex
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_campusmap_1_1_map_pin_model.tex
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_faculty_model.pdf
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_page_model.tex
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_openinghours_1_1_openinghours_institution_model.tex
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_openinghours_1_1_openinghours_model.tex
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_utility_1_1_url_param_model.tex
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1_xml_model_3_01_t_01_4.eps
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_channel_model.pdf
	Doc/latex/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_model.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_campusmap_1_1_campus_map_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_campusmap_1_1_campus_map_page.tex
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_departments_1_1_department_favorite_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_departments_1_1_department_info_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_departments_1_1_department_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_index_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_index_page.tex
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_lecture_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_lecture_page.tex
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_modul_web_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_modul_web_page.tex
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_detail_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_links_1_1_link_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_mensa_1_1_mensa_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_index_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_index_page.tex
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_openinghours_1_1_openinghours_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_openinghours_1_1_openinghours_page.tex
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_start_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_start_page.tex
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_student_council_1_1_student_council_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1_webmail_1_1_webmail_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1_pages_1_1news_1_1_r_s_s_news_template.pdf
	Doc/latex/class_campus_app_w_p8_1_1_resources_1_1_app_resources.tex
	Doc/latex/class_campus_app_w_p8_1_1_resources_1_1_icons.tex
	Doc/latex/class_campus_app_w_p8_1_1_themelized_icons.tex
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_api_3_01_t_01_4.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_api_3_01_t_01_4.tex
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_api_event_handler.tex
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_http_request.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_http_request.pdf~HEAD
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_http_request.tex
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_lui_1_1_button_1_1_email_button.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_lui_1_1_button_1_1_go_to_map_button.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_lui_1_1_button_1_1_link_button.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_lui_1_1_button_1_1_phone_button.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_lui_1_1_button_1_1_toggle_button.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_xml_api_3_01_t_01_4.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_xml_api_3_01_t_01_4.tex
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_xml_feed_3_01_t_01_4.pdf
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_xml_feed_3_01_t_01_4.tex
	Doc/latex/class_campus_app_w_p8_1_1_utility_1_1_xml_manager.tex
	Doc/latex/class_campus_app_w_p8_1_1pages_1_1campusmap_1_1_page1.pdf
	Doc/latex/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_lecture.pdf
	Doc/latex/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_page1.pdf
	Doc/latex/class_campus_app_w_p8_1_1pages_1_1mensa_1_1_mensa_page.pdf
	Doc/latex/class_campus_app_w_p8_1_1pages_1_1webmail_1_1_webmail.pdf
	Doc/latex/dir_1073e9f439c87c111068755896d82c05.tex
	Doc/latex/dir_2a8f810c3f9bbb1cb1ccf83264a53774.tex
	Doc/latex/dir_2d311ea570d9e1c140e3775582f0c6e6.tex
	Doc/latex/dir_4ee4bf09d6a96bb5475eb8efb397b98b.tex
	Doc/latex/dir_6bacb8829aeb51ed3b0d715b6a3da162.tex
	Doc/latex/dir_6c1b508c19440a399d17c73bbbf14cb6.tex
	Doc/latex/dir_7992d2ae2f44549358f6bbac582ef56c.tex
	Doc/latex/dir_7f12a6abf42a32e793ec2672821d39ef.tex
	Doc/latex/dir_8effc334115523b582ac57fdba9e762a.tex
	Doc/latex/dir_af3a313bd21a45ca7168411249229c16.tex
	Doc/latex/dir_c2e72ee4966602e4b455c4ea040a3c82.tex
	Doc/latex/dir_ec3d220e6deb3baaa30cfdec1c46791f.tex
	Doc/latex/dir_f8272e37d6159d9ca7e64f5775e84948.tex
	Doc/latex/hierarchy.tex
	Doc/latex/namespace_campus_app_w_p8.tex
	Doc/latex/namespace_campus_app_w_p8_1_1_feed.tex
	Doc/latex/namespace_campus_app_w_p8_1_1_model.tex
	Doc/latex/namespace_campus_app_w_p8_1_1_model_1_1_lecture.tex
	Doc/latex/namespace_campus_app_w_p8_1_1_pages.tex
	Doc/latex/namespace_campus_app_w_p8_1_1_pages_1_1_lecture.tex
	Doc/latex/namespace_campus_app_w_p8_1_1_utility.tex
	Doc/latex/namespaces.tex
	Doc/latex/refman.tex
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Api_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Api_Lecture_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Feed_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Feed_Departments_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Feed_Events_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Feed_Mensa_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Feed_News_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Feed_Openinghours_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Model_Campusmap_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Model_Events_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Model_Lecture_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Model_Openinghours_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Model_Utility_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Pages_Events_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Pages_Openinghours_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Properties_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Resources_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_Utility_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_model_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_model_departments_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_model_mensa_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_Model_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_Model_Lecture_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_campusmap_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_departments_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_events_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_lecture_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_lecturepage_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_mensa_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_news_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_obj_Debug_pages_webmail_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_pages_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_pages_campusmap_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_pages_departments_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_pages_lecture_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_pages_mensa_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_pages_news_.3
	Doc/man/man3/C__Users_stubbfel_Documents_CampusAppWP8_CampusAppWP8_CampusAppWP8_pages_webmail_.3
	Doc/man/man3/CampusAppWP8.3
	Doc/man/man3/CampusAppWP8_App.3
	Doc/man/man3/CampusAppWP8_Feed.3
	Doc/man/man3/CampusAppWP8_Feed_Openinghours.3
	Doc/man/man3/CampusAppWP8_Feed_Openinghours_OpeninghoursFeed.3
	Doc/man/man3/CampusAppWP8_LocalizedStrings.3
	Doc/man/man3/CampusAppWP8_MainPage.3
	Doc/man/man3/CampusAppWP8_Model_Campusmap.3
	Doc/man/man3/CampusAppWP8_Model_Campusmap_MapModel.3
	Doc/man/man3/CampusAppWP8_Model_Campusmap_MapPinModel.3
	Doc/man/man3/CampusAppWP8_Model_Lecture.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_LectureActivity.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_LectureCourse.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_LectureDate.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_LectureLecturer.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_LectureList.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_LectureModule.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_LecturePageModel.3
	Doc/man/man3/CampusAppWP8_Model_Lecture_ModulWebPage.3
	Doc/man/man3/CampusAppWP8_Model_Openinghours.3
	Doc/man/man3/CampusAppWP8_Model_Openinghours_OpeninghoursInstitutionModel.3
	Doc/man/man3/CampusAppWP8_Model_Openinghours_OpeninghoursModel.3
	Doc/man/man3/CampusAppWP8_Model_Utility.3
	Doc/man/man3/CampusAppWP8_Model_Utility_ListPickerItemModel.3
	Doc/man/man3/CampusAppWP8_Model_Utility_UrlParamModel.3
	Doc/man/man3/CampusAppWP8_Model_events_news.3
	Doc/man/man3/CampusAppWP8_Model_events_news_RSSChannelModel.3
	Doc/man/man3/CampusAppWP8_Model_events_news_RSSModel.3
	Doc/man/man3/CampusAppWP8_Model_events_news_RSSViewModel.3
	Doc/man/man3/CampusAppWP8_Pages_Events.3
	Doc/man/man3/CampusAppWP8_Pages_Events_EventIndexPage.3
	Doc/man/man3/CampusAppWP8_Pages_Events_EventPage.3
	Doc/man/man3/CampusAppWP8_Pages_Lecture_LecturePage.3
	Doc/man/man3/CampusAppWP8_Pages_Lecture_ModulWebPage.3
	Doc/man/man3/CampusAppWP8_Pages_Lecture_ResultDetailPage.3
	Doc/man/man3/CampusAppWP8_Pages_Lecture_ResultPage.3
	Doc/man/man3/CampusAppWP8_Pages_Lecture_Results.3
	Doc/man/man3/CampusAppWP8_Pages_News_NewsIndexPage.3
	Doc/man/man3/CampusAppWP8_Pages_Openinghours.3
	Doc/man/man3/CampusAppWP8_Pages_Openinghours_OpeninghoursPage.3
	Doc/man/man3/CampusAppWP8_Pages_Webmail_WebmailPage.3
	Doc/man/man3/CampusAppWP8_Resources.3
	Doc/man/man3/CampusAppWP8_Resources_AppResources.3
	Doc/man/man3/CampusAppWP8_Resources_Icons.3
	Doc/man/man3/CampusAppWP8_ThemelizedIcons.3
	Doc/man/man3/CampusAppWP8_Utility.3
	Doc/man/man3/CampusAppWP8_Utility_ApiEventHandler.3
	Doc/man/man3/CampusAppWP8_Utility_Api_ T _.3
	Doc/man/man3/CampusAppWP8_Utility_FeedEventHandler.3
	Doc/man/man3/CampusAppWP8_Utility_Feed_ T _.3
	Doc/man/man3/CampusAppWP8_Utility_HttpRequest.3
	Doc/man/man3/CampusAppWP8_Utility_Logger.3
	Doc/man/man3/CampusAppWP8_Utility_XmlApi_ T _.3
	Doc/man/man3/CampusAppWP8_Utility_XmlFeed_ T _.3
	Doc/man/man3/CampusAppWP8_Utility_XmlManager.3
	Doc/man/man3/CampusAppWP8_model.3
	Doc/man/man3/CampusAppWP8_model_BaseModel.3
	Doc/man/man3/CampusAppWP8_model_BaseViewModel.3
	Doc/man/man3/CampusAppWP8_model_departments.3
	Doc/man/man3/CampusAppWP8_model_departments_ChairModel.3
	Doc/man/man3/CampusAppWP8_model_departments_DepartmentModel.3
	Doc/man/man3/CampusAppWP8_model_departments_DepartmentViewModel.3
	Doc/man/man3/CampusAppWP8_model_departments_FacultyModel.3
	Doc/man/man3/CampusAppWP8_model_mensa.3
	Doc/man/man3/CampusAppWP8_model_mensa_MenuModel.3
	Doc/man/man3/CampusAppWP8_model_mensa_MenuWeekModel.3
	Doc/man/man3/CampusAppWP8_pages.3
	Doc/man/man3/CampusAppWP8_pages_Page1.3
	Doc/man/man3/CampusAppWP8_pages_StartPage.3
	Doc/man/man3/CampusAppWP8_pages_campusmap.3
	Doc/man/man3/CampusAppWP8_pages_campusmap_CampusMapPage.3
	Doc/man/man3/CampusAppWP8_pages_campusmap_Page1.3
	Doc/man/man3/CampusAppWP8_pages_departments.3
	Doc/man/man3/CampusAppWP8_pages_departments_DepartmentPage.3
	Doc/man/man3/CampusAppWP8_pages_lecture.3
	Doc/man/man3/CampusAppWP8_pages_lecture_Lecture.3
	Doc/man/man3/CampusAppWP8_pages_lecture_Page1.3
	Doc/man/man3/CampusAppWP8_pages_mensa.3
	Doc/man/man3/CampusAppWP8_pages_mensa_Mensa.3
	Doc/man/man3/CampusAppWP8_pages_mensa_MensaPage.3
	Doc/man/man3/CampusAppWP8_pages_news.3
	Doc/man/man3/CampusAppWP8_pages_news_NewsPage.3
	Doc/man/man3/CampusAppWP8_pages_news_RSSItem.3
	Doc/man/man3/CampusAppWP8_pages_news_RSSNewsTemplate.3
	Doc/man/man3/CampusAppWP8_pages_webmail.3
	Doc/man/man3/CampusAppWP8_pages_webmail_Page1.3
	Doc/man/man3/CampusAppWP8_pages_webmail_Webmail.3
	Doc/rtf/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed.png
	Doc/rtf/class_campus_app_w_p8_1_1_pages_1_1_openinghours_1_1_openinghours_page.png
	Doc/rtf/class_campus_app_w_p8_1_1_utility_1_1_feed_3_01_t_01_4.png
	Doc/rtf/class_campus_app_w_p8_1_1_utility_1_1_http_request.png
	Doc/rtf/class_campus_app_w_p8_1_1_utility_1_1_xml_feed_3_01_t_01_4.png
	Doc/rtf/dir_05f18060c68559a865c9d41f7fb907cc.rtf
	Doc/rtf/dir_0a0262648802c8fa7405f815eca989e4.rtf
	Doc/rtf/dir_1073e9f439c87c111068755896d82c05.rtf
	Doc/rtf/dir_13969638f06df799347bce25efcb3a16.rtf
	Doc/rtf/dir_21535ccf759c2a522698b0b6a65b0eb5.rtf
	Doc/rtf/dir_2d311ea570d9e1c140e3775582f0c6e6.rtf
	Doc/rtf/dir_2d53bace0827e2bf2f77ef9b5661f678.rtf
	Doc/rtf/dir_3193f1d6fb141dd24ccdf3ab919c59e1.rtf
	Doc/rtf/dir_43c9fdb099d661ab6adf29f06188c90c.rtf
	Doc/rtf/dir_61694d696174b41f9f942e5b19002064.rtf
	Doc/rtf/dir_6739d22265f79723af173738d7f6d953.rtf
	Doc/rtf/dir_6bacb8829aeb51ed3b0d715b6a3da162.rtf
	Doc/rtf/dir_6c1b508c19440a399d17c73bbbf14cb6.rtf
	Doc/rtf/dir_6de442f01690ad19364998fec61f3845.rtf
	Doc/rtf/dir_7992d2ae2f44549358f6bbac582ef56c.rtf
	Doc/rtf/dir_7f12a6abf42a32e793ec2672821d39ef.rtf
	Doc/rtf/dir_8e2bb6ed875431774c2c5ec3d327b5af.rtf
	Doc/rtf/dir_8effc334115523b582ac57fdba9e762a.rtf
	Doc/rtf/dir_93a662dedef0a167f025fa842da5b025.rtf
	Doc/rtf/dir_9ec96b030a893d44df644289638c5455.rtf
	Doc/rtf/dir_af3a313bd21a45ca7168411249229c16.rtf
	Doc/rtf/dir_c2e72ee4966602e4b455c4ea040a3c82.rtf
	Doc/rtf/dir_c5add0b19063b6242461e8e811903b23.rtf
	Doc/rtf/dir_c96c24b29d5f5a7edd4a32cfcf0ce524.rtf
	Doc/rtf/dir_ccd35b6bf37d1a47cc7b6a40c3b9a180.rtf
	Doc/rtf/dir_d41793d8c394d152b5e09a3e26715b0f.rtf
	Doc/rtf/dir_d96a967f964c1de2cbce6cdd2c6f9987.rtf
	Doc/rtf/dir_db660fa6ccabfebae5ecfcb91b23cb0b.rtf
	Doc/rtf/dir_e01013a89c0db186579be3bde17b6d61.rtf
	Doc/rtf/dir_e29671f860be0283b1e43fd2c2c54c8d.rtf
	Doc/rtf/dir_e5003b30e146229ea390d69e22496900.rtf
	Doc/rtf/dir_e7609f5a50dfa281e7e0cb66859d2aae.rtf
	Doc/rtf/dir_eb8ec6a25613bee50fda0a22a7c3fec2.rtf
	Doc/rtf/dir_ec3d220e6deb3baaa30cfdec1c46791f.rtf
	Doc/rtf/dir_f430e31c3cc30ed9318a1321b6bff73e.rtf
	Doc/rtf/dir_fbd722b3c940652002633e6ed0c44f4f.rtf
	Doc/rtf/dir_fd54810065c522d18968f48cf271eca3.rtf
	Doc/rtf/dir_fe309a583d11a5902082c112d0275875.rtf
	Doc/rtf/refman.rtf
	Doc/xml/_api_8cs.xml
	Doc/xml/_api_event_handler_8cs.xml
	Doc/xml/_app_8g_8cs.xml
	Doc/xml/_app_8g_8i_8cs.xml
	Doc/xml/_app_resources_8_designer_8cs.xml
	Doc/xml/_campus_map_page_8g_8cs.xml
	Doc/xml/_campus_map_page_8g_8i_8cs.xml
	Doc/xml/_campus_map_page_8xaml_8cs.xml
	Doc/xml/_constants_8_designer_8cs.xml
	Doc/xml/_department_feed_8cs.xml
	Doc/xml/_department_page_8xaml_8cs.xml
	Doc/xml/_event_feed_8cs.xml
	Doc/xml/_event_index_page_8xaml_8cs.xml
	Doc/xml/_event_page_8g_8cs.xml
	Doc/xml/_event_page_8g_8i_8cs.xml
	Doc/xml/_event_page_8xaml_8cs.xml
	Doc/xml/_feed_8cs.xml
	Doc/xml/_file_list_8cs.xml
	Doc/xml/_file_manager_8cs.xml
	Doc/xml/_http_request_8cs.xml
	Doc/xml/_lecture_api_8cs.xml
	Doc/xml/_lecture_module_8cs.xml
	Doc/xml/_lecture_page_8g_8cs.xml
	Doc/xml/_lecture_page_8g_8i_8cs.xml
	Doc/xml/_lecture_page_8xaml_8cs.xml
	Doc/xml/_lecture_page_model_8cs.xml
	Doc/xml/_mensa_feed_8cs.xml
	Doc/xml/_mensa_page_8g_8cs.xml
	Doc/xml/_mensa_page_8xaml_8cs.xml
	Doc/xml/_modul_web_page_8xaml_8cs.xml
	Doc/xml/_news_feed_8cs.xml
	Doc/xml/_news_index_page_8xaml_8cs.xml
	Doc/xml/_news_page_8g_8cs.xml
	Doc/xml/_news_page_8xaml_8cs.xml
	Doc/xml/_openinghours_feed_8cs.xml
	Doc/xml/_openinghours_institution_model_8cs.xml
	Doc/xml/_openinghours_page_8xaml_8cs.xml
	Doc/xml/_result_detail_page_8g_8cs.xml
	Doc/xml/_result_detail_page_8g_8i_8cs.xml
	Doc/xml/_result_detail_page_8xaml_8cs.xml
	Doc/xml/_result_page_8g_8cs.xml
	Doc/xml/_result_page_8g_8i_8cs.xml
	Doc/xml/_result_page_8xaml_8cs.xml
	Doc/xml/_start_page_8g_8cs.xml
	Doc/xml/_start_page_8g_8i_8cs.xml
	Doc/xml/_start_page_8xaml_8cs.xml
	Doc/xml/_themelized_icons_8cs.xml
	Doc/xml/_u_r_l_list_8cs.xml
	Doc/xml/_u_r_l_param_model_8cs.xml
	Doc/xml/_webmail_page_8xaml_8cs.xml
	Doc/xml/_xml_api_8cs.xml~HEAD
	Doc/xml/_xml_manager_8cs.xml
	Doc/xml/class_campus_app_w_p8_1_1_app.xml
	Doc/xml/class_campus_app_w_p8_1_1_feed_1_1_openinghours_1_1_openinghours_feed.xml
	Doc/xml/class_campus_app_w_p8_1_1_main_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_base_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_base_view_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_chair_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_department_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_department_view_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_departments_1_1_faculty_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_lecture_page_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1_lecture_1_1_modul_web_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_channel_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_model_1_1events__news_1_1_r_s_s_view_model.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_campusmap_1_1_campus_map_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_departments_1_1_department_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_index_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_events_1_1_event_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_lecture_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_modul_web_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_detail_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_result_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_lecture_1_1_results.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_mensa_1_1_mensa_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_index_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_news_1_1_news_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_openinghours_1_1_openinghours_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_start_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1_webmail_1_1_webmail_page.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1news_1_1_r_s_s_news_template.xml
	Doc/xml/class_campus_app_w_p8_1_1_pages_1_1webmail_1_1_webmail.xml
	Doc/xml/class_campus_app_w_p8_1_1_resources_1_1_app_resources.xml
	Doc/xml/class_campus_app_w_p8_1_1_resources_1_1_constants.xml
	Doc/xml/class_campus_app_w_p8_1_1_resources_1_1_icons.xml
	Doc/xml/class_campus_app_w_p8_1_1_utility_1_1_feed_3_01_t_01_4.xml
	Doc/xml/class_campus_app_w_p8_1_1_utility_1_1_file_list.xml
	Doc/xml/class_campus_app_w_p8_1_1_utility_1_1_http_request.xml
	Doc/xml/class_campus_app_w_p8_1_1_utility_1_1_u_r_l_list.xml
	Doc/xml/class_campus_app_w_p8_1_1_utility_1_1_xml_api_3_01_t_01_4.xml
	Doc/xml/class_campus_app_w_p8_1_1_utility_1_1_xml_feed_3_01_t_01_4.xml
	Doc/xml/class_campus_app_w_p8_1_1_utility_1_1_xml_manager.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1_page1.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1_start_page.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1campusmap_1_1_page1.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_lecture.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1lecture_1_1_page1.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1mensa_1_1_mensa.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1mensa_1_1_mensa_page.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1news_1_1_news_page.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1news_1_1_r_s_s_news_template.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1webmail_1_1_page1.xml
	Doc/xml/class_campus_app_w_p8_1_1pages_1_1webmail_1_1_webmail.xml
	Doc/xml/dir_0a0262648802c8fa7405f815eca989e4.xml
	Doc/xml/dir_1073e9f439c87c111068755896d82c05.xml
	Doc/xml/dir_6bacb8829aeb51ed3b0d715b6a3da162.xml
	Doc/xml/dir_6c1b508c19440a399d17c73bbbf14cb6.xml
	Doc/xml/dir_7f12a6abf42a32e793ec2672821d39ef.xml
	Doc/xml/dir_8effc334115523b582ac57fdba9e762a.xml
	Doc/xml/dir_ec3d220e6deb3baaa30cfdec1c46791f.xml
	Doc/xml/index.xml
	Doc/xml/mensa_2_mensa_page_8g_8i_8cs.xml
	Doc/xml/namespace_campus_app_w_p8.xml
	Doc/xml/namespace_campus_app_w_p8_1_1_feed.xml
	Doc/xml/namespace_campus_app_w_p8_1_1_model.xml
	Doc/xml/namespace_campus_app_w_p8_1_1_model_1_1_lecture.xml
	Doc/xml/namespace_campus_app_w_p8_1_1_pages.xml
	Doc/xml/namespace_campus_app_w_p8_1_1_pages_1_1_openinghours.xml
	Doc/xml/namespace_campus_app_w_p8_1_1_utility.xml
	Doc/xml/namespace_system_1_1_i_o.xml
	Doc/xml/namespace_system_1_1_xml_1_1_linq.xml
	Doc/xml/news_2_news_page_8g_8i_8cs.xml
2013-07-17 14:00:15 +02:00
stubbfel
be65f4056b addd 2013-07-17 13:55:02 +02:00
stubbfel
73a186cf28 Merge branch 'release/r114' into develmaster 2013-07-17 13:51:16 +02:00
stubbfel
7a7c478277 Merge branch 'feature/#114' into develop 2013-07-17 13:47:17 +02:00
stubbfel
c886b3e573 finish #114 2013-07-17 13:47:02 +02:00
stubbfel
98a51bce24 change tilestyle 2013-07-17 12:22:32 +02:00
stubbfel
a7769184d5 Merge branch 'hotfix/#87' into develop 2013-07-17 11:53:16 +02:00
stubbfel
40145c727e Merge branch 'hotfix/#87' into develmaster 2013-07-17 11:53:13 +02:00
stubbfel
6ead6414e6 third patch 2013-07-17 11:40:17 +02:00
stubbfel
03789a9a38 add all 2013-07-17 11:33:11 +02:00
stubbfel
92db7d16f3 clear git 2013-07-17 11:31:47 +02:00
stubbfel
9454a764d6 patch two 2013-07-17 10:49:34 +02:00
stubbfel
a433d47583 fist patch to prj file 2013-07-17 10:07:37 +02:00
stubbfel
486058687d Merge branch 'hotfix/#113' into develop 2013-07-16 15:09:44 +02:00
stubbfel
ce3c953b64 Merge branch 'hotfix/#113' into develmaster 2013-07-16 15:09:43 +02:00
stubbfel
e2ee1aad9f fix #113 2013-07-16 15:09:17 +02:00
stubbfel
281cd06bab Merge branch 'release/rdel' into develmaster 2013-07-16 14:00:15 +02:00
stubbfel
d71f6db920 deletion 2013-07-16 13:59:42 +02:00
stubbfel
eb68b666f7 Merge branch 'develmaster' into develop 2013-07-16 13:48:11 +02:00
stubbfel
8a69101cbf Merge branch 'hotfix/#72' into develmaster
Conflicts:
	CampusAppWP8/CampusAppWP8/Resources/Constants.resx
2013-07-16 13:47:42 +02:00
stubbfel
d9a54b2b13 delete #72 2013-07-16 13:43:15 +02:00
Christian Fiedler
92d580f270 fixed constants 2013-07-16 13:42:45 +02:00
Christian Fiedler
8b4ee44520 Merge branch 'develop' of 141.43.76.143:repos/bare/win8phoneApp into develop 2013-07-16 13:40:40 +02:00
Christian Fiedler
9c0415ddbb fixed constants 2013-07-16 13:39:53 +02:00
stubbfel
52a3154caf Merge branch 'develmaster' of 141.43.76.143:repos/bare/win8phoneApp into develmaster 2013-07-16 13:38:33 +02:00
stubbfel
18f72e6096 Merge branch 'develop' of 141.43.76.143:repos/bare/win8phoneApp into develop 2013-07-16 13:38:23 +02:00
stubbfel
82625f7aa4 Merge branch 'hotfix/#73' into develop 2013-07-16 13:37:42 +02:00
stubbfel
0b82c3b18a Merge branch 'hotfix/#73' into develmaster 2013-07-16 13:37:41 +02:00
Christian Fiedler
3616bd233f Merge branch 'hotfix/#79' into develop
Conflicts:
	CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs
	CampusAppWP8/CampusAppWP8/Pages/News/NewsIndexPage.xaml.cs
	CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
	CampusAppWP8/CampusAppWP8/Resources/Constants.resx
2013-07-16 13:35:38 +02:00
Christian Fiedler
573a562e03 Merge branch 'hotfix/#79' into develmaster
Conflicts:
	CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs
	CampusAppWP8/CampusAppWP8/Pages/News/NewsIndexPage.xaml.cs
	CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
	CampusAppWP8/CampusAppWP8/Resources/Constants.resx
2013-07-16 13:33:10 +02:00
stubbfel
25d6217a9b delete BaseModel 2013-07-16 13:29:33 +02:00
stubbfel
5fbd297af5 delete FileList 2013-07-16 13:26:09 +02:00
Christian Fiedler
f1e41b1fce #79 #96 2013-07-16 13:22:04 +02:00
stubbfel
c0692dfca9 Merge branch 'release/r#112' into develmaster 2013-07-16 12:21:37 +02:00
stubbfel
cf4c5dc486 change to XMLModel 2013-07-16 12:20:16 +02:00
stubbfel
707e7c0761 Merge branch 'release/r#111' into develmaster 2013-07-16 12:00:19 +02:00
stubbfel
347e45f561 change to XMLModel 2013-07-16 11:59:38 +02:00
stubbfel
4395f4f6cd Merge branch 'release/r#108' into develmaster 2013-07-16 11:43:05 +02:00
stubbfel
182b50eca2 Merge branch 'feature/#108' into develop 2013-07-16 11:42:00 +02:00
stubbfel
544ae68f2c enable department 2013-07-16 11:41:32 +02:00
stubbfel
db15808e24 change to xmlmodel 2013-07-16 10:40:09 +02:00
stubbfel
7e99840b6c rrefactor linkpage 2013-07-15 18:53:29 +02:00
Christian Fiedler
0f82e4512d Merge branch 'release/new_file_system' into develmaster 2013-07-15 17:34:15 +02:00
Christian Fiedler
19e18a4daa Merge branch 'develop' of 141.43.76.143:repos/bare/win8phoneApp into develop 2013-07-15 17:30:43 +02:00
Christian Fiedler
2a24c01854 removed icon 2013-07-15 17:29:37 +02:00
Christian Fiedler
2ef3d053b1 mega merge 2013-07-15 17:28:36 +02:00
stubbfel
c0a880e771 Merge branch 'hotfix/#100' into develop 2013-07-15 17:22:00 +02:00
stubbfel
46cedaeeb4 Merge branch 'hotfix/#100' into develmaster 2013-07-15 17:21:59 +02:00
stubbfel
bda60de4f5 reafactor #100 2013-07-15 17:21:36 +02:00
Christian Fiedler
e70a6d36f1 Merge branch 'develop' of 141.43.76.143:repos/bare/win8phoneApp into develop
Conflicts:
	CampusAppWP8/CampusAppWP8/Resources/AppResources.Designer.cs
2013-07-15 16:59:59 +02:00
Christian Fiedler
80d008a431 Merge branch 'develop' of 141.43.76.143:repos/bare/win8phoneApp into develop
Conflicts:
	CampusAppWP8/CampusAppWP8/Model/Events/RSSChannelModel.cs
	CampusAppWP8/CampusAppWP8/Model/Events/RSSModel.cs
	CampusAppWP8/CampusAppWP8/Pages/Events/EventIndexPage.xaml.cs
	CampusAppWP8/CampusAppWP8/Pages/News/NewsIndexPage.xaml.cs
	CampusAppWP8/CampusAppWP8/Pages/Openinghours/OpeninghoursPage.xaml.cs
	CampusAppWP8/CampusAppWP8/Resources/AppResources.resx
	CampusAppWP8/CampusAppWP8/Resources/Constants.Designer.cs
	CampusAppWP8/CampusAppWP8/Resources/Constants.resx
	CampusAppWP8/CampusAppWP8/pages/StartPage.xaml
	CampusAppWP8/CampusAppWP8/pages/StartPage.xaml.cs
2013-07-15 16:58:31 +02:00
stubbfel
175765a3c0 Merge branch 'hotfix/#107' into develop 2013-07-15 15:17:30 +02:00
stubbfel
5a709e7445 Merge branch 'hotfix/#107' into develmaster 2013-07-15 15:17:30 +02:00
stubbfel
a2eeb54c55 finish #107 2013-07-15 15:17:21 +02:00
stubbfel
511e6640ba Merge branch 'release/r#104' into develmaster 2013-07-15 15:09:33 +02:00
stubbfel
505b19e57d Merge branch 'hotfix/#100' into develop 2013-07-15 15:02:31 +02:00
stubbfel
5d2614d59b Merge branch 'hotfix/#100' into develmaster 2013-07-15 15:02:28 +02:00
stubbfel
5c8756ac21 finish #100 2013-07-15 15:02:13 +02:00
stubbfel
10018077fc add style 2013-07-15 13:35:18 +02:00
stubbfel
ca13f3f581 finish #104 2013-07-15 13:26:47 +02:00
Christian Fiedler
6f1eae3ca8 no message 2013-07-12 18:25:17 +02:00
Christian Fiedler
8774683a80 Merge branch 'hotfix/#57' into develop 2013-07-12 18:12:48 +02:00
Christian Fiedler
8335c47b0f #57 #90 #80 2013-07-12 18:08:17 +02:00
stubbfel
ceeaabac1c Merge branch 'release/r#106' into develmaster 2013-07-11 16:45:41 +02:00
stubbfel
e1abe121bf Merge branch 'feature/#106' into develop 2013-07-11 16:43:53 +02:00
stubbfel
ed891074e0 add listbuttonstyle to all pages 2013-07-11 16:43:39 +02:00
stubbfel
6dc522b6a8 add listButtonstyle 2013-07-11 15:31:02 +02:00
stubbfel
b54be92e3c Merge branch 'release/#94' into develmaster 2013-07-09 10:21:00 +02:00
stubbfel
12acceff32 Merge branch 'release/#94' into develop 2013-07-09 10:21:00 +02:00
stubbfel
9e31f121ba add Landscape Orientation at studentencouncil 2013-07-09 10:20:23 +02:00
stubbfel
a06133b173 Merge branch 'hotfix/#95' into develmaster 2013-07-09 10:17:51 +02:00
stubbfel
4fa7c9d9dd Merge branch 'hotfix/#95' into develop 2013-07-09 10:17:51 +02:00
stubbfel
e46a7a22e1 add Landscape Orientation at linkpage 2013-07-09 10:17:38 +02:00
stubbfel
7396edc095 Merge branch 'hotfix/#93' into develmaster 2013-07-09 10:14:08 +02:00
stubbfel
b6b003315f Merge branch 'hotfix/#93' into develop 2013-07-09 10:14:08 +02:00
stubbfel
e1ea814861 change homeworkicon at startpage (fix #93) 2013-07-09 10:13:50 +02:00
stubbfel
579217ec1c Merge branch 'release/r#92' into develmaster 2013-07-08 18:47:53 +02:00
stubbfel
2f247e29b4 add toogleButton and in import in Studentcouncil 2013-07-08 18:46:31 +02:00
stubbfel
3003508139 Merge branch 'release/r#91#83#84#86#85' into develmaster 2013-07-08 15:34:57 +02:00
stubbfel
cb242fc2fd Merge branch 'feature/#85' into develop 2013-07-08 15:32:19 +02:00
stubbfel
4f10725531 finisch #85 2013-07-08 15:31:56 +02:00
stubbfel
c3a572c6f6 add Qurreystring to navbtn #85 2013-07-08 15:29:01 +02:00
stubbfel
e60bfae1a8 add Navbutton anud add Constatn.rex to global 2013-07-08 14:12:45 +02:00
stubbfel
731e3305b9 finish #86 2013-07-08 12:33:01 +02:00
stubbfel
bc77d076c9 add Phonebotton and import them to openinghours 2013-07-08 12:31:53 +02:00
stubbfel
b3ef2ab81f Merge branch 'feature/#84' into develop 2013-07-08 12:15:08 +02:00
stubbfel
ea54e23d56 finish #84 2013-07-08 12:14:41 +02:00
stubbfel
0f64e15c3f add GoToMapButton aund add them to Openinghours + change Mailbutton 2013-07-08 12:13:20 +02:00
stubbfel
476a626de4 Merge branch 'feature/#83' into develop 2013-07-08 11:37:43 +02:00
stubbfel
2b4b980883 finish #83 2013-07-08 11:37:28 +02:00
stubbfel
086317fef5 add linkbutto and import button in linkpage und studentcouncil 2013-07-08 11:35:19 +02:00
stubbfel
3755348854 add btuLogo #91 2013-07-08 11:15:48 +02:00
stubbfel
cc4cfd9afd Merge branch 'release/r#78' into develmaster 2013-07-04 14:11:26 +02:00
stubbfel
7053571f6c Merge branch 'feature/#78' into develop 2013-07-04 14:10:08 +02:00
stubbfel
170067df02 finish #78 2013-07-04 13:52:07 +02:00
stubbfel
38becf5ae6 add emaibtn #78 2013-07-04 13:51:32 +02:00
stubbfel
0e90a7a03c Merge branch 'release/r#74' into develmaster 2013-07-03 13:45:05 +02:00
stubbfel
7e65f09ca8 Merge branch 'release/r#74' into develop 2013-07-03 13:45:05 +02:00
stubbfel
7056650095 add #74 to startpage 2013-07-03 13:44:46 +02:00
stubbfel
5e5074a534 Merge branch 'feature/#74' into develop 2013-07-03 13:37:58 +02:00
stubbfel
f5ef147baa finish #74 2013-07-03 13:37:12 +02:00
stubbfel
c9b3553d2a add models and feed #74 2013-07-02 15:18:40 +02:00
stubbfel
f8280d1ce1 Merge branch 'release/r#71' into develmaster 2013-07-02 12:25:44 +02:00
stubbfel
448cfd5118 finish #71 2013-07-02 12:25:05 +02:00
stubbfel
655b4c0638 add Linkpage, Model and feeds 2013-07-02 12:17:15 +02:00
stubbfel
ff39d78658 Merge branch 'release/r#67' into develmaster 2013-07-01 13:20:12 +02:00
stubbfel
d8071e76eb finish #67 2013-07-01 13:19:07 +02:00
stubbfel
2e883b1e98 Merge branch 'release/r#68' into develmaster 2013-07-01 11:45:16 +02:00
stubbfel
5a55355f98 finish #68 2013-07-01 11:43:56 +02:00
stubbfel
cfb7b74610 add doku 2013-06-27 14:27:52 +02:00
2494 changed files with 149468 additions and 37128 deletions

64
.gitattributes vendored Normal file
View 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
View 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/

View File

@@ -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;

View File

@@ -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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -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>

View 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;
}
}
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View File

@@ -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;
}
}
}

View 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
}
}

View 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
}
}

View File

@@ -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>

View File

@@ -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;
}
}
}

View File

@@ -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>

View File

@@ -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
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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");
}
}
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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");
}
}

View File

@@ -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>

View File

@@ -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");
}
}
}
}
}

View File

@@ -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

View 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
}
}

View 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
}
}

View 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();
}
}
}
}

View File

@@ -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
{

View 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++;
}
}
}
}
}
}

View 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();
}
}
}

View 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;
}
}
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}

View 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;
}
}
}

View File

@@ -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>

View File

@@ -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));
}
}
}

View File

@@ -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>

View File

@@ -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));
}
}
}

View File

@@ -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>

View File

@@ -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)
{
}
}
}

View File

@@ -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>

View File

@@ -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));
}
}
}

View File

@@ -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>

View File

@@ -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;
}
}
}

View File

@@ -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>

View File

@@ -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;
}

View File

@@ -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>

View File

@@ -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;

View File

@@ -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-->

View File

@@ -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>

View File

@@ -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);
}
}
}

View 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>

View 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
}
}

View File

@@ -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>

View File

@@ -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
}
}

View File

@@ -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>

View File

@@ -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;
}
}
}

View File

@@ -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>

View File

@@ -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;
}

View File

@@ -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>

View File

@@ -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

View 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>

View 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);
}
}
}

View File

@@ -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>

View File

@@ -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
}
}

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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>

View File

@@ -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&amp;app=2&amp;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&amp;app=2&amp;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&amp;app=2&amp;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&amp;app=2&amp;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);
}

View File

@@ -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&amp;app=2&amp;appversion=1</value>
</data>
<data name="UrlLink_CommonLinks" xml:space="preserve">
<value>http://www.tu-cottbus.de/campusapp-data/getdata.php?db=links&amp;app=2&amp;appversion=1</value>
</data>
<data name="UrlStudentCouncil_StudentCouncils" xml:space="preserve">
<value>http://www.tu-cottbus.de/campusapp-data/getdata.php?db=studentcouncils&amp;app=2&amp;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&amp;app=2&amp;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>

View File

@@ -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");
}
}
}
}

View File

@@ -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>

View 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>

View 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>

View File

@@ -139,6 +139,6 @@ namespace CampusAppWP8.Utility
}
#endregion
#endregion
#endregion
}
}

View 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);
}
}
}
}

View File

@@ -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

View 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
}
}

View File

@@ -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
}
}

View 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
}
}

View 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
}
}

View 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
}
}

View 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
}
}

View 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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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));
}
}
}
}

View File

@@ -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));
}
}
}
}

View File

@@ -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>

Some files were not shown because too many files have changed in this diff Show More