示例#1
0
 public ResourceBE GetResource(uint? parentId, ResourceBE.ParentType? parentType, ResourceBE.Type resourceType, string name, DeletionFilter deletionStateFilter) {
     if(name == null) {
         throw new ArgumentNullException("name");
     }
     uint[] parentids = parentId == null ? new uint[] { } : new[] { parentId.Value };
     return GetResources(parentids, parentType, new[] { resourceType }, new[] { name }, deletionStateFilter, null, null, null).FirstOrDefault();
 }
示例#2
0
            public ResourceQuery WithDeletionFilter(DeletionFilter deletionFilter)
            {
                State s = new State(_state);

                s.resourceDeletionFilter = deletionFilter;
                return(new ResourceQuery(s));
            }
示例#3
0
                // -- Constructors --
                public State() {
                    resourceRevision = ResourceBE.HEADREVISION;
                    resourceDeletionFilter = DeletionFilter.ANY;

                    changeType = ResourceBE.ChangeOperations.UNDEFINED;
                    populateContent = true;
                }
示例#4
0
 public State(State s) {
     resourceRevision = s.resourceRevision;
     resourceDeletionFilter = s.resourceDeletionFilter;
     populateContent = s.populateContent;
     populateRevisions = s.populateRevisions;
     populateResourceCountOnly = s.populateResourceCountOnly;
     parentType = s.parentType;
     if(!ArrayUtil.IsNullOrEmpty(s.resourceIds)) {
         resourceIds = new List<uint>(s.resourceIds);
     }
     if(!ArrayUtil.IsNullOrEmpty(s.parentIds)) {
         parentIds = new List<uint>(s.parentIds);
     }
     if(!ArrayUtil.IsNullOrEmpty(s.resourceTypes)) {
         resourceTypes = new List<ResourceBE.Type>(s.resourceTypes);
     }
     if(!ArrayUtil.IsNullOrEmpty(s.nameFilter)) {
         nameFilter = new List<string>(s.nameFilter);
     }
     if(!ArrayUtil.IsNullOrEmpty(s.orderClauses)) {
         orderClauses = (ResourceOrderClause[])s.orderClauses.Clone();
     }
     if(!ArrayUtil.IsNullOrEmpty(s.changeSetId)) {
         changeSetId = new List<uint>(s.changeSetId).ToArray();
     }
     changeType = s.changeType;
     limit = s.limit;
     offset = s.offset;
 }
示例#5
0
                // -- Constructors --
                public State()
                {
                    resourceRevision       = ResourceBE.HEADREVISION;
                    resourceDeletionFilter = DeletionFilter.ANY;

                    changeType      = ResourceBE.ChangeOperations.UNDEFINED;
                    populateContent = true;
                }
        public List <ActualDataEntity> GetDeletions()
        {
            var deletions = DeletionFilter.GetDeletions(Parameters, DataContext);

            var groupedDeletions = from res in deletions
                                   group res by new { res.RepDate.Date, res.RepDate.Hour }
            into groupedRes
            orderby groupedRes.Key.Date, groupedRes.Key.Hour
                select new ActualDataEntity
            {
                Day    = groupedRes.Key.Date,
                Hour   = groupedRes.Key.Hour,
                Number = groupedRes.Sum(d => d.Value)
            };

            var returned = groupedDeletions.ToList();

            return(returned);
        }
示例#7
0
                // -- Constructors --
                public State() {
                    resourceBE = ResourceBE.New(ResourceBE.Type.UNDEFINED);
                    resourceDeletionFilter = DeletionFilter.ANY;
                    revisionVisibilityFilter = VisibilityFilter.ANY;
                    resourceIds = null;
                    nameFilter = null;
                    parentIds = null;
                    parentType = ResourceBE.Type.UNDEFINED;
                    resourceTypes = null;
                    changeSetId = null;
                    changeType = ResourceBE.ChangeOperations.UNDEFINED;

                    populateResourceCountOnly = false;
                    populateContent = true;
                    populateRevisions = false;
                    populateChildResourcesForRev = false;
                    populateChildResources = false;
                    orderClauses = null;
                    limit = null;
                    offset = null;
                }
