コード例 #1
0
        public static ClinicalTrialsContext AddToContextJSON(ClinicalTrialsContext context, ClinicalTrialJSON entity,
                                                             int count, int commitCount, bool recreateContext)
        {
            //context.Set<ClinicalTrialJSON>().Add(entity);

            if (count % commitCount == 0)
            {
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.InnerException);
                }
                if (recreateContext)
                {
                    context.Dispose();
                    context = new ClinicalTrialsContext();

                    context.ChangeTracker.AutoDetectChangesEnabled = false;
                }
            }

            return(context);
        }
コード例 #2
0
        public static void WriteToDBJSON()
        {
            ClinicalTrialsContext context = null;

            try
            {
                context = new ClinicalTrialsContext();
                try
                {
                    foreach (string m in context.Database.GetMigrations())
                    {
                        Console.WriteLine(m);
                    }
                    context.Database.Migrate();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                DeleteOldJSONDb();

                context.ChangeTracker.AutoDetectChangesEnabled = false;

                int count = 0;

                using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Read))
                {
                    Console.WriteLine("Reading from zip in progress...");

                    //int countZip = 0;

                    foreach (ZipArchiveEntry entry in archive.Entries)
                    {
                        if (entry.FullName.EndsWith(".json", StringComparison.OrdinalIgnoreCase))
                        {
                            using (StreamReader reader = new StreamReader(entry.Open()))
                            {
                                String            json  = reader.ReadToEnd();
                                dynamic           trial = JsonConvert.DeserializeObject <dynamic>(json);
                                ClinicalTrialJSON item  = new ClinicalTrialJSON();
                                item.NCTId = trial.FullStudy.Study.ProtocolSection.IdentificationModule.NCTId;
                                item.JSON  = json;
                                context    = AddToContextJSON(context, item, count, commitCount, true);
                            }
                            Console.WriteLine(entry.FullName + " - " + ++count);
                        }
                    }
                }
                context.SaveChanges();

                Console.WriteLine("Writing complete.");
                Console.ReadLine();
            } catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                if (context != null)
                {
                    context.Dispose();
                }
            }
        }