Beispiel #1
0
        public static IList <GroupBE> GetGroupsByQuery(DreamContext context, out uint totalCount, out uint queryCount)
        {
            uint          limit, offset;
            SortDirection sortDir;
            string        sortFieldString;

            Utils.GetOffsetAndCountFromRequest(context, 100, out limit, out offset, out sortDir, out sortFieldString);

            // Attempt to read the sort field.  If a parsing error occurs, default to undefined.
            GroupsSortField sortField = GroupsSortField.UNDEFINED;

            if (!String.IsNullOrEmpty(sortFieldString))
            {
                try { sortField = SysUtil.ChangeType <GroupsSortField>(sortFieldString); } catch { }
            }
            string groupnamefilter = context.GetParam("groupnamefilter", null);
            uint?  serviceid       = context.GetParam <uint>("authprovider", 0);

            if ((serviceid ?? 0) == 0)
            {
                serviceid = null;
            }
            return(DbUtils.CurrentSession.Groups_GetByQuery(groupnamefilter, serviceid, sortDir, sortField, offset, limit, out totalCount, out queryCount));
        }
Beispiel #2
0
        public IList<GroupBE> Groups_GetByQuery(string groupNameFilter, uint? serviceIdFilter, SortDirection sortDir, GroupsSortField sortField, uint? offset, uint? limit, out uint totalCount, out uint queryCount) {
            List<GroupBE> result = new List<GroupBE>();
            StringBuilder query = new StringBuilder();

            if (groupNameFilter != null) {
                groupNameFilter = "%" + DataCommand.MakeSqlSafe(groupNameFilter) + "%";
            }

            string sortFieldString = null;
            GROUPS_SORT_FIELD_MAPPING.TryGetValue(sortField, out sortFieldString);
            if ((sortFieldString ?? string.Empty).StartsWith("roles.")) {
                    query.Append(@"
left join roles
    on groups.group_role_id = roles.role_id");
                }

            if ((sortFieldString ?? string.Empty).StartsWith("services.")) {
                    query.AppendFormat(@"
left join services
    on groups.group_service_id = services.service_id");
                }
            
            
            if (!string.IsNullOrEmpty(groupNameFilter) || serviceIdFilter != null) {
                query.Append(" where (1=1)");
                if (serviceIdFilter != null) {
                    query.AppendFormat(" AND group_service_id = {0}", serviceIdFilter.Value);
                }

                if (!string.IsNullOrEmpty(groupNameFilter)) {
                    query.AppendFormat(" AND group_name like '{0}'", groupNameFilter);
                }
            }

            if (!string.IsNullOrEmpty(sortFieldString)) {
                query.AppendFormat(" order by {0} ", sortFieldString);
                if (sortDir != SortDirection.UNDEFINED) {
                    query.Append(sortDir.ToString());
                }
            }

            return Groups_GetInternal(query.ToString(), "Groups_GetByQuery", true, limit, offset, out totalCount, out queryCount);
        }
Beispiel #3
0
        public IList <GroupBE> Groups_GetByQuery(string groupNameFilter, uint?serviceIdFilter, SortDirection sortDir, GroupsSortField sortField, uint?offset, uint?limit, out uint totalCount, out uint queryCount)
        {
            List <GroupBE> result = new List <GroupBE>();
            StringBuilder  query  = new StringBuilder();

            if (groupNameFilter != null)
            {
                groupNameFilter = "%" + DataCommand.MakeSqlSafe(groupNameFilter) + "%";
            }

            string sortFieldString = null;

            GROUPS_SORT_FIELD_MAPPING.TryGetValue(sortField, out sortFieldString);
            if ((sortFieldString ?? string.Empty).StartsWith("roles."))
            {
                query.Append(@"
left join roles
    on groups.group_role_id = roles.role_id");
            }

            if ((sortFieldString ?? string.Empty).StartsWith("services."))
            {
                query.AppendFormat(@"
left join services
    on groups.group_service_id = services.service_id");
            }


            if (!string.IsNullOrEmpty(groupNameFilter) || serviceIdFilter != null)
            {
                query.Append(" where (1=1)");
                if (serviceIdFilter != null)
                {
                    query.AppendFormat(" AND group_service_id = {0}", serviceIdFilter.Value);
                }

                if (!string.IsNullOrEmpty(groupNameFilter))
                {
                    query.AppendFormat(" AND group_name like '{0}'", groupNameFilter);
                }
            }

            if (!string.IsNullOrEmpty(sortFieldString))
            {
                query.AppendFormat(" order by {0} ", sortFieldString);
                if (sortDir != SortDirection.UNDEFINED)
                {
                    query.Append(sortDir.ToString());
                }
            }

            return(Groups_GetInternal(query.ToString(), "Groups_GetByQuery", true, limit, offset, out totalCount, out queryCount));
        }
 public IList<GroupBE> Groups_GetByQuery(string groupNameFilter, uint? serviceIdFilter, SortDirection sortDir, GroupsSortField sortField, uint? offset, uint? limit, out uint totalCount, out uint queryCount) {
     Stopwatch sw = Stopwatch.StartNew();
     var ret = _next.Groups_GetByQuery(groupNameFilter, serviceIdFilter, sortDir, sortField, offset, limit, out totalCount, out queryCount);
     LogQuery(CATEGORY_GROUPS, "Groups_GetByQuery", sw, "groupnamefilter", groupNameFilter, "serviceIdFilter", serviceIdFilter, "sortDir", sortDir, "sortField", sortField, "offset", offset, "limit", limit);
     return ret;
 }