using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.DI; using Tango.FSE.Common; using Tango.FSE.Common.FSEApplication; using Tango.FSE.Common.Navigation; using Tango.FSE.Common.Tiles; using Tango.FSE.UI.ViewModels; namespace Tango.FSE.UI.Tiles { public class DefaultDashboardManager : IDashboardManager { public ObservableCollection Tiles { get; private set; } private INavigationManager NavigationManager { get; set; } public DefaultDashboardManager(INavigationManager navigationManager) { Tiles = new ObservableCollection(); NavigationManager = navigationManager; NavigationManager.Navigating += NavigationManager_Navigating; } private void NavigationManager_Navigating(object sender, NavigationToEventArgs e) { if (e.ToVM != null && e.ToVM.GetType() == typeof(DashboardViewVM)) { Tiles.ToList().ForEach(x => x.OnNavigatedTo()); } else { Tiles.ToList().ForEach(x => x.OnNavigatedFrom()); } } public async void OnApplicationStarted(IFSEApplicationManager applicationManager) { await Task.Delay(100); Tiles.ToList().ForEach(x => TangoIOC.Default.Inject(x)); Tiles.ToList().ForEach(x => x.OnApplicationStarted()); } public async void OnApplicationReady(IFSEApplicationManager applicationManager) { await Task.Delay(100); Tiles.ToList().ForEach(x => x.OnApplicationReady()); } } }