示例#1
0
        public async Task <IntegrationRevisionReadListResponse> GetIntegrationRevisions(IntegrationRevisionReadListRequest request)
        {
            var response = new IntegrationRevisionReadListResponse();

            var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId);

            var integration = await _integrationRepository.Select(x => x.Uid == request.IntegrationUid);

            if (integration.IsNotExist())
            {
                response.SetInvalidBecauseNotFound("integration");
                return(response);
            }

            var revisions = await _integrationRepository.SelectRevisions(integration.Id);

            for (int i = 0; i < revisions.Count; i++)
            {
                var revision = revisions[i];

                var revisionDto = new RevisionDto <IntegrationDto>();
                revisionDto.Revision     = revision.Revision;
                revisionDto.RevisionedAt = revision.RevisionedAt;

                var user = _cacheManager.GetCachedUser(revision.RevisionedBy);
                revisionDto.RevisionedByUid  = user.Uid;
                revisionDto.RevisionedByName = user.Name;

                revisionDto.Item = _integrationFactory.CreateDtoFromEntity(revision.Entity);

                response.Items.Add(revisionDto);
            }

            response.Status = ResponseStatus.Success;
            return(response);
        }