public ActionResult Create() { ViewBag.Task = "class = active"; var model = new TaskViewModel(); model.UsersDDL = new List <UserViewModelDDL>(); // get all users with dev and manager role var developers = db.AspNetRoles.SingleOrDefault(r => r.Name == "Developer").AspNetUsers.ToList(); var managers = db.AspNetRoles.SingleOrDefault(r => r.Name == "Project Manager").AspNetUsers.ToList(); //map manager and developers in one list for ddl foreach (var userItem in developers) { var currentUser = new UserViewModelDDL { Id = userItem.Id, Name = userItem.Name, Surname = userItem.Surname }; model.UsersDDL.Add(currentUser); } // only admin can assign task to both user -> dev and project manager if (User.IsInRole("Administrator")) { foreach (var managerItem in managers) { var currentUser = new UserViewModelDDL { Id = managerItem.Id, Name = managerItem.Name, Surname = managerItem.Surname }; model.UsersDDL.Add(currentUser); } } // get all projects model.Projects = (from item in db.Projects select new ProjectViewModel { Id = item.Id, Name = item.Name }).ToList(); return(View(model)); }
// GET: Task/Edit/5 public ActionResult Edit(string id) { ViewBag.Task = "class = active"; // find task by id var task = db.Tasks.Find(id); var model = new TaskViewModel(); if (task is null) { return(RedirectToAction("Index")); } model.UsersDDL = new List <UserViewModelDDL>(); // get all users with dev and manager role var developers = db.AspNetRoles.SingleOrDefault(r => r.Name == "Developer").AspNetUsers.ToList(); var managers = db.AspNetRoles.SingleOrDefault(r => r.Name == "Project Manager").AspNetUsers.ToList(); //map manager and developers in one list for ddl foreach (var userItem in developers) { var currentUser = new UserViewModelDDL { Id = userItem.Id, Name = userItem.Name, Surname = userItem.Surname }; model.UsersDDL.Add(currentUser); } foreach (var managerItem in managers) { var currentUser = new UserViewModelDDL { Id = managerItem.Id, Name = managerItem.Name, Surname = managerItem.Surname }; model.UsersDDL.Add(currentUser); } if (task.AspNetUser1 is null) //check if task isn't assigned { model.Id = task.Id; model.Deadline = task.Deadline; model.Description = task.Description; model.Progress = task.Progress; model.Status = task.Status; } else // if task is assigned to someone, return for selected item in dropdown list { model.Id = task.Id; model.Deadline = task.Deadline; model.Description = task.Description; model.Progress = task.Progress; model.Status = task.Status; model.CurrentDeveloper = task.AspNetUser1.Name + " " + task.AspNetUser1.Surname; model.CurrentDeveloperId = task.AspNetUser1.Id; } return(View(model)); }