Пример #1
0
        public void SaveChangeTask(TaskBLL task, string assigneeName)
        {
            _Task taskForEdit = db.Tasks.Get(task.Id);

            if (taskForEdit != null)
            {
                if (!taskForEdit.ParentId.HasValue)
                {
                    if ((assigneeName == null) && (task.ParentId != null))
                    {
                        //We cannot change assignee for subtask - only for main task
                        throw new ArgumentNullException("assigneeName", "Cannot be null");
                    }
                    if (taskForEdit.Assignee.Name != assigneeName)
                    {
                        Person assignee;
                        assignee             = db.People.Find(p => (p.Name == assigneeName)).Single();
                        taskForEdit.Assignee = assignee;

                        if (taskForEdit.ParentId == null)
                        {
                            subtaskService.ChangeAssigneeOfSubtasks(taskForEdit.ParentId.Value, assignee.Id);
                        }
                    }
                }

                taskForEdit.Name    = task.Name;
                taskForEdit.ETA     = task.ETA;
                taskForEdit.DueDate = task.DueDate;
                taskForEdit.Comment = task.Comment;

                db.Tasks.Update(taskForEdit);
                db.Save();
            }
        }