Beispiel #1
0
        public async Task <IEnumerable <BaselineInfo> > GetBaselineInfo(IEnumerable <int> artifactIds, int userId, bool addDrafts = true, int revisionId = int.MaxValue)
        {
            var artifactsPermissions = await ArtifactPermissionsRepository.GetArtifactPermissions(artifactIds, userId);

            var artifactsWithReadPermissions = artifactsPermissions.Where(p => p.Value.HasFlag(RolePermissions.Read)).Select(p => p.Key);
            var itemsRawData = await _itemInfoRepository.GetItemsRawDataCreatedDate(userId, artifactsWithReadPermissions, addDrafts, revisionId);

            return(itemsRawData.Select(i => new BaselineInfo
            {
                ItemId = i.ItemId,
                IsSealed = BaselineRawDataHelper.ExtractIsSelead(i.RawData),
                UtcTimestamp = BaselineRawDataHelper.ExtractTimestamp(i.RawData)
            }).ToList());
        }
Beispiel #2
0
        public async Task <ISet <int> > GetBaselineArtifacts(int baselineId, int userId, bool addDrafts = true, int revisionId = int.MaxValue)
        {
            var itemRawData = (await GetItemsRawData(new List <int> {
                baselineId
            }, userId, addDrafts, revisionId)).SingleOrDefault();

            if (itemRawData != null)
            {
                var rawData = itemRawData.RawData;
                return(BaselineRawDataHelper.ExtractBaselineArtifacts(rawData));
            }

            string errorMessage = I18NHelper.FormatInvariant("Baseline (Id:{0}) is not found.", baselineId);

            throw new ResourceNotFoundException(errorMessage, ErrorCodes.ResourceNotFound);
        }
Beispiel #3
0
        public async Task <int> GetRevisionIdFromBaselineId(int baselineId, int userId, bool addDrafts = true, int revisionId = int.MaxValue)
        {
            var itemRawData = (await GetItemsRawData(new List <int> {
                baselineId
            }, userId, addDrafts, revisionId)).SingleOrDefault();

            if (itemRawData != null)
            {
                var rawData  = itemRawData.RawData;
                var snapTime = BaselineRawDataHelper.ExtractTimestamp(rawData);
                if (snapTime != null)
                {
                    return(await GetRevisionIdByTime(snapTime.Value));
                }

                return(int.MaxValue);
            }

            return(-1);
        }