static void Manual(SqlDAO sqlDao, ApiDAO apiDao, List <NationalParkServiceJsonData> data) { DateTime start = DateTime.Now; DateTime end; int querySize = 0; bool runAgain = false; int parkCount; do { parkCount = sqlDao.GetDBParkCount(); if (parkCount >= totalNumberOfNationalParks) { Console.WriteLine("Database already has every national park. Program will now close"); Console.ReadKey(); return; } Console.WriteLine($"Database has {parkCount}/{totalNumberOfNationalParks} parks stored"); while (querySize < 1) { Console.WriteLine("Enter number of entries to retrieve, (exceeding 75 causes instability)"); if (int.TryParse(Console.ReadLine(), out querySize)) { if (querySize < 1) { Console.WriteLine("Number must be positive."); } if (querySize > 100) { bool confirm = GetYesOrNo("Are you sure?"); if (!confirm) { querySize = 0; } } } } Console.WriteLine("Getting data from NPS... this may take some time"); data = new List <NationalParkServiceJsonData>(apiDao.GetParkData(querySize, sqlDao.GetDBParkCount())); end = DateTime.Now; Console.WriteLine($"Done. Execution took {(end - start).TotalSeconds} seconds.\nBeginning upload to SQL... this may also take some time"); start = DateTime.Now; sqlDao.InsertDataIntoSql(data); end = DateTime.Now; Console.WriteLine($"Done. Execution took {(end - start).TotalSeconds} seconds."); runAgain = GetYesOrNo("Run again?"); }while (runAgain); }
static void Auto(SqlDAO sqlDao, ApiDAO apiDao, List <NationalParkServiceJsonData> data) { int parkCount = sqlDao.GetDBParkCount(); int actualMax = int.MaxValue; bool alreadyFull = true; DateTime totalStart = DateTime.Now; DateTime totalEnd; Console.WriteLine("BEGINNING AUTOFILL. YOLO"); while (parkCount < totalNumberOfNationalParks) { alreadyFull = false; int beforeCount = sqlDao.GetDBParkCount(); DateTime start = DateTime.Now; DateTime end; Console.WriteLine($"Pulling from NPS..."); data = new List <NationalParkServiceJsonData>(apiDao.GetParkData(25, sqlDao.GetDBParkCount())); end = DateTime.Now; Console.WriteLine($"Done. Execution took {(end - start).TotalSeconds} seconds.\nBeginning upload to SQL..."); start = DateTime.Now; sqlDao.InsertDataIntoSql(data); parkCount = sqlDao.GetDBParkCount(); end = DateTime.Now; if (beforeCount == parkCount) { actualMax = parkCount; Console.WriteLine($"Done. Execution took {(end - start).TotalSeconds} seconds. Database did not increase in size, assuming we have every national park now.\n Actual total: {actualMax} (Write this down. WRITE THIS DOWN)"); break; } Console.WriteLine($"Done. Execution took {(end - start).TotalSeconds} seconds. {parkCount}/{totalNumberOfNationalParks} have been processed."); } totalEnd = DateTime.Now; if (alreadyFull) { Console.WriteLine($"The database is already full dummy, if you really want it to run you can recreate the database and run this again."); } else { Console.WriteLine($"\n\n\n\nAuto fill completed with out errors? Wow I'm good. Execution took {(totalEnd - totalStart).Minutes} minutes."); } Console.WriteLine("Press any key to exit."); Console.ReadKey(); }