public ActionResult Manage()
        {
            UserDto user = (UserDto)Session["user"];

            ManageViewModel vm = new ManageViewModel();
            vm.About = user.About;
            vm.FirstName = user.FirstName;
            vm.LastName = user.LastName;
            vm.Sex = user.Sex;
            vm.Id = user.Id;

            return View(vm);
        }
        public ActionResult Manage(ManageViewModel model)
        {
            if (ModelState.Values.SelectMany(v => v.Errors).Count() > 0)
                return View(model);

            UserDto user = (UserDto)Session["user"];

            string pw = Encryption.ComputeHash(model.OldPassword, user.Salt);

            if (user.Password == pw)
            {
                if (!string.IsNullOrEmpty(model.NewPassword))
                {
                    model.NewPassword = Encryption.ComputeHash(model.NewPassword, user.Salt);
                }

                bus.Send(new ChangeUserInfo(model.Id, model.NewPassword, model.FirstName, model.LastName, model.Sex, model.About));
            }
            else
            {
                ModelState.AddModelError("OldPassword", "The password is incorrect");
                return View(model);
            }

            return RedirectToAction("Index", "User", new { username = user.Username });
        }