Пример #1
0
        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));
            }
        }
Пример #2
0
        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());
            }
        }
Пример #3
0
        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 }));
            }
        }
Пример #4
0
 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
     }
 }
Пример #5
0
 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));
     }
 }
Пример #6
0
        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));
            }
        }
Пример #7
0
 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));
     }
 }
Пример #8
0
 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));
     }
 }
Пример #9
0
 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));
 }
Пример #10
0
 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));
     }
 }
Пример #11
0
 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));
     }
 }
Пример #12
0
        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);
        }
Пример #13
0
 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));
     }
 }
Пример #14
0
 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());
     }
 }
Пример #15
0
        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));
        }
Пример #16
0
 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;
     }
 }
Пример #17
0
 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));
     }
 }
Пример #18
0
        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++)
                    {
                    }
                }
            }
        }
Пример #19
0
        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));
            }
        }