public async Task <IActionResult> TruckDriverRegisterFacebook(RegisterDTOFacebook userForRegisterDto) { userForRegisterDto.Username = userForRegisterDto.Username.ToLower(); if (await _repo.TruckDriverExists(userForRegisterDto.Username)) { return(BadRequest("User alerady regaistred TruckDriver")); } var TruckDriverCreation = new TruckDriver { Id = userForRegisterDto.id, Username = userForRegisterDto.Username, Email = userForRegisterDto.Email, BirthDate = userForRegisterDto.BirthDate, JobNumber = userForRegisterDto.JobNumber, NationalId = userForRegisterDto.NationalId, PhoneNumber = userForRegisterDto.PhoneNumber, AdministratorID = 1 }; var createdUser = await _repo.TruckDriverRegFacebook(TruckDriverCreation); var userFromRepo = await _repo.TruckDriverLoginFacebook(userForRegisterDto.Email.ToLower()); var clamis = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo.Username) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(clamis), Expires = DateTime.Now.AddDays(365), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(Ok(new { token = tokenHandler.WriteToken(token), })); }
public async Task <IActionResult> AdminRegisterFacebook(RegisterDTOFacebook userForRegisterDto) { if (userForRegisterDto.Email == null) { userForRegisterDto.Email = userForRegisterDto.Username + "@gmail.com"; } userForRegisterDto.Username = userForRegisterDto.Username.ToLower(); if (await _repo.AdminExists(userForRegisterDto.Username)) { var userFromRepo = await _repo.AdminLoginFacebook(userForRegisterDto.Username.ToLower()); if (userFromRepo == null) { return(Unauthorized()); } var clamis = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo.Username) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(clamis), Expires = DateTime.Now.AddDays(365), SigningCredentials = creds }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); var getUser2 = (from pd in _context.Administrator where pd.Username == userForRegisterDto.Username select new { pd.Id, pd.Username, pd.Email }).FirstOrDefault(); return(Ok(new { uInfo = getUser2, token = tokenHandler.WriteToken(token) })); } var AdminCreation = new Administrator { Username = userForRegisterDto.Username, Email = userForRegisterDto.Email, BirthDate = userForRegisterDto.BirthDate, JobNumber = userForRegisterDto.JobNumber, NationalId = userForRegisterDto.NationalId, PhoneNumber = userForRegisterDto.PhoneNumber, TotalFlourMillPayment = userForRegisterDto.TotalFlourMillPayment }; var createdUser = await _repo.AdminRegFacebook(AdminCreation); var getUser = (from pd in _context.Administrator where pd.Username == userForRegisterDto.Username select new { pd.Id, pd.Username, pd.Email }).FirstOrDefault(); var userFromRepo2 = await _repo.AdminLoginFacebook(userForRegisterDto.Username.ToLower()); if (userFromRepo2 == null) { return(Unauthorized()); } var clamis2 = new[] { new Claim(ClaimTypes.NameIdentifier, userFromRepo2.Id.ToString()), new Claim(ClaimTypes.Name, userFromRepo2.Username) }; var key2 = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config.GetSection("AppSettings:Token").Value)); var creds2 = new SigningCredentials(key2, SecurityAlgorithms.HmacSha512Signature); var tokenDescriptor2 = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(clamis2), Expires = DateTime.Now.AddDays(365), SigningCredentials = creds2 }; var tokenHandler2 = new JwtSecurityTokenHandler(); var token2 = tokenHandler2.CreateToken(tokenDescriptor2); return(Ok(new { uInfo = getUser, token = tokenHandler2.WriteToken(token2) })); }