public void UpdateLiveTile() { try { var todaysAmount = _drinkLogCache.GetTodaysAmount(); // set livetile var tileTemplate = NotificationsExtensions.TileContent.TileContentFactory.CreateTileSquare150x150Text01(); tileTemplate.TextHeading.Text = _resourceRepository.GetString("msgTodaysProgress"); tileTemplate.TextBody1.Text = string.Format(_resourceRepository.GetString("txtDailyGoal"), _unitHelper.GetAmount(_settingsStore.DailyGoal), _unitHelper.AmountText); tileTemplate.TextBody2.Text = string.Format(_resourceRepository.GetString("txtAchievedToday"), _unitHelper.GetAmount(todaysAmount), _unitHelper.AmountText); var tileTemplateWide = NotificationsExtensions.TileContent.TileContentFactory.CreateTileWide310x150Text01(); tileTemplateWide.TextHeading.Text = _resourceRepository.GetString("msgTodaysProgress"); tileTemplateWide.TextBody1.Text = string.Format(_resourceRepository.GetString("txtDailyGoal"), _unitHelper.GetAmount(_settingsStore.DailyGoal), _unitHelper.AmountText); tileTemplateWide.TextBody2.Text = string.Format(_resourceRepository.GetString("txtAchievedToday"), _unitHelper.GetAmount(todaysAmount), _unitHelper.AmountText); tileTemplateWide.Square150x150Content = tileTemplate; var updater = TileUpdateManager.CreateTileUpdaterForApplication(); updater.EnableNotificationQueue(true); updater.Clear(); updater.Update(new TileNotification(tileTemplateWide.GetXml())); } catch (Exception ex) { // suppress _log.Log(ex.Message, LogCacheLogLevel.Error); } }
public async void Run(IBackgroundTaskInstance taskInstance) { if (_settingsStore.FirstStart) { return; } _settingsStore.PassedNotifications++; if (_settingsStore.PassedNotifications < _settingsStore.NotificationInterval) { return; } // check for quiet hours interval if (_settingsStore.QuietHoursEnabled) { var now = DateTime.Now; var timeOfDay = now.TimeOfDay; if (_settingsStore.QuietHoursStart <= _settingsStore.QuietHoursEnd && _settingsStore.QuietHoursStart <= timeOfDay && _settingsStore.QuietHoursEnd >= timeOfDay) // easy { return; } else if ((timeOfDay < TimeSpan.FromHours(24) && timeOfDay >= _settingsStore.QuietHoursStart) || timeOfDay >= TimeSpan.Zero && timeOfDay <= _settingsStore.QuietHoursEnd) { return; } } _settingsStore.PassedNotifications = 0; BackgroundTaskDeferral _deferral = taskInstance.GetDeferral(); _logCache.Log("DrinkReminderBackgroundTask|Starting", LogCacheLogLevel.Verbose); _watch = Stopwatch.StartNew(); ExecuteDrinkReminder(_watch); _logCache.Log(String.Format("DrinkReminderBackgroundTask|Ended normally after {0}", _watch.Elapsed), LogCacheLogLevel.Verbose); _deferral.Complete(); }
// When share is invoked (by the user or programatically) the event handler we registered will be called to populate the datapackage with the // data to be shared. private async void OnDataRequested(DataTransferManager sender, DataRequestedEventArgs e) { // Call the scenario specific function to populate the datapackage with the data to be shared. try { var deferral = e.Request.GetDeferral(); var tempFolder = ApplicationData.Current.TemporaryFolder; var file = await tempFolder.CreateFileAsync("DrinkOBand_Export.csv", CreationCollisionOption.ReplaceExisting); var items = await _drinkLogRepository.GetAllEntriesAsync(); var line = "Date;Amount;"; using (var streamWriter = new StreamWriter(await file.OpenStreamForWriteAsync())) { await streamWriter.WriteLineAsync(line); foreach (var drinkLogItem in items) { line = String.Format("{0};{1};", drinkLogItem.Timestamp.ToString("yyyy-MM-dd hh:mm:ss"), drinkLogItem.Amount); await streamWriter.WriteLineAsync(line); } } e.Request.Data.SetStorageItems(new[] { file }); e.Request.Data.SetText("Data export from Drink O'Band"); e.Request.Data.Properties.Title = file.Name; deferral.Complete(); } catch (Exception ex) { _logCache.Log(ex.Message, LogCacheLogLevel.Error); e.Request.FailWithDisplayText(_resourceRepository.GetString("msgSharingExportFailed")); } }