Пример #1
0
        /// <summary>
        /// Purpose is to load up the lists from one spot, like task types, task priorities, etc.
        /// </summary>
        /// <returns></returns>
        private EditTaskViewModel GetInitialEditModel(int memberID)
        {
            var result = new EditTaskViewModel();
            var memberProjects = _genericRepo.FindAll<Project>();
            if (memberProjects != null && memberProjects.Count() > 0)
                result.Projects = memberProjects.Select(x => new SelectListItem { Text = x.Title, Value = x.ProjectID.ToString() });
            var taskPriorities = _genericRepo.FindAll<TaskPriority>();
            if (taskPriorities != null && taskPriorities.Count() > 0)
                result.TaskPriorities = taskPriorities.Select(x => new SelectListItem { Text = x.Label, Value = x.TaskPriorityID.ToString() });
            var taskTypes = _genericRepo.FindAll<TaskType>();
            if (taskTypes != null && taskTypes.Count() > 0)
                result.TaskTypes = taskTypes.Select(x => new SelectListItem { Text = x.Label, Value = x.TaskTypeID.ToString() });

            return result;
        }
Пример #2
0
 public ActionResult Save(EditTaskViewModel model)
 {
     model.MemberID = CurrentMember.MemberID;
     _service.Save(model);
     if (!String.IsNullOrEmpty(model.ReturnController))
     {
         return RedirectToAction(model.ReturnAction, model.ReturnController);
     }
     else if (model.TaskID == model.ParentTaskID)
     {
         return RedirectToAction("Index");
     }
     else
     {
         return RedirectToAction("Edit", new { id = model.ParentTaskID });
     }
 }
Пример #3
0
        public void Save(EditTaskViewModel model)
        {
            // TODO: Wrap this in a transaction!

            var task = _taskRepo.GetTask(model.TaskID) ?? new Task();
            task.Title = model.Title;
            task.Description = model.Description;
            task.EstimatedHours = model.EstimatedHours;
            task.ActualHours = model.ActualHours;
            task.DueDate = model.DueDate;
            task.TaskPriorityID = model.TaskPriorityID;
            task.TaskTypeID = model.TaskTypeID;
            task.ProjectID = model.ProjectID;
            task.Reference = model.Reference;
            task.IsComplete = model.IsComplete;
            task.RootTaskID = model.RootTaskID;
            task.ParentTaskID = model.ParentTaskID;
            task.DateStarted = model.DateStarted;
            task.MemberNames = String.Empty; //reset this value, it'll get set appropriately below

            if (task.TaskID == 0)
            {
                task.DateCreated = DateTime.Now;
                task.CreatedBy = model.MemberID;
                if (String.IsNullOrEmpty(task.Description))
                    task.Description = task.Title;
            }
            _taskRepo.SaveTask(task);

            //at this point i need to check, if the root and parent are both zero,
            //that means that this task is a brand new top level task that we just created,
            //so let's assign the current tasks id to those and save again, otherwise
            //we should be good to go, the assumption is that we're creating a new subtask,
            //and hopefully we've done our job.
            if (task.ParentTaskID == 0 && task.RootTaskID == 0)
            {
                task.ParentTaskID = task.TaskID;
                task.RootTaskID = task.TaskID;
                _taskRepo.SaveTask(task);
            }

            //assoc task to member
            _taskRepo.RemoveTaskMembers(task.TaskID);

            if (model.SelectedTaskMemberIds.Length > 0)
            {
                foreach (var memberID in model.SelectedTaskMemberIds)
                {
                    _memberRepo.AssociateTask(memberID, task.TaskID);
                    _notificationService.Notify(NotificationTypes.NewTaskAssignedToMember, memberID, task.TaskID);
                }
                var memberFirstNames = _memberRepo.GetMemberFirstNames(model.SelectedTaskMemberIds);
                task.MemberNames = String.Join(",", memberFirstNames);
                _taskRepo.SaveTask(task);
            }
            if (String.IsNullOrEmpty(model.ReturnController) || model.ReturnController.Equals("Tasks", StringComparison.OrdinalIgnoreCase))
            {
                _memberRepo.AssociateTask(model.MemberID, task.TaskID);
            }
        }