public ActionResult TeamUsers(string[] users, int teamId) { try { using (var db = new ScrumDB()) { // get all the users var allUsers = db.AspNetUsers.Select(u => u.UserName); // get the team var team = db.Teams.Find(teamId); // get the team's current users var currentTeamUsers = team.Users; var currentTeamUsersList = currentTeamUsers.Select(u => u.UserName).ToList(); // if there are no users in the list we just need to remove them all if (users == null || users.Length == 0) { foreach (var user in currentTeamUsersList) { team.Users.Remove(db.AspNetUsers.FirstOrDefault(u => u.UserName == user)); } db.SaveChanges(); return(new HttpStatusCodeResult(HttpStatusCode.OK)); } // get the users to add and remove var usersToAdd = users.Except(currentTeamUsersList).ToArray(); var usersToRemove = allUsers.Except(users).ToArray(); // perform database operations foreach (var item in usersToRemove) { team.Users.Remove(db.AspNetUsers.FirstOrDefault(r => r.UserName == item)); } foreach (var item in usersToAdd) { team.Users.Add(db.AspNetUsers.FirstOrDefault(r => r.UserName == item)); } // save changes db.SaveChanges(); } return(new HttpStatusCodeResult(HttpStatusCode.OK)); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, e.Message)); } }
public ActionResult Edit(int id, FormCollection collection) { try { try { using (var entities = new ScrumDB()) { var bli = entities.BacklogItems.Find(id); bli.Name = collection["Name"]; bli.ProjectID = int.Parse(collection["ProjectID"]); bli.Comments = collection["Comments"]; bli.State = (ProjectBacklogItem.BacklogItemState) int.Parse(collection["State"]); entities.SaveChanges(); } return(RedirectToAction("ProjectBacklog", "Project", new { id = collection["ProjectID"] })); } catch { return(View()); } return(RedirectToAction("Index")); } catch { return(View()); } }
public ActionResult Edit(int id, FormCollection collection) { try { using (var entities = new ScrumDB()) { var item = entities.Tasks.Find(id); if (item == null) { return(RedirectToAction("Details", new { id = id })); } item.Name = collection["Name"]; item.Weight = int.Parse(collection["Weight"]); item.Comments = collection["Comments"]; entities.SaveChanges(); return(View("Details", item)); } } catch (Exception e) { return(RedirectToAction("Details", new { id = id })); } }
public ActionResult Create(FormCollection collection) { try { int backlogItemId = -1; using (var entities = new ScrumDB()) { backlogItemId = int.Parse(collection["BacklogItemID"]); entities.Tasks.Add(new ScrumTask { Name = collection["Name"], BacklogItemID = backlogItemId, Weight = int.Parse(collection["Weight"]), Comments = collection["Comments"] }); entities.SaveChanges(); } if (backlogItemId > -1) { return(RedirectToAction("Details", "BacklogItem", new { id = backlogItemId })); } else { throw new Exception("Backlog item ID is invalid."); } } catch (Exception e) { return(View()); // TODO: change this } }
public ActionResult Edit(int id, FormCollection collection) { try { using (var entities = new ScrumDB()) { var team = entities.Teams.Find(id); if (team == null) { throw new InstanceNotFoundException(); } team.Name = collection["Name"]; entities.SaveChanges(); return(RedirectToAction("Index")); } } catch (InstanceNotFoundException exception) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, e.Message)); } }
public ActionResult ChangeUserRoles(string[] roles, string username) { try { using (var db = new ScrumDB()) { // get all the user roles var allUserRoles = db.AspNetRoles.Select(r => r.Name).ToList(); // get the user var user = db.AspNetUsers.FirstOrDefault(u => u.UserName == username); // get the user's current roles var currentUserRolesCollection = user.AspNetRoles; var currentUserRoles = currentUserRolesCollection.Select(r => r.Name).ToList(); if (roles == null || !roles.Any()) { foreach (var role in currentUserRoles) { user.AspNetRoles.Remove(db.AspNetRoles.FirstOrDefault(r => r.Name == role)); } } else { // get the roles to add and remove var rolesToAdd = roles.Except(currentUserRoles).ToArray(); var rolesToRemove = allUserRoles.Except(roles).ToArray(); // perform database operations foreach (var item in rolesToRemove) { user.AspNetRoles.Remove(db.AspNetRoles.FirstOrDefault(r => r.Name == item)); } foreach (var item in rolesToAdd) { user.AspNetRoles.Add(db.AspNetRoles.FirstOrDefault(r => r.Name == item)); } } // save changes db.SaveChanges(); } return(new HttpStatusCodeResult(HttpStatusCode.OK)); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, e.Message)); } }
public ActionResult AddUserToTeam(int teamId, string username) { try { using (var entities = new ScrumDB()) { var team = entities.Teams.Find(teamId); team.Users.Add(entities.AspNetUsers.FirstOrDefault(u => u.UserName == username)); entities.SaveChanges(); return(new HttpStatusCodeResult(HttpStatusCode.OK)); } } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, e.Message)); } }
public ActionResult Edit(int id, FormCollection collection) { try { using (var entities = new ScrumDB()) { var proj = entities.Projects.Find(id); // update the information proj.Name = collection["Name"]; entities.SaveChanges(); } return(RedirectToAction("Index")); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } }
public ActionResult StateChange(int backlogItemId, int newState) { using (var entities = new ScrumDB()) { try { var item = entities.BacklogItems.Find(backlogItemId); item.State = (ProjectBacklogItem.BacklogItemState)newState; item.Priority = null; entities.SaveChanges(); } catch (Exception ex) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.Message)); } } return(new HttpStatusCodeResult(200)); }
public ActionResult Create(FormCollection collection) { try { using (var entities = new ScrumDB()) { entities.Teams.Add(new Team() { Name = collection["Name"] }); entities.SaveChanges(); } return(RedirectToAction("Index")); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, e.Message)); } }
public ActionResult Create(FormCollection collection) { try { using (var entities = new ScrumDB()) { entities.Projects.Add(new Project() { Name = collection["Name"] }); entities.SaveChanges(); } return(RedirectToAction("Index")); } catch { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } }
protected override void Seed(ScrumDB context) { var roles = new [] { "Admin", "ScrumMaster", "Developer", "ProductOwner" }; foreach (var role in roles) { if (context.AspNetRoles.Any(r => r.Name == role)) { continue; // if the role is already in the database don't add it } var userRole = new AspNetRole() { Name = role, Id = Guid.NewGuid().ToString() }; context.AspNetRoles.Add(userRole); } context.SaveChanges(); base.Seed(context); }
public ActionResult Delete(int id, FormCollection collection) { try { using (var entities = new ScrumDB()) { var proj = entities.Projects.Find(id); if (proj == null) { ViewBag.ErrorMessage = string.Format("Project id {0} was not found.", id); return(RedirectToAction("Index")); } entities.Projects.Remove(proj); entities.SaveChanges(); } return(RedirectToAction("Index")); } catch { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError)); } }
public ActionResult Create(FormCollection collection) { try { using (var entities = new ScrumDB()) { entities.BacklogItems.Add(new BacklogItem() { Name = collection["Name"], ProjectID = int.Parse(collection["ProjectID"]), Comments = collection["Comments"], State = 0 }); entities.SaveChanges(); } return(RedirectToAction("ProjectBacklog", "Project", new{ id = collection["ProjectID"] })); } catch { return(View()); } }
public ActionResult PriorityChange(int projId, int[] idArray) { using (var entities = new ScrumDB()) { try { var itemList = entities.BacklogItems.Where(i => i.ProjectID == projId && i.State != ProjectBacklogItem.BacklogItemState.Removed); foreach (var item in itemList) { item.Priority = Array.IndexOf(idArray, item.ID); // assign the priority of the item according to it's position in the array } entities.SaveChanges(); } catch (Exception ex) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.Message)); } } return(new HttpStatusCodeResult(200)); }
public ActionResult Remove(int id) { try { using (var entities = new ScrumDB()) { var item = entities.Tasks.Find(id); if (item == null) { return(new HttpNotFoundResult()); } entities.Tasks.Remove(item); entities.SaveChanges(); return(new HttpStatusCodeResult(HttpStatusCode.OK)); } } catch (Exception) { // TODO: something here throw; } }
public ActionResult Delete(int id, FormCollection collection) { try { using (var entities = new ScrumDB()) { var team = entities.Teams.Find(id); if (team == null) { ViewBag.ErrorMessage = string.Format("Team with ID {0} not found.", id); return(RedirectToAction("Index")); } entities.Teams.Remove(team); entities.SaveChanges(); } return(RedirectToAction("Index")); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, e.Message)); } }
private void SeedDatabase() { const int numberOfProjectsToAdd = 2; const int numberOfTasksToAdd = 10; using (var db = new ScrumDB()) { if (db.Projects.Count() < 2) // if there are no projects { for (int i = 1; i <= numberOfProjectsToAdd; i++) { var projectName = "Example Proj " + i; db.Projects.Add(new Project() { Name = projectName }); db.SaveChanges(); var project = db.Projects.FirstOrDefault(p => p.Name == projectName); if (project == null) { continue; } Random rnd = new Random(); var projectId = project.ID; for (int BLI = 0; BLI < numberOfTasksToAdd; BLI++) { var backlogItemName = "Backlog Item " + BLI; db.BacklogItems.Add(new BacklogItem() { ProjectID = projectId, Name = backlogItemName, State = (ProjectBacklogItem.BacklogItemState)rnd.Next(0, 2), Comments = "Hello world this is a comment", Priority = numberOfTasksToAdd - BLI // put the tasks in backwards just for the lols }); db.SaveChanges(); var backlogItem = db.BacklogItems.FirstOrDefault(bli => bli.Name == backlogItemName); for (int j = 0; j < numberOfTasksToAdd; j++) { db.Tasks.Add(new ScrumTask() { BacklogItem = backlogItem, Name = "New Task " + j, Weight = 8, Priority = j }); db.SaveChanges(); } } } } if (!db.Teams.Any()) // if there are no teams { for (int i = 0; i < 100; i++) { } } } }
public ActionResult SubmitProjectTeamsUsers(int projectId, int[] teamsArray, string[] usersArray) { try { using (var db = new ScrumDB()) { // get the project var project = db.Projects.Find(projectId); // get all the users var allUsers = db.AspNetUsers.Select(u => u.UserName); var allTeams = db.Teams.Select(t => t.ID); // get the projects's current users var currentProjectUsers = project.Users.Select(u => u.UserName).ToList(); var currentProjectTeamIDs = project.Teams.Select(t => t.ID).ToList(); // check for no teams if (teamsArray == null || teamsArray.Count() == 0) { foreach (var team in currentProjectTeamIDs) { project.Teams.Remove(db.Teams.FirstOrDefault(t => t.ID == team)); } } else { var teamsToAdd = teamsArray.Except(currentProjectTeamIDs).ToArray(); var teamsToRemove = allTeams.Except(teamsArray).ToArray(); foreach (var teamId in teamsToAdd) { project.Teams.Add(db.Teams.FirstOrDefault(t => t.ID == teamId)); } foreach (var teamId in teamsToRemove) { project.Teams.Remove(db.Teams.FirstOrDefault(t => t.ID == teamId)); } } // check for no users if (usersArray == null || !usersArray.Any()) { foreach (var user in currentProjectUsers) { project.Users.Remove(db.AspNetUsers.FirstOrDefault(u => u.UserName == user)); } } else { // get the users to add and remove var usersToAdd = usersArray.Except(currentProjectUsers).ToArray(); var usersToRemove = allUsers.Except(usersArray).ToArray(); // perform database operations foreach (var userName in usersToRemove) { project.Users.Remove(db.AspNetUsers.FirstOrDefault(r => r.UserName == userName)); } foreach (var userName in usersToAdd) { project.Users.Add(db.AspNetUsers.FirstOrDefault(r => r.UserName == userName)); } } // save db changes db.SaveChanges(); } return(new HttpStatusCodeResult(HttpStatusCode.OK)); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, e.Message)); } }