//Approve Owner's Application public IActionResult OwnerApprove(int id) { LogRestaurant(); ClaimsPrincipal cp = this.User; var claims = cp.Claims.ToList(); var restId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "RestaurantID").Value); var userId = OwnersManager.GetUserIdByOwnerId(id); var authId = UsersManager.GetAuthIdByUserId(userId); var restaurantOwner = RestaurantsManager.RestaurantByOwnerId(restId, id); restaurantOwner.Request = false; restaurantOwner.Status = "Owner"; restaurantOwner.RequestStatus = "Approved"; restaurantOwner.Active = true; RestaurantsManager.UpdateRestaurantOwner(restaurantOwner); var authRestaurant = UsersManager.GetAuthenticationMatrixByIDs(restId, authId); if (authRestaurant == null) { var authRest = new AuthenticationMatrix { RestaurantId = restId, AuthenticationId = authId, Role = "Ownwer" }; UsersManager.AddOwnerToAuthetication(authRest); } else { authRestaurant.Role = "Ownwer"; UsersManager.UpdateAuthenticationMatrixByIDs(authRestaurant); } return(RedirectToAction("RestaurantOwnersShow")); }
public IActionResult OwnerEdit(OwnerModelView viewOwner) { LogRestaurant(); var userId = OwnersManager.GetUserIdByOwnerId(viewOwner.OwnerId); var authId = UsersManager.GetAuthIdByUserId(userId); var restaurantOwner = RestaurantsManager.RestaurantByOwnerId(viewOwner.RestaurantId, viewOwner.OwnerId); var authMatrix = UsersManager.GetAuthenticationMatrixByIDs(viewOwner.RestaurantId, authId); viewOwner.Status = GetOwnerStatusValue(viewOwner.Status); if (restaurantOwner.Active == false && viewOwner.Active == true) { if (viewOwner.Status == "Owner" || viewOwner.Status == "Primary Owner") { restaurantOwner.RequestStatus = "Approved"; if (authMatrix != null) { authMatrix.Role = "Owner"; UsersManager.UpdateAuthenticationMatrixByIDs(authMatrix); } else { var newAuthMatrix = new AuthenticationMatrix { AuthenticationId = authId, RestaurantId = viewOwner.RestaurantId, Role = "Owner" }; UsersManager.AddOwnerToAuthetication(newAuthMatrix); } } } else { if (restaurantOwner.Active == true && viewOwner.Active == false) { if (viewOwner.Status == "Owner" || viewOwner.Status == "Primary Owner") { authMatrix.Role = "OwnerLeave"; UsersManager.UpdateAuthenticationMatrixByIDs(authMatrix); } else { UsersManager.DeleteAuthMatrixByIds(viewOwner.RestaurantId, authId); } } } restaurantOwner.Status = viewOwner.Status; restaurantOwner.EndDate = viewOwner.EndDate; restaurantOwner.Active = viewOwner.Active; RestaurantsManager.UpdateRestaurantOwner(restaurantOwner); return(RedirectToAction("RestaurantOwnersShow")); }
public async Task <IViewComponentResult> InvokeAsync(int id) { var restaurants = OwnersManager.GetAllRestaurantsByOwnerID(id); var viewRestaurants = restaurants.Select(r => new OwnerModelView { OwnerId = r.OwnerId, Active = r.Active, Status = r.Status, Restaurant = r.Restaurant.RestaurantName, RestaurantId = r.RestaurantId, UserId = r.Owner.UserId, StartDate = (DateTime)r.StartDate, EndDate = r.EndDate, RequestFlag = r.Request, RequestStatus = r.RequestStatus }); return(View(viewRestaurants)); }
public IActionResult OwnerApply(OwnerModelView viewOwner) { LogRestaurant(); bool newOwner = false; ClaimsPrincipal cp = this.User; var claims = cp.Claims.ToList(); var userId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "UserID").Value); var ownId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "OwnerID").Value); if (ownId == 0) { var owner = new Owners { UserId = userId }; OwnersManager.CreateOwner(owner); ownId = OwnersManager.GetOwnerIdByUserId(userId); newOwner = true; } var restaurants = RestaurantsManager.RestaurantsByOwnerId(ownId); bool newRestaurant = true; bool requestFlag = true; string status; string request; foreach (RestaurantOwners rest in restaurants) { if (viewOwner.RestaurantId == rest.RestaurantId) { newRestaurant = false; status = rest.Status; request = rest.RequestStatus; requestFlag = (bool)rest.Request; } } if (newRestaurant) { var restaurantOwner = new RestaurantOwners { OwnerId = ownId, RestaurantId = viewOwner.RestaurantId, RequestStatus = "on Hold", Request = true, Status = "Applicant", Active = false, }; RestaurantsManager.AddOwnerToRestaurant(restaurantOwner); if (newOwner) { TempData["Message"] = "You successfully applied for an Onwership. You need to Login again to upgrade your new credential!!"; TempData["ErrorMessage"] = null; return(RedirectToAction("Logout", "Account")); } else { TempData["Message"] = "You successfully applied for an Onwership!!"; TempData["ErrorMessage"] = null; return(RedirectToAction("Profile", "Account")); } } else { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!! Your already applied to the Restaurant's ownership or you are one of the Restaurant's owners."; return(RedirectToAction("Profile", "Account")); } }
public IActionResult RestaurantCreate(RestaurantCreateModelView viewRestaurant) { LogRestaurant(); bool newOwner = false; ClaimsPrincipal cp = this.User; var claims = cp.Claims.ToList(); var userId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "UserID").Value); var ownId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "OwnerID").Value); var authId = Convert.ToInt32(claims.SingleOrDefault(p => p.Type == "AuthID").Value); var newRestaurant = RestaurantsManager.GetRestaurantIdByName(viewRestaurant.RestaurantName); if (newRestaurant == 0) { var restaurant = new Restaurants { RestaurantName = viewRestaurant.RestaurantName, }; if (ownId == 0) { var owner = new Owners { UserId = userId }; OwnersManager.CreateOwner(owner); ownId = OwnersManager.GetOwnerIdByUserId(userId); newOwner = true; } int restId = RestaurantsManager.CreateRestaurant(restaurant); var restaurantOwner = new RestaurantOwners { RestaurantId = restId, OwnerId = ownId, Status = "Primary Owner", Active = true, Request = false, RequestStatus = "Accepted", }; RestaurantsManager.AddOwnerToRestaurant(restaurantOwner); var authMatrix = new AuthenticationMatrix { AuthenticationId = authId, RestaurantId = restId, Role = "Owner" }; UsersManager.AddOwnerToAuthetication(authMatrix); if (newOwner) { TempData["Message"] = "You successfully inserted a restaurant in the system. You need to Login again to upgrade your new credential!!"; TempData["ErrorMessage"] = null; return(RedirectToAction("Logout", "Account")); } else { TempData["Message"] = "You successfully inserted a restaurant!!"; TempData["ErrorMessage"] = null; return(RedirectToAction("Profile", "Account")); } } else { TempData["Message"] = null; TempData["ErrorMessage"] = "Sorry!! The Restaurant's name is already registered. Choose another Restaurant's Name."; return(RedirectToAction("RestaurantCreate", "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())); } }
public OwnersController() { ownerManager = new OwnersManager(); }