Exemplo n.º 1
0
        private IEnumerable <Task> GenerateTasksToImportBooks(ILibrary libManager)
        {
            List <Task> ret = new List <Task>();

            IDConversionDao idcDao         = new IDConversionDao();
            BookDao         bookDao        = new BookDao();
            var             anotherDbBooks = bookDao.FindAll(_dataOpUnit.CurrentConnection, s_ANOTHER_DATABASE_ALIAS_NAME).ToList().ToViewModel();
            var             books          = bookDao.FindAll(_dataOpUnit.CurrentConnection).ToList().ToViewModel();

            //同ID:対象ライブラリのエンティティを新規IDでインポートする。取込側ライブラリに新規IDと旧IDを記録する。
            var alpha = from b in anotherDbBooks
                        join ob in books on b.ID equals ob.ID
                        select b;

            foreach (var addBook in alpha)
            {
                var newGuid = Guid.NewGuid();
                idcDao.Insert(new Data.Entity.Migration.IDConversion("Book", newGuid, addBook.ID), _dataOpUnit.CurrentConnection);
                addBook.ID = newGuid;

                ret.AddRange(GenerateTasksToImportBook(libManager, addBook));
            }

            //異ID:対象ライブラリのエンティティを変更せずそのままインポートする。
            var beta = from b in anotherDbBooks.Except(alpha)
                       select b;

            foreach (var addBook in beta)
            {
                ret.AddRange(GenerateTasksToImportBook(libManager, addBook));
            }

            return(ret);
        }
Exemplo n.º 2
0
        private void ImportBooks(ILibrary libManager)
        {
            IDConversionDao idcDao         = new IDConversionDao();
            BookDao         bookDao        = new BookDao();
            var             anotherDbBooks = bookDao.FindAll(_dataOpUnit.CurrentConnection, s_ANOTHER_DATABASE_ALIAS_NAME).ToList().ToViewModel();
            var             books          = bookDao.FindAll(_dataOpUnit.CurrentConnection).ToList().ToViewModel();

            //同ID:対象ライブラリのエンティティを新規IDでインポートする。取込側ライブラリに新規IDと旧IDを記録する。
            var alpha = from b in anotherDbBooks
                        join ob in books on b.ID equals ob.ID
                        select b;

            foreach (var add in alpha)
            {
                var newGuid = Guid.NewGuid();
                idcDao.Insert(new Data.Entity.Migration.IDConversion("Book", newGuid, add.ID), _dataOpUnit.CurrentConnection);
                add.ID = newGuid;

                ImportBookWithContents(libManager, add);
            }

            //異ID:対象ライブラリのエンティティを変更せずそのままインポートする。
            var beta = from b in anotherDbBooks.Except(alpha)
                       select b;

            foreach (var add in beta)
            {
                ImportBookWithContents(libManager, add);
            }
        }
Exemplo n.º 3
0
        public static IEnumerable <BookViewModel> FindAll(DataOperationUnit dataOpUnit = null)
        {
            BookDao dao = new BookDao();

            return(dao.FindAll(dataOpUnit?.CurrentConnection).ToViewModel());
        }