public string Login(LoginDTO loginDTO)
        {
            var cryptoPassword = CryptoPassword.GetSha(loginDTO.Password);
            var user           = _context.Users.FirstOrDefault(x => x.Email == loginDTO.Email && x.Password == cryptoPassword);

            if (user == null)
            {
                throw new ServiceException(ExceptionMessages.USER_NOT_FOUND);
            }
            if (!user.IsActive)
            {
                throw new ServiceException(ExceptionMessages.USER_NOT_ACTIVE);
            }

            var tokenHandler = new JwtSecurityTokenHandler();
            var tokenKey     = this._configuration.GetValue <string>("Token_Key");
            var tokenKeyByte = Encoding.ASCII.GetBytes(tokenKey);
            SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor()
            {
                Subject = new ClaimsIdentity(new Claim[] {
                    new Claim("Name", user.Name),
                    new Claim("Surname", user.Surname),
                    new Claim("Email", user.Email),
                    new Claim("Id", Convert.ToString(user.Id)),
                }),
                Expires            = DateTime.UtcNow.AddHours(24),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(tokenKeyByte), SecurityAlgorithms.HmacSha512)
            };
            var    securityToken = tokenHandler.CreateToken(tokenDescriptor);
            string token         = tokenHandler.WriteToken(securityToken);

            return(token);
        }
        public void Register(RegisterDTO registerDTO)
        {
            User user = new User
            {
                Name            = registerDTO.Name,
                Surname         = registerDTO.Surname,
                Email           = registerDTO.Email,
                Password        = CryptoPassword.GetSha(registerDTO.Password),
                UpdatedDate     = null,
                ConfirmationKey = CryptoPassword.GetSha(registerDTO.Email),
                IsActive        = false
            };

            _context.Users.Add(user);
            _context.SaveChanges();


            string bodyHtml = $"<html> <head> <body>  Üyeliğiniz aktif olması için <a href=http://localhost:5000/api/User/userActivate?confirmationKey={user.ConfirmationKey}&mail={user.Email}> bu </a> linke tıklayınız  </body>  </head>  </html> ";
            string subject  = "USER-ACTIVATION";

            this.sendEmail(bodyHtml, subject, user.Email);
        }