public void Process(ResourceSessionDirector resourceDirector) { var work = new CreateOrUpdateProjectBasicDataWork(m_projectRepository, resourceDirector); var projectId = work.Execute(); resourceDirector.SetSessionInfoValue(SessionInfo.ProjectId, projectId); }
public void Process(ResourceSessionDirector resourceSessionDirector) { var metaData = GetMetadataForProcessing(resourceSessionDirector); var xmlFileStream = File.Open(metaData.FullPath, FileMode.Open); BookData bookData = m_xmlMetadataProcessingManager.GetXmlMetadata(xmlFileStream); bookData.VersionDescription = resourceSessionDirector.GetSessionInfoValue <string>(SessionInfo.Message); bookData.CreateTime = resourceSessionDirector.GetSessionInfoValue <DateTime>(SessionInfo.CreateTime); resourceSessionDirector.SetSessionInfoValue(SessionInfo.BookData, bookData); resourceSessionDirector.SetSessionInfoValue(SessionInfo.BookXmlId, bookData.BookXmlId); resourceSessionDirector.SetSessionInfoValue(SessionInfo.VersionXmlId, bookData.VersionXmlId); AddBookAccessories(resourceSessionDirector, bookData); AddBookPages(resourceSessionDirector, bookData); }
public void Process(ResourceSessionDirector resourceDirector) { var storeType = resourceDirector.GetSessionInfoValue <FulltextStoreTypeContract>(SessionInfo.StoreType); var autoImportPermissions = resourceDirector.GetSessionInfoValue <IList <PermissionFromAuthContract> >(SessionInfo.AutoImportPermissions); var bookData = resourceDirector.GetSessionInfoValue <BookData>(SessionInfo.BookData); bookData.FileNameMapping = new Dictionary <string, FileResource>(); foreach (var fileResource in resourceDirector.Resources.Where(x => x.NewNameInStorage != null)) { bookData.FileNameMapping.Add(fileResource.FileName, fileResource); } bookData.ContainsEditionNote = true; //HACK always create new EditionNoteResource, TODO determine if edition note exists var saveNewBookDataWork = new SaveNewBookDataWork(m_projectRepository, m_metadataRepository, m_resourceRepository, m_catalogValueRepository, m_personRepository, resourceDirector); saveNewBookDataWork.Execute(); var projectId = saveNewBookDataWork.ProjectId; var userId = saveNewBookDataWork.UserId; var message = saveNewBookDataWork.Message; var resourceVersionIds = saveNewBookDataWork.ImportedResourceVersionIds; var bookVersionId = saveNewBookDataWork.BookVersionId; var createNewSnapshot = new CreateSnapshotForImportedDataWork(m_projectRepository, projectId, userId, resourceVersionIds, bookData, message, bookVersionId); createNewSnapshot.Execute(); PublishSnapshotToExternalDatabase(createNewSnapshot.SnapshotId, projectId, bookData.Pages, storeType); //var bookVersionId = m_bookVersionRepository.Create(bookData); //var bookVersion = m_bookVersionRepository.FindById<BookVersion>(bookVersionId); //var categories = m_categoryRepository.GetAllCategories(); //var categoriesDictionary = categories.ToDictionary(category => category.Id); //var bookVersionCategories = m_categoryRepository.GetDirectCategoriesByBookVersionId(bookVersionId); //var allBookVersionCategoryIds = new List<int>(); //foreach (var bookVersionCategory in bookVersionCategories) //{ // Category category; // if (categoriesDictionary.TryGetValue(bookVersionCategory.Id, out category)) // { // allBookVersionCategoryIds.Add(category.Id); // while (category.ParentCategory != null && categoriesDictionary.TryGetValue(category.ParentCategory.Id, out category)) // { // allBookVersionCategoryIds.Add(category.Id); // } // } //} var processAutoImportPermission = new ProcessAutoImportPermissionWork(m_permissionRepository, projectId, createNewSnapshot.BookTypes, autoImportPermissions); processAutoImportPermission.Execute(); //var specialPermissions = m_permissionRepository.GetAutoimportPermissionsByCategoryIdList(allBookVersionCategoryIds); //var groupsWithAutoimport = m_permissionRepository.GetGroupsBySpecialPermissionIds(specialPermissions.Select(x => x.Id)); //var newPermissions = groupsWithAutoimport.Select(groupWithAutoimport => new Permission //{ // Book = bookVersion.Book, // Group = groupWithAutoimport //}); //foreach (var newPermission in newPermissions) //{ // m_permissionRepository.CreatePermissionIfNotExist(newPermission); //} resourceDirector.SetSessionInfoValue(SessionInfo.ProjectId, projectId); }