public virtual ActionResult AddToDo(ProjectToDosModel model) { if (Request.HttpMethod == "GET" || !Request.IsAjaxRequest()) { return(RedirectToAction(MVC.Organization.Details(model.OrganizationId, null, OrganizationViews.Projects, null, null, null))); } var item = Service.AddToDo(model); return(Json(new { Content = RenderPartialViewToString(MVC.Organization.Views.Project.ToDoItem, item) })); }
public ToDoModel AddToDo(ProjectToDosModel model) { var project = GetProject(model.Id); var todo = new ToDo() { Id = BsonObjectId.GenerateNewId(), Subject = model.InsertSubject, ResponsibleUserId = model.InsertResponsibleUserId, DueDate = model.InsertDueDate, Position = project.ToDos.Where(td => !td.FinishDate.HasValue && (!td.IsPrivate || IsProjectEditable(project, false))).Count(), IsPrivate = model.InsertToDoIsPrivate, CreatedByUserId = CurrentUser.Id }; if (!string.IsNullOrEmpty(model.InsertMileStoneId)) { var milestone = project.MileStones.Where(m => m.Id == model.InsertMileStoneId).Single(); todo.Position = milestone.ToDos.Where( td => !td.FinishDate.HasValue && (!td.IsPrivate || IsProjectEditable(project, false))).Count(); milestone.ToDos.Add(todo); } else { project.ToDos.Add(todo); } UpdateProject(project); var idea = GetIdea(project.IdeaId); bus.Send(new ProjectCommand() { ActionType = ActionTypes.ToDoAdded, ProjectId = project.Id, UserId = CurrentUser.Id, ToDoId = todo.Id, Text = todo.Subject, ProjectSubject = idea.Subject, Link = GetProjectUrl(project.Id), MileStoneId = model.InsertMileStoneId, IsPrivate = idea.IsPrivateToOrganization && !string.IsNullOrEmpty(idea.OrganizationId) || model.InsertToDoIsPrivate, SendNotifications = model.InsertSendNotifications, UserFullName = CurrentUser.FullName, UserLink = Url.ActionAbsolute("Details", "Account", new { userObjectId = CurrentUser.Id }) }); return(GetToDoModelFromToDo(todo, project, IsProjectEditable(project, false), model.InsertMileStoneId)); }
public virtual ActionResult AddToDo(ProjectToDosModel model) { if (Request.HttpMethod == "GET" || !Request.IsAjaxRequest()) { return(RedirectToAction(MVC.Project.ToDos(model.Id))); } if (ModelState.IsValid) { var item = Service.AddToDo(model); return (Json( new { Content = RenderPartialViewToString(MVC.Project.Views.ToDoItem, item), MileStoneId = item.MileStoneId })); } return(Json(new { errors = GetErrorMessages() })); }
public ProjectToDosModel ToDos(Project project) { var idea = GetIdea(project.IdeaId, "StateDescription"); var model = new ProjectToDosModel() { Id = project.Id, IdeaId = idea.Id, Subject = idea.Subject, InsertResponsibleUsers = (from member in project.ProjectMembers select new SelectListItem() { Value = member.UserObjectId, Text = GetUserFullName(member.UserObjectId), }).ToList(), InsertMilestones = (from m in project.MileStones select new SelectListItem() { Value = m.Id, Text = m.DateString, }).ToList(), IsEditable = IsProjectEditable(project, idea.IsClosed), IsCurrentUserInvolved = IsCurrentUserInvolved(project), IsPendingConfirmation = IsPendingConfirmation(project), IsJoinable = IsJoinable(project, idea), StateDescription = idea.StateDescription, State = IdeaStatesResource.ResourceManager.GetString(idea.ActualState.ToString()) }; AddEmptyUser(model.InsertResponsibleUsers); model.InsertMilestones.Insert(0, new SelectListItem() { Text = CommonStrings.Unassigned, Value = string.Empty }); model.ToDos = FilterToDos(project, project.ToDos, model.IsEditable, null); model.FinishedToDos = FilterFinishedToDos(project, project.ToDos, model.IsEditable, null); model.MileStones = (from ms in project.MileStones where !ms.ToDos.Any() || ms.ToDos.Where(t => !t.FinishDate.HasValue).Any() select new MileStoneModel() { ProjectId = project.Id, Date = ms.Date, Subject = ms.Subject, MileStoneId = ms.Id, IsLate = ms.Date <= DateTime.Now, ToDos = FilterToDos(project, ms.ToDos, model.IsEditable, ms.Id), FinishedToDos = FilterFinishedToDos(project, ms.ToDos, model.IsEditable, ms.Id), IsEditable = model.IsEditable }).ToList(); model.FinishedMileStones = (from ms in project.MileStones where ms.ToDos.Any() && !ms.ToDos.Where(t => !t.FinishDate.HasValue).Any() select new MileStoneModel() { Date = ms.Date, Subject = ms.Subject, MileStoneId = ms.Id, FinishedToDos = FilterFinishedToDos(project, ms.ToDos, model.IsEditable, ms.Id), ToDos = new List <ToDoModel>(), IsEditable = model.IsEditable }).ToList(); return(model); }