//Optional parameter.
        public ViewResult Details(int Id = -1)
        {
            UserProfile userprofile = null;
            if (Id == -1) //If no user was specified, then go to user logged in.
            {
                if (Membership.GetUser() == null) //no one logged in. Show index.
                {
                    return View("~/Views/UserProfile/M/Index.cshtml", db.UserProfiles.ToList());
                }
                Guid userId = (Guid)Membership.GetUser().ProviderUserKey;

                foreach (UserProfile u in db.UserProfiles.ToList())
                {
                    if (u.AccountId != null)
                    {
                        if (u.AccountId == userId.ToString())
                        {
                            userprofile = u;
                            break;
                        }
                    }
                }
                if (userprofile == null && userId != null)
                {
                    //create a userprofile for this user.
                    userprofile = new UserProfile();
                    userprofile.AccountId = userId.ToString();
                    userprofile.Question = Membership.GetUser(userId).PasswordQuestion;
                    userprofile.Answer = "";
                    userprofile.Description = "Descripion here";
                    userprofile.Department = "Department here";
                    userprofile.DisplayName = Membership.GetUser(userId).UserName;
                    userprofile.Picture = "Unknown.jpg";
                    userprofile.Year = 0;
                    db.UserProfiles.Add(userprofile);
                    db.SaveChanges();
                }
            }
            else
            {
                userprofile = db.UserProfiles.Find(Id);
            }
            return View(userprofile);
        }
        public ActionResult Register(RegisterModel model)
        {
            //if (ModelState.IsValid)
            //{
            //Attempt to register the user
            MembershipCreateStatus createStatus;
            Guid id = Guid.NewGuid();
            Membership.CreateUser(model.UserName, model.Password, model.Email, model.Question, model.Answer, true, id, out createStatus);

            FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);

            if (createStatus == MembershipCreateStatus.Success)
            {
                UserProfile temp = new UserProfile();
                string filePath = null;
                try
                {
                    var tempImage = Bitmap.FromStream(model.Picture.InputStream); //This will throw an exception if not real
                    filePath = Server.MapPath("\\PICTURES\\") + id.ToString() + Path.GetExtension(model.Picture.FileName); // Picture will be the Users AccountID number plus the extension
                    if (System.IO.File.Exists(filePath))
                    {
                        //If the file already exists for some reason, delete
                        System.IO.File.Delete(filePath);
                    }
                    model.Picture.SaveAs(filePath);
                }
                catch (Exception e)
                {
                    //A valid picture wasen't uploaded, could be a malicious script. Use defaut picture
                    filePath = "\\Unknown.jpg"; //Default picture
                }

                temp.Department = model.Department;
                temp.Description = model.Description;
                temp.Picture = filePath.Split('\\')[filePath.Split('\\').Length - 1];
                temp.AccountId = id.ToString();
                temp.Year = model.Year;
                temp.DisplayName = model.DisplayName;
                temp.Question = model.Question;
                temp.Answer = model.Answer;

                HomeController.newsDB.UserProfiles.Add(temp);
                HomeController.newsDB.SaveChanges();
                return RedirectToAction("Index", "Home");
            }
            else
            {
                ModelState.AddModelError("", ErrorCodeToString(createStatus));
            }
            //}

            // If we got this far, something failed, redisplay form
            return View(model);
        }
        public ActionResult Edit(UserProfile userprofile)
        {
            if (ModelState.IsValid)
            {
                //string filePath = Server.MapPath("\\PICTURES\\") + Path.GetFileName(userprofile.PictureUpload.FileName);
                ////   System.IO.File.Create(filePath);
                //userprofile.PictureUpload.SaveAs(filePath);
                //userprofile.Picture = userprofile.PictureUpload.FileName;
                db.Entry(userprofile).State = EntityState.Modified;
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            return View(userprofile);
        }
 //
 // GET: /UserProfile/Edit/5
 public ActionResult Edit()
 {
     if (Membership.GetUser() != null) //if logged in
     {
         Guid userId = (Guid)Membership.GetUser().ProviderUserKey;
         UserProfile userprofile = null;
         foreach (UserProfile u in db.UserProfiles.ToList())
         {
             if (u.AccountId != null)
             {
                 if (u.AccountId == userId.ToString())
                 {
                     userprofile = u;
                     break;
                 }
             }
         }
         if (userprofile == null && userId != null)
         {
             //create a userprofile for this user.
             userprofile = new UserProfile();
             userprofile.AccountId = userId.ToString();
             userprofile.Question = Membership.GetUser(userId).PasswordQuestion;
             userprofile.Answer = "";
             userprofile.Description = "Descripion here";
             userprofile.Department = "Department here";
             userprofile.DisplayName = Membership.GetUser(userId).UserName;
             userprofile.Picture = "Unknown.jpg";
             userprofile.Year = 0;
             db.UserProfiles.Add(userprofile);
             db.SaveChanges();
         }
         return View(userprofile);
     }
     else
     {
         return RedirectToAction("LogOn", "Account");
     }
 }