示例#1
0
        public void Import(IProvisionSource source)
        {
            KPCContext.Log.DebugFormat("Importing data from {0} into DBContext.", source.GetType().Name);

            var store = source.Export();

            if (store == null)
            {
                throw new DataStoreException("Given data source contains no data to import.");
            }

            if (sessionFactory == null)
            {
                InitializeSessionFactory();
            }

            using (var importer = new DatabaseImporter(GetSession()))
            {
                // Note: Import order is important to maintain referential integrity of database
                importer.Import(store.Ingredients);
                importer.Import(store.IngredientForms);
                importer.Import(store.IngredientMetadata);
                importer.Import(store.NlpAnomalousIngredients);
                importer.Import(store.NlpDefaultPairings);
                importer.Import(store.NlpFormSynonyms);
                importer.Import(store.NlpIngredientSynonyms);
                importer.Import(store.NlpPrepNotes);
                importer.Import(store.NlpUnitSynonyms);
                importer.Import(store.Recipes);
                importer.Import(store.RecipeIngredients);
                importer.Import(store.RecipeMetadata);
                importer.Import(store.Menus);
                importer.Import(store.Favorites);
                importer.Import(store.QueuedRecipes);
                importer.Import(store.RecipeRatings);
                importer.Import(store.ShoppingLists);
                importer.Import(store.ShoppingListItems);
            }

            KPCContext.Log.DebugFormat("Done importing data from into DBContext.");
        }
示例#2
0
 public void Import(IProvisionSource source)
 {
     this.Adapter.Import(source);
 }
示例#3
0
        public void Import(IProvisionSource source)
        {
            KPCContext.Log.DebugFormat("Importing data from {0} into DBContext.", source.GetType().Name);

             var store = source.Export();
             if (store == null)
            throw new DataStoreException("Given data source contains no data to import.");

             if (sessionFactory == null)
            InitializeSessionFactory();

             using (var importer = new DatabaseImporter(GetSession()))
             {
            // Note: Import order is important to maintain referential integrity of database
            importer.Import(store.Ingredients);
            importer.Import(store.IngredientForms);
            importer.Import(store.IngredientMetadata);
            importer.Import(store.NlpAnomalousIngredients);
            importer.Import(store.NlpDefaultPairings);
            importer.Import(store.NlpFormSynonyms);
            importer.Import(store.NlpIngredientSynonyms);
            importer.Import(store.NlpPrepNotes);
            importer.Import(store.NlpUnitSynonyms);
            importer.Import(store.Recipes);
            importer.Import(store.RecipeIngredients);
            importer.Import(store.RecipeMetadata);
            importer.Import(store.Menus);
            importer.Import(store.Favorites);
            importer.Import(store.QueuedRecipes);
            importer.Import(store.RecipeRatings);
            importer.Import(store.ShoppingLists);
            importer.Import(store.ShoppingListItems);
             }

             KPCContext.Log.DebugFormat("Done importing data from into DBContext.");
        }
示例#4
0
        /// <summary>
        /// Imports data from another source into this context.
        /// </summary>
        /// <param name="source">Another KitchenPC context that provides the ability to export data.</param>
        public void Import(IProvisionSource source)
        {
            KPCContext.Log.DebugFormat("Importing data from {0} into StaticContext.", source.GetType().Name);
             InitializeStore();

             // Call source.Export and populate local data store
             var data = source.Export();
             var serializer = new XmlSerializer(data.GetType());

             var file = CompressedStore ? "KPCData.gz" : "KPCData.xml";
             var path = Path.Combine(DataDirectory, file);

             KPCContext.Log.DebugFormat("Serializing data to local file: {0}", path);
             using (var fileWriter = new FileStream(path, FileMode.Create))
             {
            if (CompressedStore)
            {
               using (var writer = new GZipStream(fileWriter, CompressionLevel.Optimal))
               {
                  serializer.Serialize(writer, data);
               }
            }
            else
            {
               serializer.Serialize(fileWriter, data);
            }
             }

             KPCContext.Log.DebugFormat("Done importing data from into StaticContext.");
        }
示例#5
0
 public void Import(IProvisionSource source)
 {
     Adapter.Import(source);
 }