public async Task ResetPassword(ResetPasswordModel model)
        {
            var user = Entities.Users.FirstOrDefault(u => u.UID == model.UID);
            if (user == null)
            {
                throw new ArgumentException(Strings.InvalidUserId);
            }

            var hash = Security.HashSHA1(model.Password);
            user.PasswordHash = hash;
            await Entities.SaveChangesAsync();
        }
        public ActionResult ResetPassword(Guid? uid)
        {
            if (Request.IsAuthenticated)
            {
                return RedirectToAction("Index", "Video");
            }

            if (!uid.HasValue)
            {
                return RedirectToAction("Login");
            }

            var model = new ResetPasswordModel();
            model.UID = uid.Value;
            return View(model);
        }
        public async Task<ActionResult> ResetPassword(ResetPasswordModel model)
        {
            if (!model.UID.HasValue)
            {
                return RedirectToAction("Login");
            }

            if (!ModelState.IsValid)
            {
                model.IsValid = false;
                model.ErrorMessage = Strings.FixValidationErrors;
                return View(model);
            }

            try
            {
                await _security.ResetPassword(model);
            }
            catch (ArgumentException ex)
            {
                model.IsValid = false;
                model.ErrorMessage = ex.Message;
                return View(model);
            }
            catch (Exception)
            {
                model.IsValid = false;
                model.ErrorMessage = Strings.ErrorOccured;
                return View(model);
            }

            return RedirectToAction("Login");
        }