Пример #1
0
        public IActionResult NewSnapshot(NewPublicationViewModel viewModel)
        {
            var client = GetSnapshotClient();

            var versionIds = new List <long>();

            foreach (var resource in viewModel.ResourceTypes)
            {
                if (resource.ResourceList != null)
                {
                    versionIds.AddRange(resource.ResourceList.Where(x => x.IsSelected).Select(x => x.ResourceVersionId).ToList());
                }
            }

            var createSnapshotContract = new CreateSnapshotContract
            {
                BookTypes          = viewModel.PublishBookTypes.Where(x => x.IsSelected).Select(x => x.BookType).ToList(),
                DefaultBookType    = viewModel.DefaultBookType,
                ResourceVersionIds = versionIds,
                Comment            = viewModel.Comment,
                ProjectId          = viewModel.ProjectId
            };

            client.CreateSnapshot(createSnapshotContract);
            return(RedirectToAction("Project", "Project", new { id = viewModel.ProjectId }));
        }
Пример #2
0
        public long CreateSnapshot(CreateSnapshotContract data)
        {
            var userId           = m_authenticationManager.GetCurrentUserId();
            var bookTypes        = m_mapper.Map <IList <BookTypeEnum> >(data.BookTypes);
            var defaultBookTypes = m_mapper.Map <BookTypeEnum>(data.DefaultBookType);

            var projectInfo     = m_projectRepository.InvokeUnitOfWork(x => x.GetProject(data.ProjectId));
            var fulltextStorage = m_fulltextStorageProvider.GetFulltextStorage(projectInfo.ProjectType);

            var snapshotId = new CreateSnapshotWork(m_projectRepository, m_resourceRepository, data.ProjectId, userId,
                                                    data.ResourceVersionIds, data.Comment, bookTypes, defaultBookTypes, fulltextStorage).Execute();

            return(snapshotId);
        }
Пример #3
0
        public long CreateSnapshot(CreateSnapshotContract createSnapshotContract)
        {
            try
            {
                var snapshotId = m_client.Post <long>($"{BasePath}", createSnapshotContract);
                return(snapshotId);
            }
            catch (HttpRequestException e)
            {
                if (m_logger.IsErrorEnabled())
                {
                    m_logger.LogError("{0} failed with {1}", m_client.GetCurrentMethod(), e);
                }

                throw;
            }
        }
Пример #4
0
        public long CreateSnapshot([FromBody] CreateSnapshotContract data)
        {
            m_authorizationManager.AuthorizeBook(data.ProjectId, PermissionFlag.EditProject);

            return(m_snapshotManager.CreateSnapshot(data));
        }