コード例 #1
0
        public async Task LoadAsync(IDictionary <XName, object> readWriteValues)
        {
            reminders.Clear();
            hasReactivationReminder = false;

            object reminderBookmarks;

            if (readWriteValues != null && readWriteValues.TryGetValue(WorkflowNamespace.Bookmarks, out reminderBookmarks))
            {
                foreach (Bookmark reminderBookmark in (reminderBookmarks as List <Bookmark>))
                {
                    reminders[CreateReminderName(reminderBookmark)] = new ReminderInfo(reminderBookmark, ReminderState.RegisteredAndSaved);
                }
            }
            foreach (string reminderName in await instance.GetRemindersAsync())
            {
                if (reminderName == WorkflowNamespace.ReminderNameForReactivation)
                {
                    hasReactivationReminder = true;
                }
                else if (reminderName.StartsWith(WorkflowNamespace.ReminderPrefixForBookmarks) && // there can be other reminders
                         !reminders.ContainsKey(reminderName))
                {
                    await instance.UnregisterReminderAsync(reminderName);
                }
            }

            await UnregisterReactivationReminderIfNotRequired();
        }