//
        // GET: /User/Create/eadd2f20cf91498d901085254868e687
        public ActionResult Create(string id)
        {
            if (String.IsNullOrWhiteSpace(id))
            {
                return(Content("Invalid registration code !"));
            }

            var repo = new RegistrationDetailRepository();

            if (!repo.ValidateRegistrationCode(id))
            {
                return(Content("Invalid registration code !"));
            }

            var regDetail = repo.GetEntry(id);

            var model = new UserRegistrationModel {
                Email = regDetail.Email
            };

            return(View(model));
        }
        public ActionResult Create(string id, UserRegistrationModel model)
        {
            try
            {
                var repo      = new RegistrationDetailRepository();
                var regDetail = repo.GetEntry(id);

                // check same email wasn't used before
                if (userRepo.CheckUserExists(regDetail.Email))
                {
                    return(Content("E-mail address already used for user registration !"));
                }

                if (model.Password != model.ConfirmationPassword)
                {
                    ModelState.AddModelError(String.Empty, "Non-matching passwords !");
                    return(View(model));
                }

                // create user
                var user = new User
                {
                    Email     = regDetail.Email,
                    Firstname = model.Firstname,
                    Lastname  = model.Lastname,
                    Password  = model.Password
                };

                userRepo.CreateUser(ref user, id);

                return(RedirectToAction("Index", "Login"));
            }
            catch
            {
                return(View());
            }
        }