コード例 #1
0
ファイル: App.xaml.cs プロジェクト: coltsavage/TaskAide
        // Event Handlers - Activations
        protected override void OnLaunched(LaunchActivatedEventArgs e)
        // Occurrence
        //  - when user launches app (ie. tile selection)
        //  - during prelaunch, when system launches app
        // Assumptions
        //  - prelaunch is disabled by default (post v1607)
        //      - when enabled, may be prelaunch or may have already prelaunched
        //  - app may not immediately be visible (eg. prelaunch)
        //  - previous state unknown (eg. user terminated, system terminated, crashed/hasn't-run, suspended, running)
        //  - app will feel unresponsive if execution exceeds a few seconds
        // Actions
        //  - initial app resources and state
        //  - register event handlers
        //  - configure and set initial page (on user launch)
        //  - display splash screen (on user launch)
        //      - (utilize custom SplashScreen if initialization requires more time)
        {
            if (App.State == null)
            {
                var systemTime = new SystemTimeDev(DateTimeOffset.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"));

                var taskAide = new TaskAide(new Database("Filename=TaskAide.db"), systemTime, new TimerDev(systemTime));
                systemTime.Rewound += taskAide.OnSystemRewound;

                var appEvents = new AppEvents();
                appEvents.TaskAdded           += (s, args) => taskAide.AddTask(args.Name);
                appEvents.TaskNameChanged     += (s, args) => taskAide.RenameTask(args.Task, args.NewName);
                appEvents.TaskRemoved         += (s, args) => taskAide.RemoveTask(args.Task);
                appEvents.UserChangedInterval += (s, args) => taskAide.UserChangedInterval(args.Interval, args.StartDelta, args.SpanDelta);
                appEvents.UserSwitchedTasks   += (s, args) => taskAide.SwitchTasks(args.Task);

                if ((e.PreviousExecutionState == ApplicationExecutionState.ClosedByUser) ||
                    (e.PreviousExecutionState == ApplicationExecutionState.Terminated))
                {
                    // restore previous user session state
                }

                App.Events   = appEvents;
                App.Settings = new AppSettings();
                App.State    = taskAide;
            }

            if (!e.PrelaunchActivated)
            {
                if (Window.Current.Content == null)
                {
                    Window.Current.Content = new AppNavigation();
                }
                Window.Current.Activate();
            }
        }
コード例 #2
0
        // Helpers
        private void AddTask(string name, out ITask addedTask)
        {
            // Configure

            // Setup
            var controller = new TaskAide(db, this.systemTime, this.timer);

            // Test
            addedTask = controller.AddTask(name);
            Assert.Equal(name, addedTask.Name);

            // Confirm
            var task = controller.GetTask(addedTask.TID);

            Assert.NotNull(task);
            Assert.Equal(name, task.Name);
        }
コード例 #3
0
        public void AddGetRemoveTasks()
        {
            // Configure
            var newTaskName = "Omega";

            // Setup
            var controller = new TaskAide(db, this.systemTime, this.timer);

            // Test: Add
            var taskAdded = controller.AddTask(newTaskName);

            Assert.Equal(newTaskName, taskAdded.Name);

            // Test: Get
            var taskFound = controller.GetTask(taskAdded.TID);

            Assert.Equal(taskAdded.Name, taskFound.Name);

            // Test: Remove
            controller.RemoveTask(taskAdded);
            taskFound = controller.GetTask(taskAdded.TID);
            Assert.Null(taskFound);
        }