Inheritance: IEntity
        public void SetUp()
        {
            this.mockUserRepository = new Mock<IUserRepository>();
            this.mockTaskProcessor = new Mock<ITaskProcessor>();
            this.mockReminderRepository = new Mock<IReminderRepository>();
            this.mockReminderProcessor = new Mock<IReminderProcessor>();

            this.reminderController = new ReminderController(
                this.mockReminderRepository.Object,
                this.mockUserRepository.Object, 
                this.mockTaskProcessor.Object,
                mockReminderProcessor.Object);

            this.reminder = new Reminder { Id = taskId, Content = "asd", UserId = 1 };
            
            this.mockReminderRepository.Setup(x => x.GetById(taskId)).Returns(reminder);
        }
 /// <summary>
 /// The create task without reminder.
 /// </summary>
 /// <param name="task">The current task.</param>
 public void CreateTask(HumanTask task)
 {
     string date = task.Finished.HasValue ? task.Finished.Value.ToShortDateString() : "";
     this.humanTaskRepository.Add(task);
     if (task.Finished.HasValue && task.AssigneeId.HasValue)
     {
         Reminder reminder = new Reminder
         {
             ReminderDate = task.Finished.Value.AddDays(-1),
             Content = "You need to do '" + task.Name + "' task for " + date ,
             Task = task,
             TaskId = task.Id,
             UserId = task.AssigneeId.Value,
             WasDelivered = false,
             IsSend = true,
             User = userRepository.GetById(task.AssigneeId.Value)
         };
         reminderProcessor.AddReminder(reminder);
     }
 }
 public void UpdateReminder(Reminder reminder)
 {
     reminderRepository.Update(reminder);
 }
 public void AddReminder(Reminder reminder)
 {
     reminderRepository.Add(reminder);
 }
        /// <summary>
        /// The create task with reminder.
        /// </summary>
        /// <param name="task">The current task.</param>
        /// <param name="reminder">The reminder.</param>
        public void CreateTask(HumanTask task, Reminder reminder)
        {
            this.humanTaskRepository.Add(task);

            // task.Id got its value from database insert
            var newTaskId = task.Id;

            reminder.TaskId = newTaskId;

            this.reminderProcessor.AddReminder(reminder);
        }
        /// <summary>
        /// The update task with reminder.
        /// </summary>
        /// <param name="task">The current task.</param>
        /// <param name="reminder">The reminder.</param>
        public void UpdateTask(HumanTask task, Reminder reminder)
        {
            this.humanTaskRepository.Update(task);

            this.reminderProcessor.UpdateReminder(reminder);
        }
 public void Update(Reminder reminder)
 {
     this.dataBaseContext.Entry(reminder).State = EntityState.Modified;
     this.dataBaseContext.SaveChanges();
 }
 public void Delete(Reminder reminder)
 {
     this.dataBaseContext.Reminders.Remove(reminder);
     this.dataBaseContext.SaveChanges();
 }
 public void Add(Reminder reminder)
 {
     this.dataBaseContext.Entry(reminder).State = EntityState.Added;
     this.dataBaseContext.SaveChanges();
 }
        public void Should_UpdateTaskAndReminder_WhenUpdateArgumentsAreTaskAndReminder()
        {
            var testTask = new HumanTask { Id = 4, Name = "Fourth Task" };
            var testReminder = new Reminder { Id = 2, TaskId = 4 };

            this.processorUnderTest.UpdateTask(testTask, testReminder);

            this.mockHumanTaskRepository.Verify(it => it.Update(testTask), Times.Once());
            this.mockReminderProcessor.Verify(it => it.UpdateReminder(testReminder), Times.Once());
        }