Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        // 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"));
            }
        }