From c89fb9ab79c09f2bf32e2086ff7120088c38213f Mon Sep 17 00:00:00 2001 From: stubbfel Date: Mon, 30 Sep 2013 11:41:41 +0200 Subject: [PATCH] refactor backgroundagent --- .../CampusAppWP8/Utility/BackgroundTasks.cs | 43 ++-------- .../Utility/Lui/Tiles/TileCreator.cs | 6 +- .../Resources/AppResources.Designer.cs | 24 +----- .../Resources/AppResources.resx | 10 +-- .../Resources/Constants.resx | 10 +-- .../Resources/Constants1.Designer.cs | 24 +----- .../ScheduledAgent.cs | 86 +++++++++++++------ 7 files changed, 77 insertions(+), 126 deletions(-) diff --git a/CampusAppWP8/CampusAppWP8/Utility/BackgroundTasks.cs b/CampusAppWP8/CampusAppWP8/Utility/BackgroundTasks.cs index 76acf9d1..753d7939 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/BackgroundTasks.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/BackgroundTasks.cs @@ -74,52 +74,21 @@ namespace CampusAppWP8.Utility } /// - /// Method start MensaBackgroundTask + /// Method start BTUCampusAppBackgroundTask /// - public static void StartMensaTask() + public static void StartBTUCampusAppTask() { int campusId = (int)Settings.UserProfil.DefaultCampus; - BackgroundTasks.StartPerodicTask(Constants.BackgroundTask_Mensa, AppResources.BackGroundTaskDesc_Mensa + " - Feed " + campusId); + BackgroundTasks.StartPerodicTask(Constants.BackgroundTask_BTUCampusApp, AppResources.BackGroundTaskDesc_BTUCampusApp + " - Feed " + campusId); } /// - /// Method stop MensaBackgroundTask + /// Method stop BTUCampusAppBackgroundTask /// - public static void StopMensaTask() + public static void StopBTUCampusAppTask() { - BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_Mensa); + BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_BTUCampusApp); } - /// - /// Method start EventBackgroundTask - /// - public static void StartEventTask() - { - BackgroundTasks.StartPerodicTask(Constants.BackgroundTask_Event, AppResources.BackGroundTaskDesc_Event); - } - - /// - /// Method stop EventBackgroundTask - /// - public static void StopEventTask() - { - BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_Event); - } - - /// - /// Method start NewsBackgroundTask - /// - public static void StartNewsTask() - { - BackgroundTasks.StartPerodicTask(Constants.BackgroundTask_News, AppResources.BackGroundTaskDesc_News); - } - - /// - /// Method stop NewsBackgroundTask - /// - public static void StopNewsTask() - { - BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_News); - } } } diff --git a/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs b/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs index f393a002..9bc7c76a 100644 --- a/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs +++ b/CampusAppWP8/CampusAppWP8/Utility/Lui/Tiles/TileCreator.cs @@ -58,7 +58,7 @@ namespace CampusAppWP8.Utility.Lui.Tiles TileCreator.CreateIconicTile(AppResources.MensaApp_Title, Constants.PathMensa_MensaPage, Icons.Mensa, Icons.Mensa); // create a new task - BackgroundTasks.StartMensaTask(); + BackgroundTasks.StartBTUCampusAppTask(); } /// @@ -77,7 +77,7 @@ namespace CampusAppWP8.Utility.Lui.Tiles TileCreator.CreateIconicTile(AppResources.NewsApp_Title, Constants.PathNews_NewsIndexPage, Icons.News, Icons.News); // create a new Task - BackgroundTasks.StartNewsTask(); + BackgroundTasks.StartBTUCampusAppTask(); } /// @@ -96,7 +96,7 @@ namespace CampusAppWP8.Utility.Lui.Tiles TileCreator.CreateIconicTile(AppResources.EventApp_Title, Constants.PathEvents_EventsIndexPage, Icons.News, Icons.News); // create a new taskk - BackgroundTasks.StartEventTask(); + BackgroundTasks.StartBTUCampusAppTask(); } /// diff --git a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.Designer.cs b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.Designer.cs index e4e6fcca..80a45cb2 100644 --- a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.Designer.cs +++ b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.Designer.cs @@ -61,29 +61,11 @@ namespace CampusAppWP8ScheduledTaskAgent.Resources { } /// - /// Sucht eine lokalisierte Zeichenfolge, die Hintergrunddienst für die BTU-Event-Feed ähnelt. + /// Sucht eine lokalisierte Zeichenfolge, die Hintergrunddienst für die BTU-CampusApp ähnelt. /// - public static string BackGroundTaskDesc_Event { + public static string BackGroundTaskDesc_BTUCampusApp { get { - return ResourceManager.GetString("BackGroundTaskDesc_Event", resourceCulture); - } - } - - /// - /// Sucht eine lokalisierte Zeichenfolge, die Hintergrunddienst für die BTU-Mensa ähnelt. - /// - public static string BackGroundTaskDesc_Mensa { - get { - return ResourceManager.GetString("BackGroundTaskDesc_Mensa", resourceCulture); - } - } - - /// - /// Sucht eine lokalisierte Zeichenfolge, die Hintergrunddienst für die BTU-News-Feed ähnelt. - /// - public static string BackGroundTaskDesc_News { - get { - return ResourceManager.GetString("BackGroundTaskDesc_News", resourceCulture); + return ResourceManager.GetString("BackGroundTaskDesc_BTUCampusApp", resourceCulture); } } diff --git a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.resx b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.resx index eeaa3432..2a55cf88 100644 --- a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.resx +++ b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/AppResources.resx @@ -117,14 +117,8 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Hintergrunddienst für die BTU-Mensa - - - Hintergrunddienst für die BTU-Event-Feed - - - Hintergrunddienst für die BTU-News-Feed + + Hintergrunddienst für die BTU-CampusApp Die Mensa ist heute geschlossen diff --git a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants.resx b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants.resx index e71129ca..e360d985 100644 --- a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants.resx +++ b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants.resx @@ -117,13 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - MensaTask - - - EventTask - - - NewsTask + + BTUCampusAppTask \ No newline at end of file diff --git a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants1.Designer.cs b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants1.Designer.cs index e475252a..5935bc3a 100644 --- a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants1.Designer.cs +++ b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/Resources/Constants1.Designer.cs @@ -61,29 +61,11 @@ namespace CampusAppWP8ScheduledTaskAgent.Resources { } /// - /// Sucht eine lokalisierte Zeichenfolge, die EventTask ähnelt. + /// Sucht eine lokalisierte Zeichenfolge, die BTUCampusAppTask ähnelt. /// - public static string BackgroundTask_Event { + public static string BackgroundTask_BTUCampusApp { get { - return ResourceManager.GetString("BackgroundTask_Event", resourceCulture); - } - } - - /// - /// Sucht eine lokalisierte Zeichenfolge, die MensaTask ähnelt. - /// - public static string BackgroundTask_Mensa { - get { - return ResourceManager.GetString("BackgroundTask_Mensa", resourceCulture); - } - } - - /// - /// Sucht eine lokalisierte Zeichenfolge, die NewsTask ähnelt. - /// - public static string BackgroundTask_News { - get { - return ResourceManager.GetString("BackgroundTask_News", resourceCulture); + return ResourceManager.GetString("BackgroundTask_BTUCampusApp", resourceCulture); } } } diff --git a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/ScheduledAgent.cs b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/ScheduledAgent.cs index 597e72cb..08d3aecd 100644 --- a/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/ScheduledAgent.cs +++ b/CampusAppWP8/CampusAppWP8ScheduledTaskAgent/ScheduledAgent.cs @@ -43,6 +43,11 @@ namespace CampusAppWP8ScheduledTaskAgent /// private RSSViewModel newsModel; + /// + /// Variable for the runnig feeds + /// + private int runningFeeds; + #endregion #region Constructor @@ -70,19 +75,44 @@ namespace CampusAppWP8ScheduledTaskAgent /// the background Task protected override void OnInvoke(ScheduledTask task) { - switch (task.Name) + int notRunningFeeds = 0; + this.runningFeeds = 0; + ShellTile tileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(CampusAppWPortalLib8.Resources.Constants.PathNews_NewsIndexPage)); + if (tileToFind != null && tileToFind.NavigationUri.ToString().Contains(CampusAppWPortalLib8.Resources.Constants.PathNews_NewsIndexPage)) { - case "MensaTask": - this.HandleMensaTask(task); - break; + this.runningFeeds++; + this.HandleNewsTask(task); + } + else + { + notRunningFeeds++; + } - case "EventTask": - this.HandleEventTask(task); - break; + tileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(CampusAppWPortalLib8.Resources.Constants.PathMensa_MensaPage)); + if (tileToFind != null && tileToFind.NavigationUri.ToString().Contains(CampusAppWPortalLib8.Resources.Constants.PathMensa_MensaPage)) + { + this.runningFeeds++; + this.HandleMensaTask(task); + } + else + { + notRunningFeeds++; + } - case "NewsTask": - this.HandleNewsTask(task); - break; + tileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains(CampusAppWPortalLib8.Resources.Constants.PathEvents_EventsIndexPage)); + if (tileToFind != null && tileToFind.NavigationUri.ToString().Contains(CampusAppWPortalLib8.Resources.Constants.PathEvents_EventsIndexPage)) + { + this.runningFeeds++; + this.HandleEventTask(task); + } + else + { + notRunningFeeds++; + } + + if (notRunningFeeds == 3) + { + BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_BTUCampusApp); } } @@ -183,15 +213,15 @@ namespace CampusAppWP8ScheduledTaskAgent data.WideContent1 = item.Date; data.WideContent2 = DefaultStringManager.ToShortString(item.Title, 40, "..."); data.WideContent3 = DefaultStringManager.ToShortString(item.Text, 40, "..."); - data.Count = this.newsModel.Channel[0].Item.Count; + //data.Count = this.newsModel.Channel[0].Item.Count; tileToFind.Update(data); - } - else - { - BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_News); + this.runningFeeds--; } - this.NotifyComplete(); + if (this.runningFeeds == 0) + { + this.NotifyComplete(); + } } /// @@ -210,15 +240,15 @@ namespace CampusAppWP8ScheduledTaskAgent data.WideContent1 = item.Date; data.WideContent2 = DefaultStringManager.ToShortString(item.Title, 40, "..."); data.WideContent3 = DefaultStringManager.ToShortString(item.Text, 40, "..."); - data.Count = this.eventModel.Channel[0].Item.Count; + //data.Count = this.eventModel.Channel[0].Item.Count; tileToFind.Update(data); - } - else - { - BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_Event); + this.runningFeeds--; } - this.NotifyComplete(); + if (this.runningFeeds == 0) + { + this.NotifyComplete(); + } } /// @@ -318,18 +348,18 @@ namespace CampusAppWP8ScheduledTaskAgent int randomNumber = random.Next(0, mealCount); MealModel meal = this.mensaModel.Menus[dayIndex].Meals[randomNumber]; data.WideContent3 = meal.MealName + ": " + DefaultStringManager.ToShortString(meal.MealDesc, 30, "..."); - data.Count = this.mensaModel.Menus[dayIndex].Meals.Count; + // data.Count = this.mensaModel.Menus[dayIndex].Meals.Count; } } tileToFind.Update(data); - } - else - { - BackgroundTasks.StopPerodicTask(Constants.BackgroundTask_Mensa); + this.runningFeeds--; } - this.NotifyComplete(); + if (this.runningFeeds == 0) + { + this.NotifyComplete(); + } } ///