public ActionResult Activation(ActivationViewModel model)
        {
            if (!ModelState.IsValid) return View("Activation/Index", model);

            var id = Session["OwnerId"].ToString();
            var ownerId = QueryStringHelper.Base64ForUrlDecode(HttpUtility.UrlDecode(id));

            if (ownerId == string.Format("{0}|{1}", model.Email, model.Password).ToLowerInvariant())
            {
                try
                {
                    const string returnUrl = "/owner/my-listings";                

                    var user = _registrationServices.CreateOwnerUser(model);
                    _registrationServices.UpdateOwnerUserId(model.Email, user.Id);                    

                    _authenticationService.SignIn(user, false);
                    _userEventHandler.LoggedIn(user);
               
                    return Redirect(returnUrl);
                  
                }
                catch
                {
                    const string returnUrl = "/owner/activation-failure";
                    return Redirect(returnUrl);    
                }

            }

            var activationViewModel = new ActivationViewModel()
            {
                Email = model.Email,
                Message = "Your password does not match the registration password, activation failed."
            };

            return View("Activation/Index", activationViewModel);

        }
        public IUser CreateOwnerUser(ActivationViewModel model)
        {           

            var user = _membershipService.CreateUser(new CreateUserParams(model.Email, model.Password, model.Email, null, null, false));
            var roleRecord = _roleService.GetRoleByName("Owner");

            var existingAssociation =
               _userRolesRepository.Get(record => record.UserId == user.Id && record.Role.Id == roleRecord.Id);
            if (existingAssociation == null)
            {
                _userRolesRepository.Create(new UserRolesPartRecord { Role = roleRecord, UserId = user.Id });
            }

            return user;
        }
        public ActionResult Activation(string id)
        {
            Session["OwnerId"] = id;
            var ownerId = QueryStringHelper.Base64ForUrlDecode(HttpUtility.UrlDecode(id));
            var idParts = ownerId.Split('|');

            var activationViewModel = new ActivationViewModel()
            {
                Email = idParts[0],
                Message = "Please confirm your eMail address and password"
            };

            return View("Activation/Index",activationViewModel);
        }