public void When_Scheduling_A_Command_It_Is_Pushed_To_The_Store()
        {
            var schedulerStore = new MockSchedulerStore();

            var commandScheduler = new MessageScheduler(schedulerStore);

            commandScheduler.ScheduleMessage(new TestCommand() { Test = "TestText"}, new DateTime(2012, 06, 24, 13, 37, 42));

            Assert.AreEqual(1, schedulerStore.PushedMessages.Count);
            Assert.AreEqual(new DateTime(2012, 06, 24, 13, 37, 42), schedulerStore.PushedMessages[0].Item2);
        }
示例#2
0
        //TODO put this in the message scheduler
        /// <summary>
        /// Schedules the notification to be sent
        /// </summary>
        /// <param name="userTaskList"></param>
        /// <param name="dict"></param>
        /// <returns>nothing</returns>
        public async Task <string> ScheduleNotification(Usertask userTask, Dictionary <string, string> dict, TaskSchedule taskSchedule = null)
        {
            //get admin info
            var adminUserObj = await GetAdmin(dict);

            var adminContact = new SimpleUser()
            {
                name = adminUserObj.name, email = adminUserObj.ReplyToEmail
            };

            //get contact info
            var user = await _data.GetOrSetCachedData(dict, Enums.DataType.Users, userTask.UserIdAssigned);

            var userObj = user.First().ToObject <User>();
            //get task
            var task = await _data.GetOrSetCachedData(dict, Enums.DataType.Tasks, userTask.TaskId);

            var taskObj = task.First().ToObject <TaskItem>();

            //Make message
            return(_ms.ScheduleMessage(adminContact, userObj, taskObj, userTask, taskSchedule));
        }