public async Task <ActionResult> SignIn(SingInViewModelResource signInViewModelResource)
        {
            var response = await authenticationService.SignIn(signInViewModelResource);

            if (response.Success)
            {
                return(Ok(response.Extra));
            }
            else
            {
                return(BadRequest(response.Message));
            }
        }
        public async Task <BaseResponse <AccessToken> > SignIn(SingInViewModelResource singInViewModel)
        {
            // bir nevi login islemi
            ApplicationUser user = await userManager.FindByEmailAsync(singInViewModel.Email);

            if (user != null)
            {
                bool IsUser = await userManager.CheckPasswordAsync(user, singInViewModel.Password);


                if (IsUser)
                {
                    AccessToken accessToken = tokenHandler.CreateAccessToken(user);

                    Claim refreshTokenClaim = new Claim("refreshToken", accessToken.RefreshToken);

                    Claim refreshTokenEndDateClaim = new Claim("refreshTokenEndDate", DateTime.Now.AddMinutes(tokenOptions.RefreshTokenexpiration).ToString());

                    //daha once kullanicin refreshtokin varmi kontrol edecegiz
                    List <Claim> refreshClaimList = userManager.GetClaimsAsync(user).Result.Where(c => c.Type.Contains("refreshToken")).ToList();

                    if (refreshClaimList.Any())
                    {
                        //(user,degistirilecek,yeni olanı kaydetme refresTokenClaim)
                        await userManager.ReplaceClaimAsync(user, refreshClaimList[0], refreshTokenClaim);

                        await userManager.ReplaceClaimAsync(user, refreshClaimList[1], refreshTokenClaim);
                    }
                    else
                    {
                        await userManager.AddClaimsAsync(user, new[] { refreshTokenClaim, refreshTokenEndDateClaim });
                    }
                    return(new BaseResponse <AccessToken>(accessToken));
                }

                return(new BaseResponse <AccessToken>("şifre yanlış"));
            }

            return(new BaseResponse <AccessToken>("Email yanlış"));
        }