Beispiel #1
0
        public void Process(ResourceSessionDirector resourceDirector)
        {
            var work      = new CreateOrUpdateProjectBasicDataWork(m_projectRepository, resourceDirector);
            var projectId = work.Execute();

            resourceDirector.SetSessionInfoValue(SessionInfo.ProjectId, projectId);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }