public IActionResult EmployeeApply(EmployeeModelView viewEmployee) { LogRestaurant(); bool newEmployee = false; ClaimsPrincipal cp = this.User; var claims = cp.Claims.ToList(); var userId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "UserID").Value); var empId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "EmployeeID").Value); if (empId == 0) { var employee = new Employees { UserId = userId }; EmployeesManager.CreateEmployee(employee); empId = EmployeesManager.GetEmployeeIdByUserId(userId); newEmployee = true; } var restaurants = RestaurantsManager.RestaurantsByEmployeeId(empId); bool newRestaurant = true; bool requestFlag = true; string status; string request; foreach (RestaurantEmployees rest in restaurants) { if (viewEmployee.RestaurantId == rest.RestaurantId) { newRestaurant = false; status = rest.Status; request = rest.RequestStatus; requestFlag = (bool)rest.NewRequestFlag; } } if (newRestaurant) { var restaurantEmployee = new RestaurantEmployees { EmployeeId = empId, RestaurantId = viewEmployee.RestaurantId, RequestStatus = "on Hold", NewRequestFlag = true, Status = "Applicant", Active = false, }; RestaurantsManager.AddEmployeeToRestaurant(restaurantEmployee); if (newEmployee) { TempData["Message"] = "You successfully applied for a position in a Restaurant. You need to Login again to upgrade your new credential!!"; TempData["ErrorMessage"] = null; return(RedirectToAction("Logout", "Account")); } else { TempData["Message"] = "You successfully applied for a position in a Restaurant!!"; TempData["ErrorMessage"] = null; return(RedirectToAction("Profile", "Account")); } } else { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!! Your already applied to the Restaurant's position"; return(RedirectToAction("Profile", "Account")); } }
public async Task <IActionResult> LoginAsync(RestaurantLoginModelView authView) { TempData["RestaurantName"] = null; if (authView.Type == 0) { var user = UsersManager.Authenticate(authView.Username, authView.Password); if (user == null) { TempData["Message"] = null; TempData["ErrorMessage"] = "Login Error!!!.Try Again. Don't forget to Register first!!"; return(RedirectToAction("Login", "Account")); } var custId = CustomersManager.GetCustomerIdByUserId(user.UserId); var empId = EmployeesManager.GetEmployeeIdByUserId(user.UserId); var ownId = OwnersManager.GetOwnerIdByUserId(user.UserId); var claims = new List <Claim>() { new Claim(ClaimTypes.Name, user.Authentication.Username), new Claim("FullName", $"{user.FirstName} {user.LastName}"), new Claim("AuthID", user.AuthenticationId.ToString()), new Claim("UserID", user.UserId.ToString()), new Claim("CustomerID", custId.ToString()), new Claim("EmployeeID", empId.ToString()), new Claim("OwnerID", ownId.ToString()), }; var claimsIdentity = new ClaimsIdentity(claims, "Cookies"); await HttpContext.SignInAsync("Cookies", new ClaimsPrincipal(claimsIdentity)); } else { var user = RestaurantsManager.AuthenticateRestaurant(authView.Username, authView.Password, authView.RestaurantId); if (user.UserId <= 0) { TempData["Message"] = null; TempData["ErrorMessage"] = "Login Error!!!.Try Again.Don't forget to Register first!!"; return(RedirectToAction("Login", "Account")); } var custId = CustomersManager.GetCustomerIdByUserId(user.UserId); var empId = EmployeesManager.GetEmployeeIdByUserId(user.UserId); var ownId = OwnersManager.GetOwnerIdByUserId(user.UserId); var claims = new List <Claim>() { new Claim(ClaimTypes.Name, user.Authentication.Username), new Claim("FullName", $"{user.FirstName} {user.LastName}"), new Claim("AuthID", user.AuthenticationId.ToString()), new Claim("UserID", user.UserId.ToString()), new Claim("CustomerID", custId.ToString()), new Claim("EmployeeID", empId.ToString()), new Claim("OwnerID", ownId.ToString()), }; if (user.Authentication.AuthenticationMatrix.Count() > 0) { foreach (AuthenticationMatrix a in user.Authentication.AuthenticationMatrix) { if (a.RestaurantId == authView.RestaurantId) { claims.Add(new Claim("RestaurantID", a.RestaurantId.ToString())); claims.Add(new Claim(ClaimTypes.Role, a.Role)); TempData["RestaurantName"] = RestaurantsManager.GetRestaurantIdByNameByRestauranID(a.RestaurantId); } } } var claimsIdentity = new ClaimsIdentity(claims, "Cookies"); await HttpContext.SignInAsync("Cookies", new ClaimsPrincipal(claimsIdentity)); } if (TempData["returnUrl"] == null) { return(Redirect("~/Account/Profile")); } else { return(Redirect(TempData["returnUrl"].ToString())); } }