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 bool ProcessSessionResources(ResourceSessionDirector resourceDirector) { if (resourceDirector.Resources.Any(x => x.ResourceType == ResourceType.ExtractableArchive)) { ProcessExtractableArchive(resourceDirector); } if (resourceDirector.Resources.Any(x => x.ResourceType == ResourceType.SourceDocument)) { ProcessXmlConversion(resourceDirector); //call of library to convert docx to xml resources which are added to resources in paramater } ProcessMetaData(resourceDirector); //obtain entity information from processing metadata ProcessTransformations(resourceDirector); //Process Transformations if (resourceDirector.Resources.Any(x => x.ResourceType == ResourceType.Audio)) { GenerateFullBooksResources(resourceDirector); //GenerateFull audio records } var existTask = Task.Factory.StartNew(() => ProcessExistDbStore(resourceDirector)); //saves xmls to Exist var resourceTask = Task.Factory.StartNew(() => ProcessFileDbStore(resourceDirector)); //saves images, docx etc on physical disk Task.WaitAll(existTask, resourceTask); ProcessRelationalDbStore(resourceDirector); //if everything was ok then saves entity into relational database //TODO add try catch with rollback and return false return(true); }
private void ProcessMetaData(ResourceSessionDirector resourceDirector) { try { m_metadataProcessor.Process(resourceDirector); } catch (Exception e) { if (m_log.IsErrorEnabled) { m_log.Error("Error processing XMD metadata", e); } throw; } }
private void ProcessRelationalDbStore(ResourceSessionDirector resourceDirector) { try { m_relationalDbStoreProcessor.Process(resourceDirector); } catch (Exception e) { if (m_log.IsErrorEnabled) { m_log.Error("Error storing data to relational database", e); } throw; } }
private void ProcessFileDbStore(ResourceSessionDirector resourceDirector) { try { m_fileDbStoreProcessor.Process(resourceDirector); } catch (Exception e) { if (m_log.IsErrorEnabled) { m_log.Error("Error storing data to file storage", e); } throw; } }
private void ProcessXmlConversion(ResourceSessionDirector resourceDirector) { try { m_xmlConversionProcessor.Process(resourceDirector); } catch (Exception e) { if (m_log.IsErrorEnabled) { m_log.Error("Error processing DOCX file to XML", e); } throw; } }
public ResourceSessionDirector GetDirectorBySessionId(string sessionId) { ResourceSessionDirector result; lock (m_lock) { if (m_resourceDirectors.TryGetValue(sessionId, out result)) { return(result); } result = new ResourceSessionDirector(sessionId, m_rootFolderPath, m_resourceTypeResolverManager); m_resourceDirectors.Add(sessionId, result); } return(result); }
public bool ProcessSession(string sessionId, string uploadMessage) { lock (m_lock) { if (!m_resourceDirectors.ContainsKey(sessionId)) { return(false); } } ResourceSessionDirector director = GetDirectorBySessionId(sessionId); director.SetSessionInfoValue(SessionInfo.Message, uploadMessage); director.SetSessionInfoValue(SessionInfo.CreateTime, DateTime.UtcNow); bool result = m_resourceProcessorManager.ProcessSessionResources(director); FinalizeSession(sessionId); return(result); }
private void ProcessXmlConversion(ResourceSessionDirector resourceDirector) { m_xmlConversionProcessor.Process(resourceDirector); }
private void ProcessRelationalDbStore(ResourceSessionDirector resourceDirector) { m_relationalDbStoreProcessor.Process(resourceDirector); }
private void ProcessMetaData(ResourceSessionDirector resourceDirector) { m_metadataProcessor.Process(resourceDirector); }
private void ProcessFileDbStore(ResourceSessionDirector resourceDirector) { m_fileDbStoreProcessor.Process(resourceDirector); }
private void ProcessExistDbStore(ResourceSessionDirector resourceDirector) { m_existDbStoreProcessor.Process(resourceDirector); }
private void ProcessExtractableArchive(ResourceSessionDirector resourceDirector) { m_extractableArchiveProcessor.Process(resourceDirector); }
private void ProcessTransformations(ResourceSessionDirector resourceDirector) { m_transformationsProcessor.Process(resourceDirector); }
private void GenerateFullBooksResources(ResourceSessionDirector resourceDirector) { m_audiobookArchiveProcessor.Process(resourceDirector); }
public void AddResource(UploadResourceContract resourceInfoSkeleton) { ResourceSessionDirector director = GetDirectorBySessionId(resourceInfoSkeleton.SessionId); director.AddResourceAndFillResourceTypeByExtension(resourceInfoSkeleton.FileName, resourceInfoSkeleton.Data); }
public void AddResource(string sessionId, string fileName, Stream data) { ResourceSessionDirector director = m_activeSessionManager.GetDirectorBySessionId(sessionId); director.AddResourceAndFillResourceTypeByExtension(fileName, data); }