コード例 #1
0
        //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"));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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"));
            }
        }
コード例 #5
0
        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"));
            }
        }
コード例 #6
0
 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()));
     }
 }
コード例 #7
0
 public OwnersController()
 {
     ownerManager = new OwnersManager();
 }