public void MoveTask(int taskId, int senderId, int receiverId, int projectId)
{
HumanTask humanTask = taskProcessor.GetTaskById(taskId);
HumanTaskHistory humanTaskHistory = new HumanTaskHistory
{
Action = ChangeHistoryTypes.Move,
ChangeDateTime = DateTime.Now,
NewAssigneeId = receiverId == -1 ? (int?)null : receiverId,
//???????????????????
UserId = this.userProcessor.GetUserByName(User.Identity.Name).Id,
NewDescription = humanTask.Description,
NewPriority = humanTask.Priority,
NewName = humanTask.Name,
Task = humanTask,
TaskId = taskId
};
taskProcessor.AddHistory(humanTaskHistory);
this.newsProcessor.CreateNewsForUsersInProject(humanTaskHistory,humanTask.ProjectId);
if (receiverId != -1)
{
this.taskProcessor.MoveTask(taskId, receiverId);
}
else
{
this.taskProcessor.MoveTaskToUnassigned(taskId);
}
var taskReminders = this.reminderProcessor.GetRemindersForTask(taskId).ToList();
if (taskReminders != null)
{
foreach (var taskReminder in taskReminders)
{
taskReminder.UserId = receiverId > 0 ? receiverId : -1;
this.reminderProcessor.UpdateReminder(taskReminder);
}
}
this.notifier.MoveTask(humanTask, receiverId);
}