public void ImportFromSpreadsheet(string fileName) { if (IfDatabaseIsNotEmpty()) { throw new ImportException("Database is not empty. Remove sqlite file."); } IfDatabaseIsNotEmpty(); var importData = new SpreadsheetDataImport(fileName); var authors = importData.ImportAuthorsList(); ApplicationDbContext.Instance.Authors.AddRange(authors); var seriesInfoList = importData.ImportSeriesListInfo(); var seriesList = seriesInfoList .GroupBy(a => a.SeriesName) .Select(a => a.First()) .Where(a => !string.IsNullOrEmpty(a.SeriesName)) .Select(a => a.ToSeries()) .ToList(); ApplicationDbContext.Instance.Series.AddRange(seriesList); var publishingHouses = importData.ImportPublishingHousesList(); ApplicationDbContext.Instance.PublishingHouses.AddRange(publishingHouses); var categories = importData.ImportCategoriesList(); ApplicationDbContext.Instance.Categories.AddRange(categories); var storagePlaces = importData.ImportStoragePlacesList(); ApplicationDbContext.Instance.StoragePlaces.AddRange(storagePlaces); ApplicationDbContext.Instance.SaveChanges(); var books = ImportBooksFromSpreadsheet(importData, authors, seriesList, publishingHouses, categories, storagePlaces); ApplicationDbContext.Instance.Books.AddRange(books); ApplicationDbContext.Instance.SaveChanges(); }