private CustomEmployee authenticateUser(CustomEmployee credentials) { CustomEmployee employee = null; employee = _dbOperations.checkUser(credentials); return(employee); }
public IActionResult Post(CustomEmployee model) { var countryId = from c in db.Country where c.country_name == model.country_name select c.id; if (model.id != 0) { Employee employee = db.Employees.Where(x => x.id == model.id).FirstOrDefault(); employee.name = model.name; employee.job_title = model.job_title; employee.gender = model.gender; employee.email = model.email; employee.phone_no = model.phone_no; employee.address = model.address; employee.country_id = countryId.FirstOrDefault(); db.SaveChanges(); return(Ok(2)); } else { Employee employee = new Employee(); employee.name = model.name; employee.job_title = model.job_title; employee.gender = model.gender; employee.email = model.email; employee.phone_no = model.phone_no; employee.address = model.address; employee.country_id = countryId.FirstOrDefault(); db.Add(employee); db.SaveChanges(); return(Ok(1)); } }
//insert data, will be hit by Signup Page public Boolean insertData(CustomEmployee employeeDetails) { try { EmployeeDetails employee = new EmployeeDetails() { EmpName = employeeDetails.EmpName, Username = employeeDetails.Username, EmpPhone = employeeDetails.EmpPhone, EmpAddress = employeeDetails.EmpAddress, EmpRole = employeeDetails.EmpRole, EmpPassword = employeeDetails.EmpPassword, EmpProjectId = employeeDetails.EmpProjectId, AdminFlag = employeeDetails.AdminFlag, EmpFlag = employeeDetails.EmpFlag }; _employeesContext.EmployeeDetails.Add(employee); _employeesContext.SaveChanges(); return(true); } catch (SqlException sqle) { return(false); } }
public IActionResult Signup([FromBody] CustomEmployee employeeDetails) { if (_dataBaseOperations.insertData(employeeDetails)) { return(Ok("Inserted")); } else { return(Ok("Some Error Occured")); } }
public IActionResult logIn([FromBody] CustomEmployee customEmployee) { IActionResult response = Unauthorized(); var user = authenticateUser(customEmployee); if (user != null) { var tokenString = GenerateJSONWebToken(user); response = Ok(new { token = tokenString }); } return(response); }
public IActionResult getAll([FromBody] CustomEmployee customEmployee) { List <CustomEmployee> employees = _iDbOperations.getAllEmployees(customEmployee.JwT); if (employees != null) { return(Ok(employees)); } else { return(Unauthorized()); } }
private string GenerateJSONWebToken(CustomEmployee loginInfo) { var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"])); var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256); var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, _config["Jwt:Issuer"]), new Claim(JwtRegisteredClaimNames.Iat, DateTime.UtcNow.ToString()), new Claim("UserName", loginInfo.Username), new Claim("EmpName", loginInfo.EmpName), new Claim("EmpPhone", loginInfo.EmpPhone), new Claim("EmpRole", loginInfo.EmpRole) }; var token = new JwtSecurityToken(_config["Jwt:Issuer"], _config["Jwt:Issuer"], claims, expires: DateTime.Now.AddMinutes(120), signingCredentials: credentials); return(new JwtSecurityTokenHandler().WriteToken(token)); }
//Checks user credentials, returns the object containing details of employee if it exists public CustomEmployee checkUser(CustomEmployee customEmployee) { CustomEmployee employee = null; EmployeeDetails tempEmployee = _employeesContext.EmployeeDetails.Where(x => x.Username == customEmployee.Username && x.EmpPassword == customEmployee.EmpPassword).FirstOrDefault(); if (tempEmployee != null) { employee = new CustomEmployee { //EmpName, EMpPhone etc... is stored in my Database, and if I change it now then, I have to //perform the scaffolding again. I'll take care of these conventions from now. //SORRY ! EmpName = tempEmployee.EmpName, Username = tempEmployee.Username, EmpPhone = tempEmployee.EmpPhone, EmpRole = tempEmployee.EmpRole, EmpProjectId = tempEmployee.EmpProjectId, EmpFlag = tempEmployee.EmpFlag, AdminFlag = tempEmployee.AdminFlag }; return(employee); } return(employee); }