IEnumerator ImportFromGoogleIE(DataboxObject database, DataboxGoogleSheetDownloader.ImportType _importType)
        {
            DataboxCSVConverter.firstTimeReplace = true;

            for (int i = 0; i < database.googleWorksheets.Count; i++)
            {
                var _url = database.googleSheetUrl;

                _url = FixURL(_url, database.googleWorksheets[i].id);

                UnityWebRequest _download = UnityWebRequest.Get(_url);

                yield return(_download.SendWebRequest());

                while (_download.isDone == false)
                {
                    yield return(null);
                }

                // handle an unknown internet error
                if (_download.isNetworkError || _download.isHttpError)
                {
                    Debug.LogWarningFormat("Couldn't retrieve file at <{0}> and error message was: {1}", _download.url, _download.error);
                }
                else
                {
                    // make sure the fetched file isn't just a Google login page
                    if (_download.downloadHandler.text.Contains("google-site-verification"))
                    {
                        Debug.LogWarningFormat("Couldn't retrieve file at <{0}> because the Google Doc didn't have public link sharing enabled", _download.url);
                        continue;
                    }


                    List <DataboxCSVConverter.Entry> entries = new List <DataboxCSVConverter.Entry>();
                    DataboxCSVConverter.ConvertCSV(_download.downloadHandler.text, out entries);


                    yield return(new WaitForSeconds(1f));


                    switch (_importType)
                    {
                    case DataboxGoogleSheetDownloader.ImportType.Append:
                        DataboxCSVConverter.AppendToDB(database, database.googleWorksheets[i].name, entries);
                        break;

                    case DataboxGoogleSheetDownloader.ImportType.Replace:
                        DataboxCSVConverter.ReplaceDB(database, database.googleWorksheets[i].name, entries);
                        break;
                    }
                }

                _download.Dispose();
            }


            if (database.OnImportFromGoogleComplete != null)
            {
                database.OnImportFromGoogleComplete();
            }
        }
 /// <summary>
 /// Import google sheet runtime coroutine
 /// </summary>
 /// <param name="database"></param>
 /// <param name="_importType"></param>
 /// <returns></returns>
 public void ImportFromGoogle(DataboxObject _database, DataboxGoogleSheetDownloader.ImportType _importType)
 {
     StartCoroutine(ImportFromGoogleIE(_database, _importType));
 }