public ActionResult Create(User user2)
        {
            curUser = User.Identity.Name;
            //first check to see if they are an existing friend
            IQueryable<Friend> fq =
                from frnd in db.Friends
                where (frnd.User1.UserName == curUser && user2.UserId == frnd.User2.UserId)
                    || (frnd.User2.UserName == curUser && user2.UserId == frnd.User1.UserId)
                select frnd;

            foreach (Friend frnd in fq.ToList())
            {
                if (frnd.Status != null)
                {
                    if (frnd.Status.Status == "blocked" || frnd.Status.Status == "accepted" || frnd.Status.Status == "requested") //nonzero, so this relationship exists
                    {
                        ViewBag.message = "You already have a friend relation with this user.";
                        return View("Error");
                    }
                }
            }

            //They aren't, so proeed with the request
            Friend friend = new Friend();
            friend.User1 = db.Users.Single( f => f.UserName == curUser);

            IQueryable<User> friendQuery =
                from user in db.Users
                where user.UserId == user2.UserId
                select user;

            friend.User2 = friendQuery.Single();

            IQueryable<FriendStatus> statQuery =
                from stat in db.FriendStatuses
                where stat.Status == "requested"
                select stat;
            friend.Status = statQuery.Single();
            //if (ModelState.IsValid)
            //{
                db.Friends.Add(friend);
                db.SaveChanges();
                return RedirectToAction("Index");
            //}
            //else Console.Write("bleh");

            //return View(friend);
        }
        public ActionResult AccountDetails(UserAccount account)
        {
            User user = new User();

            using (PYPContext db = new PYPContext())
            {
                user = db.Users.Single(u => u.UserName == User.Identity.Name);
                user.UserName = account.UserName;
                user.Name = account.Name;
                user.Email = account.Email;

                if (db.Entry(user).State == EntityState.Modified)
                {
                    db.SaveChanges();
                }
            }

            return RedirectToAction("Index", "Home");
        }
        public ActionResult Register(UserRegistration model)
        {
            if (ModelState.IsValid)
            {
                using (PYPContext db = new PYPContext())
                {
                    User user = new User();
                    user.Name = model.Name;
                    user.Email = model.Email;
                    user.UserName = model.UserName;
                    user.Salt = Crypto.GenerateSalt();
                    user.Password = Crypto.HashPassword(model.Password + user.Salt);

                    // Save the new user to the database
                    db.Users.Add(user);
                    db.SaveChanges();

                    // Login the new user
                    FormsAuthentication.SetAuthCookie(user.UserName, false);
                    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Response.Cookies.Get(FormsAuthentication.FormsCookieName).Value);
                    GenericPrincipal userPrincipal = new GenericPrincipal(new FormsIdentity(ticket), null);
                    System.Web.HttpContext.Current.User = userPrincipal;
                    Thread.CurrentPrincipal = userPrincipal;
                }

                // Redirect to Home
                return RedirectToAction("Index", "Home");
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }