/// <summary> /// バックグラウンドタスクの登録を更新する. /// </summary> /// <param name="updateTrigger">バックグラウンドタスクとして登録するロック画面切り替え設定</param> /// <returns></returns> public static BackgroundTaskRegistration UpdateBackgroundTaskRegistration(this UpdateTriggerBase updateTrigger) { if (updateTrigger == null) { throw new ArgumentNullException("updateTrigger"); } var trigger = updateTrigger.MakeBackgroundTrigger(); if (trigger == null) { throw new NotSupportedException(); } // タスクの更新はないので既存タスクを一度登録解除する必要がある Unregister(updateTrigger.TaskName); if (updateTrigger.IsOn) { return(Register(updateTrigger.TaskName, trigger)); } else { // 解除済みなので何もする必要はなくただnullを返す return(null); } }
/// <summary> /// ロック画面切り替えに関する設定値を設定する. /// </summary> /// <param name="key">設定のキー</param> /// <param name="trigger">設定値</param> private void SetSettingOfUpdateTrigger(SettingKey key, UpdateTriggerBase trigger) { if (trigger == null) { throw new ArgumentNullException("trigger"); } var state = new ApplicationDataCompositeValue(); trigger.SaveTo(state); SetSetting(key, state); }
/// <summary> /// ロック画面切り替えに関する設定値を取得する. /// </summary> /// <param name="key">設定のキー</param> /// <param name="trigger">設定値</param> private void GetSettingOfUpdateTrigger(SettingKey key, UpdateTriggerBase trigger) { if (trigger == null) { throw new ArgumentNullException("trigger"); } var state = GetSetting <ApplicationDataCompositeValue>(key, null); if (state != null) { trigger.LoadFrom(state); } }