示例#8
0
 public State(State s)
 {
     resourceRevision          = s.resourceRevision;
     resourceDeletionFilter    = s.resourceDeletionFilter;
     populateContent           = s.populateContent;
     populateRevisions         = s.populateRevisions;
     populateResourceCountOnly = s.populateResourceCountOnly;
     parentType = s.parentType;
     if (!ArrayUtil.IsNullOrEmpty(s.resourceIds))
     {
         resourceIds = new List <uint>(s.resourceIds);
     }
     if (!ArrayUtil.IsNullOrEmpty(s.parentIds))
     {
         parentIds = new List <uint>(s.parentIds);
     }
     if (!ArrayUtil.IsNullOrEmpty(s.resourceTypes))
     {
         resourceTypes = new List <ResourceBE.Type>(s.resourceTypes);
     }
     if (!ArrayUtil.IsNullOrEmpty(s.nameFilter))
     {
         nameFilter = new List <string>(s.nameFilter);
     }
     if (!ArrayUtil.IsNullOrEmpty(s.orderClauses))
     {
         orderClauses = (ResourceOrderClause[])s.orderClauses.Clone();
     }
     if (!ArrayUtil.IsNullOrEmpty(s.changeSetId))
     {
         changeSetId = new List <uint>(s.changeSetId).ToArray();
     }
     changeType = s.changeType;
     limit      = s.limit;
     offset     = s.offset;
 }
示例#9
0
 public ResourceBE GetPageAttachment(ulong pageId, string filename, DeletionFilter deletionFilter) {
     return _resourceBL.GetResource((uint)pageId, ResourceBE.ParentType.PAGE, ResourceBE.Type.FILE, filename, deletionFilter);
 }
示例#10
0
 public ResourceBE GetPageAttachment(ulong pageId, string filename, DeletionFilter deletionFilter)
 {
     return(_resourceBL.GetResource((uint)pageId, ResourceBE.ParentType.PAGE, ResourceBE.Type.FILE, filename, deletionFilter));
 }
示例#11
0
 public IList<ResourceBE> Resources_GetByQuery(IList<uint> parentIds, ResourceBE.Type parentType, IList<ResourceBE.Type> resourceTypes, IList<string> names, DeletionFilter deletionStateFilter, bool? populateRevisions, uint? offset, uint? limit) {
     ResourceQuery rq = new ResourceQuery();
     rq = rq.WithParent(parentIds, parentType);
     rq = rq.WithResourceType(resourceTypes);
     rq = rq.WithNames(names);
     rq = rq.WithDeletionFilter(deletionStateFilter);
     rq = rq.IncludeRevisions(populateRevisions ?? false);
     rq = rq.Limit(limit);
     rq = rq.Offset(offset);
     rq = rq.OrderBy(ResourceQuery.ResourceOrderClause.SortTable.RESOURCES, "res_id", SortDirection.ASC);
     return rq.SelectList(Catalog, "Resources_Get");
 }
示例#12
0
 //--- Methods ---
 #region ResourceDA query wrappers
 public IList <ResourceBE> GetResources(IList <uint> parentids, ResourceBE.ParentType?parentType, IList <ResourceBE.Type> resourceTypes, IList <string> names, DeletionFilter deletionStateFilter, bool?populateRevisions, uint?limit, uint?offset)
 {
     return(DbUtils.CurrentSession.Resources_GetByQuery(parentids, parentType, resourceTypes, names, deletionStateFilter, populateRevisions, offset, limit));
 }
示例#13
0
        public IList <ResourceBE> Resources_GetByQuery(IList <uint> parentIds, ResourceBE.ParentType?parentType, IList <ResourceBE.Type> resourceTypes, IList <string> names, DeletionFilter deletionStateFilter, bool?populateRevisions, uint?offset, uint?limit)
        {
            ResourceQuery rq = new ResourceQuery();

            rq = rq.WithParent(parentIds, parentType);
            rq = rq.WithResourceType(resourceTypes);
            rq = rq.WithNames(names);
            rq = rq.WithDeletionFilter(deletionStateFilter);
            rq = rq.IncludeRevisions(populateRevisions ?? false);
            rq = rq.Limit(limit);
            rq = rq.Offset(offset);
            rq = rq.OrderBy(ResourceQuery.ResourceOrderClause.SortTable.RESOURCES, "res_id", SortDirection.ASC);
            return(rq.SelectList(Catalog, "Resources_Get"));
        }
示例#14
0
 public IList <ResourceBE> GetResources(uint?parentId, ResourceBE.ParentType parentType, IList <ResourceBE.Type> resourceTypes, string[] names, DeletionFilter deletionStateFilter)
 {
     uint[] parentids = parentId == null ? new uint[] { } : new[] { parentId.Value };
     return(GetResources(parentids, parentType, resourceTypes, names, deletionStateFilter, null, null, null));
 }
示例#15
0
 public ResourceBE GetResource(uint?parentId, ResourceBE.ParentType?parentType, ResourceBE.Type resourceType, string name, DeletionFilter deletionStateFilter)
 {
     if (name == null)
     {
         throw new ArgumentNullException("name");
     }
     uint[] parentids = parentId == null ? new uint[] { } : new[] { parentId.Value };
     return(GetResources(parentids, parentType, new[] { resourceType }, new[] { name }, deletionStateFilter, null, null, null).FirstOrDefault());
 }
