BinaryStudio.TaskManager.Web.Controllers.ProjectController.MoveTask C# (CSharp) Method

MoveTask() private method

private MoveTask ( int taskId, int senderId, int receiverId, int projectId ) : void
taskId int
senderId int
receiverId int
projectId int
return void
        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);
        }