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); }
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); } }
public static IEnumerable <BookViewModel> FindAll(DataOperationUnit dataOpUnit = null) { BookDao dao = new BookDao(); return(dao.FindAll(dataOpUnit?.CurrentConnection).ToViewModel()); }