public List <string> GetAvailableRoles(GetAvailableRolesQuery q)
        {
            var result = new List <string>();
            var group  = GroupBLO.Current.GetByKeys(new Group {
                GroupCode = q.GroupCode
            });

            if (group == null)
            {
                return(result);
            }

            var groupUsers = AccountBLO.Current.GetAccountsByGroup(q.GroupCode);

            if (groupUsers.Count(x => x.Role == Constants.Role.SHIFT_HEAD) < 1)
            {
                result.Add(Constants.Role.SHIFT_HEAD);
            }

            if (groupUsers.Count(x => x.Role == Constants.Role.STAFF) < 2)
            {
                result.Add(Constants.Role.STAFF);
            }

            var account = groupUsers.Where(x => x.Username == q.UserName).FirstOrDefault();

            if (account != null)
            {
                result.Add(account.Role);
            }

            return(result);
        }
        public List<string> GetAvailableRoles(GetAvailableRolesQuery q)
        {
            var result = new List<string>();
            var group = GroupBLO.Current.GetByKeys(new Group {GroupCode = q.GroupCode});
            if (group == null)
            {
                return result;
            }

            var groupUsers = AccountBLO.Current.GetAccountsByGroup(q.GroupCode);
            if (groupUsers.Count(x => x.Role == Constants.Role.SHIFT_HEAD) < 1)
            {
                result.Add(Constants.Role.SHIFT_HEAD);
            }

            if (groupUsers.Count(x => x.Role == Constants.Role.STAFF) < 2)
            {
                result.Add(Constants.Role.STAFF);
            }

            var account = groupUsers.Where(x => x.Username == q.UserName).FirstOrDefault();
            if (account != null)
            {
                result.Add(account.Role);
            }

            return result;
        }