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)
            }));
        }