Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
        }