public ActionResult Edit(UserProfile user)
        {
            if (ModelState.IsValid)
            {
                db.Entry(user).State = EntityState.Modified;
                db.SaveChanges();

                // Add/Remove user from admin position
                if (user.IsAdmin == false)
                {
                    if (Roles.GetRolesForUser(user.UserName).Contains("Administrator"))
                        Roles.RemoveUserFromRoles(user.UserName, new[] { "Administrator" });
                }
                else
                {
                    if (!Roles.GetRolesForUser(user.UserName).Contains("Administrator"))
                        Roles.AddUsersToRoles(new[] { user.UserName }, new[] { "Administrator" });
                }

                return RedirectToAction("ManageUsers", "Admin");
            }
            return View(user);
        }
 public ActionResult Manage(UserProfile user)
 {
     if (ModelState.IsValid)
     {
         db.Entry(user).State = EntityState.Modified;
         //try
         //{
             db.SaveChanges();
         //}
         //catch (OptimisticConcurrencyException)
         //{
         //    db.Refresh(RefreshMode.ClientWins, db.UserProfiles);
         //    db.SaveChanges();
         //}
         return RedirectToAction("Index");
     }
     return View(user);
 }
        public void TaskCompletion(Task task, UserProfile user)
        {
            CompletedTask completion = new CompletedTask();
            completion.DateCompleted = DateTime.Now;
            completion.Freeze = false;
            completion.Task = task;
            completion.PenaltyPoints = 0;
            completion.BonusPoints = 0;

            //Set milestone true/false
            if (completion.Task.completedTasks.Count < completion.Task.milestoneNumPlayers)
                completion.MilestoneAcheivement = true;
            else
                completion.MilestoneAcheivement = false;

            //Add user to the tasks's completion list
            task.completedTasks.Add(completion);

            //Add points to user profile total score
            user.TotalScore += task.numPoints;

            //Add points to appropriate argpath for user
            switch (task.argPath)
            {
                case "Attendance":
                    user.AttendancePoints += task.numPoints;
                    break;
                case "Cooperation":
                    user.CooperationPoints += task.numPoints;
                    break;
                case "Cross-Curricular":
                    user.CrossCurricularPoints += task.numPoints;
                    break;
                case "Puzzle":
                    user.PuzzlePoints += task.numPoints;
                    break;
                case "Story":
                    user.StoryPoints += task.numPoints;
                    break;
                default:
                    break;
            }

            completion.PointsReceived = task.numPoints;
        }