Esempio n. 1
0
        public ImportResultContract ProcessSession(string sessionId, long?projectId, int userId, string uploadMessage,
                                                   ProjectTypeContract projectType, FulltextStoreTypeContract storeType,
                                                   IList <PermissionFromAuthContract> autoImportPermissions)
        {
            if (!m_activeSessionManager.ContainsSessionId(sessionId))
            {
                return(new ImportResultContract {
                    Success = false
                });
            }

            ResourceSessionDirector director = m_activeSessionManager.GetDirectorBySessionId(sessionId);

            director.SetSessionInfoValue(SessionInfo.Message, uploadMessage);
            director.SetSessionInfoValue(SessionInfo.CreateTime, DateTime.UtcNow);
            director.SetSessionInfoValue(SessionInfo.ProjectId, projectId);
            director.SetSessionInfoValue(SessionInfo.UserId, userId);
            director.SetSessionInfoValue(SessionInfo.AutoImportPermissions, autoImportPermissions);
            director.SetSessionInfoValue(SessionInfo.ProjectType, projectType);
            director.SetSessionInfoValue(SessionInfo.StoreType, storeType);
            bool result = m_resourceProcessorManager.ProcessSessionResources(director);
            ImportResultContract importResult = new ImportResultContract(
                director.GetSessionInfoValue <long>(SessionInfo.ProjectId),
                result
                );

            m_activeSessionManager.FinalizeSession(sessionId);
            return(importResult);
        }
 public ImportResultContract ProcessSession(string sessionId, long?projectId, int userId, string uploadMessage,
                                            ProjectTypeContract projectType, FulltextStoreTypeContract storeType, IList <PermissionFromAuthContract> autoImportPermissions)
 {
     try
     {
         return(Channel.ProcessSession(sessionId, projectId, userId, uploadMessage, projectType, storeType, autoImportPermissions));
     }
     catch (FaultException ex)
     {
         throw new FileProcessingImportFailedException("File processing failed. See inner exception.", ex);
     }
     catch (TimeoutException ex)
     {
         throw new FileProcessingException("Communication with FileProcessing service failed. See inner exception.", ex);
     }
     catch (CommunicationException ex)
     {
         throw new FileProcessingException(String.Format("Communication with FileProcessing service failed. See inner exception: {0}", ex.Message), ex);
     }
     catch (ObjectDisposedException ex)
     {
         throw new FileProcessingException("Communication with FileProcessing service failed. See inner exception.", ex);
     }
 }
Esempio n. 3
0
        private void PublishSnapshotToExternalDatabase(long snapshotId, long projectId, List <BookPageData> bookDataPages, FulltextStoreTypeContract storeType)
        {
            var externalIds = bookDataPages?.Select(x => x.XmlId)
                              .Where(x => x != null) // the page doesn't exist in fulltext database when ID is null
                              .ToList();
            var metadata = m_metadataRepository.InvokeUnitOfWork(x => x.GetLatestMetadataResource(projectId));

            if (externalIds != null && externalIds.Count > 0)
            {
                var fulltextResourceProcessor = m_fulltextStoreProcessorProvider.GetByStoreType(storeType);
                fulltextResourceProcessor.PublishSnapshot(snapshotId, projectId, externalIds, metadata);
            }
            else
            {
                if (m_log.IsInfoEnabled)
                {
                    m_log.Info($"Snapshot is not published to external database because the project doesn't contain any text pages. ProjectID={projectId}, SnapshotID={snapshotId}");
                }
            }
        }
 public IFulltextResourceProcessor GetByStoreType(FulltextStoreTypeContract storeType)
 {
     return(m_fulltextResourceProcessors[storeType]);
 }
Esempio n. 5
0
 public ImportResultContract ProcessSession(string sessionId, long?projectId, int userId, string uploadMessage, ProjectTypeContract projectType, FulltextStoreTypeContract storeType, IList <PermissionFromAuthContract> autoImportPermissions)
 {
     return(m_sessionManager.ProcessSession(sessionId, projectId, userId, uploadMessage, projectType, storeType, autoImportPermissions));
 }