public async Task <IHttpActionResult> AddUser(CreateUserBindingModel model)
        {
            //return Ok("hello world.");

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //FogToken t = await FogAddUser(model, Helper.FogRegisterURL);

            //if (null == t)
            //    return BadRequest(ModelState);

            FogToken t = await FogCheck(model);

            if (null == t)
            {
                return(BadRequest(ModelState));
            }

            var user = new AppUser()
            {
                UserName = model.Username,
                Email    = "[email protected]",
                //FirstName = createUserModel.FirstName,
                //LastName = createUserModel.LastName,
                //Level = 3,
                //JoinDate = DateTime.Now.Date,
                UserToken = t.user_token,
                UserKey   = t.user_id //////id is right?
            };

            IdentityResult addUserResult = await this.AppUserManager.CreateAsync(user, model.Password);

            if (!addUserResult.Succeeded)
            {
                return(GetErrorResult(addUserResult));
            }



            //string code = await this.AppUserManager.GenerateEmailConfirmationTokenAsync(user.Id);

            //var callbackUrl = new Uri(Url.Link("ConfirmEmailRoute", new { userId = user.Id, code = code }));

            //await this.AppUserManager.SendEmailAsync(user.Id,
            //                                        "Confirm your account",
            //                                        "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

            //Uri locationHeader = new Uri(Url.Link("GetUserById", new { id = user.Id }));

            UserToken u = CreateToken(model.Username, model.Password);

            u.fog_user_id    = t.user_id;
            u.fog_user_token = t.user_token;

            return(Ok(u));
        }
        public async Task <IHttpActionResult> ResetPassword(CreateUserBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            FogToken t = await FogAddUser(model, Helper.FOGRESETPASSWORDURL);

            if (null == t)
            {
                return(BadRequest(ModelState));
            }

            var user = await AppUserManager.FindByNameAsync(model.Username);

            if (null == user)
            {
                return(BadRequest());
            }

            string resetToken = await AppUserManager.GeneratePasswordResetTokenAsync(user.Id);

            IdentityResult result = await AppUserManager.ResetPasswordAsync(user.Id, resetToken, model.Password);

            if (null == result)
            {
                return(BadRequest());
            }

            t = await FogCheck(model);

            if (null == t)
            {
                return(BadRequest(ModelState));
            }

            if (!user.UserToken.Equals(t.user_token) || !user.UserKey.Equals(t.user_id))
            {
                user.UserToken = t.user_token;
                user.UserKey   = t.user_id;
                IdentityResult x = await AppUserManager.UpdateAsync(user);

                if (null == x)
                {
                    return(BadRequest());
                }
            }

            UserToken u = CreateToken(model.Username, model.Password);

            u.fog_user_id    = t.user_id;
            u.fog_user_token = t.user_token;

            return(Ok(u));
        }
        public async Task <IHttpActionResult> Login(CreateUserBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            FogToken t = await FogCheck(model);

            if (null == t)
            {
                return(BadRequest(ModelState));
            }

            var user = await AppUserManager.FindByNameAsync(model.Username);

            if (null == user)
            {
                return(BadRequest());
            }

            if (!user.UserToken.Equals(t.user_token) || !user.UserKey.Equals(t.user_id))
            {
                user.UserToken = t.user_token;
                user.UserKey   = t.user_id;
                IdentityResult x = await AppUserManager.UpdateAsync(user);

                if (null == x)
                {
                    return(BadRequest());
                }
            }

            UserToken u = CreateToken(model.Username, model.Password);

            u.fog_user_id    = t.user_id;
            u.fog_user_token = t.user_token;

            EZResponse <EZAccessToken> token = await EZCheck("13701308059");

            if (token != null)
            {
                u.ez_accessToken = token.result.data.accessToken;
                u.ez_userId      = token.result.data.userId;
            }

            return(Ok(u));
        }
 public void addFogToken(FogToken f)
 {
     fogTokens.Add(f, f.getLocation());
 }