Esempio n. 1
0
        /// <summary>
        /// Kullanıcı giriş servisi
        /// </summary>
        /// <param name="userModel"></param>
        /// <returns></returns>
        public Token Login(UserModel userModel)
        {
            using var uow = new UnitOfWork <MasterContext>();

            var user = uow.GetRepository <UserModel>()
                       .GetAll(x => x.UserName.Equals(userModel.UserName, StringComparison.OrdinalIgnoreCase) &&
                               x.Password.Equals(CryptoExtensions.Encrypt(userModel.Password))).FirstOrDefault();

            if (user != null)
            {
                //Token üretiliyor.
                var token = TokenHandler.Instance.CreateAccessToken(user);
                token.UserTokenDto = ObjectMapper.Map <UserTokenDto>(user);

                //Refresh token Users tablosuna işleniyor.
                user.RefreshToken        = token.RefreshToken;
                user.AccessToken         = token.AccessToken;
                user.RefreshTokenEndDate = token.Expiration;

                uow.GetRepository <UserModel>().Update(user);
                uow.SaveChanges();

                return(token);
            }
            return(null);
        }