// Function to chek role exist on the
 /// <summary>
 /// Checks the role exist.
 /// </summary>
 /// <param name="Id">The identifier.</param>
 /// <returns></returns>
 public ActionResult CheckRoleExist(int Id)
 {
     using (var objUserRoleBal = new UserRoleBal())
     {
         var result = objUserRoleBal.CheckRoleExist(Id);
         return(Json(result));
     }
 }
        /// <summary>
        /// Gets the user roles by user identifier.
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="corporateId"></param>
        /// <param name="facilityId"></param>
        /// <returns></returns>
        public ActionResult GetUserRolesByUserId(int userId, int corporateId, int facilityId)
        {
            var objUserRoleBal = new UserRoleBal();
            var objlstUserRole = new List <UserRole>();

            //objlstUserRole = objUserRoleBal.GetUserRolesByUserID(UserID);
            objlstUserRole = objUserRoleBal.GetUserRolesByCorporateFacilityAndUserId(userId, corporateId, facilityId);
            return(Json(objlstUserRole));
        }
        //private List<UsersCustomModel> GetUserCustom(List<Users> users)
        //{
        //    List<UsersCustomModel> lstUsers = new List<UsersCustomModel>();
        //    lstUsers = (from y in users
        //                select new UsersCustomModel
        //                {
        //                    CurrentUser = y,
        //                    UserID = y.UserID,
        //                    CountryID = y.CountryID,
        //                    StateID = y.StateID,
        //                    CityID = y.CityID,
        //                    UserGroup = y.UserGroup,
        //                    UserName = y.UserName,
        //                    FirstName = y.FirstName,
        //                    LastName = y.LastName,
        //                    Answer = y.Answer,
        //                    Password = y.Password,
        //                    Address = y.Address,
        //                    Email = y.Email,
        //                    Phone = y.Phone,
        //                    HomePhone = y.HomePhone,
        //                    AdminUser = y.AdminUser,
        //                    IsActive = y.IsActive,
        //                    FailedLoginAttempts = y.FailedLoginAttempts,
        //                    IsDeleted = y.IsDeleted,
        //                    RoleName = GetRoleName(y.UserID),
        //                }).ToList();
        //    return lstUsers;

        //}

        /// <summary>
        /// Gets the name of the role.
        /// </summary>
        /// <param name="userID">The user identifier.</param>
        /// <returns></returns>
        private string GetRoleName(int userID)
        {
            string      RoleName       = string.Empty;
            UserRoleBal objUserRoleBal = new UserRoleBal();
            RoleBal     objRolBal      = new RoleBal();
            var         userRoles      = objUserRoleBal.GetUserRolesByUserId(userID);

            if (userRoles.Count > 0)
            {
                var firstUserRole = userRoles.FirstOrDefault();
                RoleName = objRolBal.GetRoleById(firstUserRole.RoleID).RoleName;
            }
            return(RoleName);
        }
        /// <summary>
        /// Gets the role identifier.
        /// </summary>
        /// <param name="userID">The user identifier.</param>
        /// <returns></returns>
        private int GetRoleId(int userID)
        {
            int         RoleId         = 0;
            UserRoleBal objUserRoleBal = new UserRoleBal();
            RoleBal     objRolBal      = new RoleBal();
            var         userRoles      = objUserRoleBal.GetUserRolesByUserId(userID);

            if (userRoles.Count > 0)
            {
                var firstUserRole = userRoles.FirstOrDefault();
                RoleId = objRolBal.GetRoleById(firstUserRole.RoleID).RoleID;
            }
            return(RoleId);
        }
 /// <summary>
 /// Adds the user role.
 /// </summary>
 /// <param name="objUserRoleList">The object user role list.</param>
 /// <returns></returns>
 public ActionResult AddUserRole(List <UserRole> objUserRoleList)
 {
     try
     {
         var objListUserRole = objUserRoleList.Select(item => new UserRole
         {
             RoleID      = Convert.ToInt32(item.RoleID),
             UserID      = Convert.ToInt32(item.UserID),
             CreatedBy   = Helpers.GetLoggedInUserId(),
             CreatedDate = Helpers.GetInvariantCultureDateTime(),
             IsActive    = true
         }).ToList();
         var objUserRoleBal = new UserRoleBal();
         var updatedId      = objUserRoleBal.AddUpdateUserRole(objListUserRole);
         return(Json(updatedId));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        /// <summary>
        /// Gets the user roles.
        /// </summary>
        /// <param name="userid">The userid.</param>
        /// <returns></returns>
        private List <RoleSelectionCustomModel> GetUserRoles(int userid)
        {
            var userroleList = new List <RoleSelectionCustomModel>();
            var userroleBal  = new UserRoleBal();
            var roleBal      = new RoleBal();
            var facilityRole = new FacilityRoleBal();
            var facility     = new FacilityBal();
            var roles        = userroleBal.GetUserRolesByUserId(userid);

            foreach (var role in roles)
            {
                var roleFacilityIds = facilityRole.GetFacilityRolesByRoleId(role.RoleID);
                userroleList.AddRange(roleFacilityIds.Select(rolefacility => new RoleSelectionCustomModel
                {
                    RoleId       = role.RoleID,
                    RoleName     = roleBal.GetRoleNameById(role.RoleID),
                    FacilityName = facility.GetFacilityNameById(rolefacility.FacilityId),
                    FacilityId   = rolefacility.FacilityId,
                    CorporateId  = rolefacility.CorporateId
                }));
            }
            return(userroleList);
        }