private void ConsumeMessage(SimpleMessage message) { switch (message.Type) { case SimpleMessage.MessageType.TimerTick: applicationGrid.Items.Refresh(); break; } }
/// <summary> /// Funkce která je vyvolaná messengerem pro smazání grafù, aby nebyly pøekreslovány dvakrát /// </summary> /// <param name="message"></param> private void ConsumeMessage(SimpleMessage message) { switch (message.Type) { case SimpleMessage.MessageType.SwitchToApplicationListView: case SimpleMessage.MessageType.SwitchToTargetsView: case SimpleMessage.MessageType.NotInStatisticsView: appsCollection.Clear(); categoriesCollection.Clear(); break; } }
/// <summary> /// Zpracování jednoduché zprávy odeslané z jiného ViewModelu /// </summary> /// <param name="message"></param> private void ConsumeMessage(SimpleMessage message) { switch (message.Type) { case SimpleMessage.MessageType.TimerTick: WholeTime = wholeTime.Add(oneSecond); if (date == DateTime.Today && StackVisibility == Visibility.Visible) { TodayWholeTime = WholeTime; } break; case SimpleMessage.MessageType.ApplicationDeactivated: switchState("Today"); Messenger.Default.Send(new SimpleMessage { Type = SimpleMessage.MessageType.StartTimer }); break; } }
public ApplicationListViewModel() { categories.Add("Work", new Category("Work", new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 0), "Práce")); categories.Add("Fun", new Category("Fun", new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 0), "Zábava")); categories.Add("Other", new Category("Other", new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 0), "Ostatní")); ///Zjištění přítomnosti souboru s cíly a načtění pro dnešní den if (File.Exists(Path.Combine(Directory.GetCurrentDirectory() + "\\targets\\" + DateTime.Today.Year + DateTime.Today.Month + DateTime.Today.Day + ".json"))) { var targets = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, TimeSpan> >(File.ReadAllText( Path.Combine(Directory.GetCurrentDirectory() + "\\targets\\" + DateTime.Today.Year + DateTime.Today.Month + DateTime.Today.Day + ".json"))); foreach (KeyValuePair <string, TimeSpan> item in targets) { var category = categories[item.Key]; category.target = item.Value; } } refreshMessage = new SimpleMessage { Type = SimpleMessage.MessageType.TimerTick }; string categoriesFilePath = Path.Combine(Directory.GetCurrentDirectory() + "\\" + "categories.json"); setTimers(); /// Nastavení úvodní kategorie pokud nexestuje seznam kategorií jinak načtení ze souboru if (!fileOp.checkFile(categoriesFilePath)) { knownCategories.Add("EOP", "Other"); File.Create(categoriesFilePath); } else { knownCategories = fileOp.loadFile(categoriesFilePath); } /// Pokud neexistuje soubor dnešního dne vytvoří se prázdná kolekce a začne se zaznamenávat, jinak se soubor načte do kolekce if (!fileOp.checkFile(DateTime.Now)) { Applications = new ObservableCollection <Application>(); applicationTimer.Start(); } else { Applications = fileOp.loadFile(DateTime.Now, ref wholeTime); foreach (Application item in Applications) { categories[item.Category.name].timeInCategory = categories[item.Category.name].timeInCategory.Add(item.timeInApp); } recountThePercentage(); applicationTimer.Start(); } ///Zaregistrování poslouchání zpráv předaných z jiných ViewModelů Messenger.Default.Register <SimpleMessage>(this, ConsumeMessage); Messenger.Default.Register <DateTime>(this, "applicationToken", ChangeDay); Messenger.Default.Register <int>(this, setMode); Messenger.Default.Register <bool>(this, setNotification); }