public ActionResult AddProject(string projectName) { var user = userRepository.GetByName(User.Identity.Name); var project = new Project { Created = DateTime.Now, Creator = user, Name = projectName, CreatorId = user.Id }; var id = projectRepository.Add(project); var projectsToModel = new LandingProjectModel { Id = id, Name = projectName }; return Json(projectsToModel); }
public ActionResult GetTasks(int projectId, string taskGroup) { List<HumanTask> taskList = null; string groupName = null; Project currentProject = null; List<LandingUserModel> usersToModel = null; var user = userRepository.GetByName(User.Identity.Name); if (projectId != -1) { currentProject = projectRepository.GetById(projectId); taskList = currentProject.Tasks.ToList(); var usersList = projectProcessor.GetUsersAndCreatorInProject(projectId).ToList(); usersToModel = usersList.OrderBy(x => x.UserName).Select(currentUser => new LandingUserModel() { Id = currentUser.Id, Name = currentUser.UserName, Photo = userRepository.GetById(currentUser.Id).ImageData != null }).ToList(); } else { switch (taskGroup) { case "all": taskList = projectRepository.GetAllProjectsForUser(user.Id).SelectMany(proj => proj.Tasks).ToList(); taskList.AddRange(projectRepository.GetAllProjectsForTheirCreator(user.Id).SelectMany(proj => proj.Tasks).ToList()); groupName = "All Tasks"; break; case "my": taskList = projectRepository.GetAllProjectsForUser(user.Id).SelectMany(proj => proj.Tasks).Where(x => x.AssigneeId == user.Id).ToList(); taskList.AddRange(projectRepository.GetAllProjectsForTheirCreator(user.Id).SelectMany(proj => proj.Tasks).Where(x => x.AssigneeId == user.Id).ToList()); groupName = "My Tasks"; break; case "unassigned": taskList = projectRepository.GetAllProjectsForUser(user.Id).SelectMany(proj => proj.Tasks).Where(x => x.AssigneeId == null).ToList(); taskList.AddRange(projectRepository.GetAllProjectsForTheirCreator(user.Id).SelectMany(proj => proj.Tasks).Where(x => x.AssigneeId == null).ToList()); groupName = "Unassigned"; break; } } var tasksToModel = taskList.Where(x => x.Closed == (DateTime?)null).Select(task => new LandingTaskModel { Id = task.Id, Description = stringExtensions.Truncate(task.Description, 70), Name = stringExtensions.Truncate(task.Name, 70), Priority = task.Priority, Created = task.Created, Creator = userRepository.GetById(task.CreatorId.GetValueOrDefault()).UserName.ToString(), AssigneeId = task.AssigneeId, Assignee = task.AssigneeId== null?null:userRepository.GetById(task.AssigneeId.GetValueOrDefault()).UserName.ToString(), AssigneePhoto = task.AssigneeId==null?false:userRepository.GetById(task.AssigneeId.GetValueOrDefault()).ImageData!=null, Finished = task.Finished }); var model = new LandingProjectModel { Id = projectId != -1 ? currentProject.Id : -1, Name = projectId != -1 ? currentProject.Name : groupName, Tasks = tasksToModel, Users = usersToModel }; return Json(model, JsonRequestBehavior.AllowGet); }