示例#16
0
        private ResourceBE GetAttachmentFromUrl(DreamContext context, bool mustExist, out PageBE page, bool allowRevs, bool allowDeleted)
        {
            ResourceBE file     = null;
            int        revision = ResourceBE.HEADREVISION;

            page = null;
            string revStr = DreamContext.Current.GetParam("revision", "head").Trim();

            if (allowRevs)
            {
                if (!StringUtil.EqualsInvariantIgnoreCase(revStr, "head") && !StringUtil.EqualsInvariantIgnoreCase(revStr, "0"))
                {
                    if (!int.TryParse(revStr, out revision))
                    {
                        throw new RevisionHeadOrIntInvalidArgumentException();
                    }
                }
            }
            else if (!StringUtil.EqualsInvariantIgnoreCase(revStr, "head") && !StringUtil.EqualsInvariantIgnoreCase(revStr, "0"))
            {
                throw new AttachmentUnsupportedRevisionInvalidArgumentException();
            }

            uint fileId = DreamContext.Current.GetParam <uint>("fileid", 0);

            if (fileId != 0)
            {
                uint resourceId = ResourceMapBL.GetResourceIdByFileId(fileId) ?? 0;
                if (resourceId > 0)
                {
                    // use resourceid to retrieve attachment
                    file = ResourceBL.Instance.GetResourceRevision(resourceId, revision);
                }
                if (file != null)
                {
                    page = PageBL.GetPageById(file.ParentPageId.Value);
                }
            }
            else
            {
                // use filename to retrieve attachment
                string fileName = GetFilenameFromPathSegment(DreamContext.Current.GetParam <string>("filename"));
                page = PageBL_GetPageFromUrl(context, true);
                DeletionFilter deleteFilter = allowDeleted ? DeletionFilter.ANY : DeletionFilter.ACTIVEONLY;
                file = AttachmentBL.Instance.GetPageAttachment(page.ID, fileName, deleteFilter);
                if (revision != ResourceBE.HEADREVISION)
                {
                    file = ResourceBL.Instance.GetResourceRevision(file.ResourceId, revision);
                }
            }
            if (file == null)
            {
                if (mustExist)
                {
                    throw new AttachmentNotFoundException();
                }
            }
            else
            {
                if (!allowDeleted)
                {
                    if (file.ResourceIsDeleted || page == null)
                    {
                        // TODO (maxm): Throw a 404 status if file is not marked as deleted but the parent page cannot be found.
                        // This may be caused by an unfinished page delete operation that didn't mark the file as deleted.
                        throw new AttachmentRemovedNotFoundException();
                    }
                }
            }

            return(file);
        }
示例#17
0
 //--- Methods ---
 #region ResourceDA query wrappers
 public IList<ResourceBE> GetResources(IList<uint> parentids, ResourceBE.ParentType? parentType, IList<ResourceBE.Type> resourceTypes, IList<string> names, DeletionFilter deletionStateFilter, bool? populateRevisions, uint? limit, uint? offset) {
     return DbUtils.CurrentSession.Resources_GetByQuery(parentids, parentType, resourceTypes, names, deletionStateFilter, populateRevisions, offset, limit);
 }
示例#18
0
 public ResourceQuery WithDeletionFilter(DeletionFilter deletionFilter) {
     State s = new State(_state);
     s.resourceDeletionFilter = deletionFilter;
     return new ResourceQuery(s);
 }
示例#19
0
 public IList<ResourceBE> GetResources(uint? parentId, ResourceBE.ParentType parentType, IList<ResourceBE.Type> resourceTypes, string[] names, DeletionFilter deletionStateFilter) {
     uint[] parentids = parentId == null ? new uint[] { } : new[] { parentId.Value };
     return GetResources(parentids, parentType, resourceTypes, names, deletionStateFilter, null, null, null);
 }
示例#20
0
 public IList<ResourceBE> Resources_GetByQuery(IList<uint> parentIds, ResourceBE.ParentType? parentType, IList<ResourceBE.Type> resourceTypes, IList<string> names, DeletionFilter deletionStateFilter, bool? populateRevisions, uint? offset, uint? limit) {
     Stopwatch sw = Stopwatch.StartNew();
     var ret = _next.Resources_GetByQuery(parentIds, parentType, resourceTypes, names, deletionStateFilter, populateRevisions, offset, limit);
     LogQuery(CATEGORY_RESOURCE, "Resources_GetByQuery", sw, "parentIds", parentIds, "parentType", parentType, "resourceTypes", resourceTypes, "names", names, "deletionStateFilter", deletionStateFilter, "populateRevisions", populateRevisions, "offset", offset, "limit", limit);
     return ret;
 }