Example #1
0
        public IList <EntityVm> GetEntities(DisplayType display, EntityType type,
                                            int pageNumber, int pageSize, bool isDesc,
                                            string searchString, int[] excludeIds)
        {
            var access = GetEntitiesAccess();

            if (access == AccessType.Deny)
            {
                throw new SecurityException("Can't get entites.");
            }

            if (display.Has(DisplayType.My) && CurrentUserRecord == null)
            {
                throw new SecurityException("Can't show my entities without user.");
            }

            IQueryable <EntityRecord> query;

            if (display.Has(DisplayType.All) && display.Has(DisplayType.My))
            {
                query = _entityRepository.Table.WherePublicAndMine(type, CurrentUserRecord.Id);
            }
            else if (display.Has(DisplayType.My))
            {
                query = CurrentUserRecord.Entities.AsQueryable();
            }
            else if (display.Has(DisplayType.All))
            {
                query = _entityRepository.Table.WherePublic(type);
            }
            else
            {
                return(null);
            }

            var result = GetEntities(query, type, pageNumber, pageSize,
                                     isDesc, searchString, excludeIds);

            return(result);
        }