/// <summary> /// CSVファイルを読み込み未登録のエンティティがあればrawDBに追加 /// </summary> /// <param name="csvFileName"></param> /// <param name="print"></param> private static void UpdateRawDBFromFile(string csvFileName, bool print = false) { // if (!File.Exists(csvFileName)) { Console.WriteLine("No such a file."); return; } // MyCsvReader myCsv = new MyCsvReader(); //File error check //Load csv file List <CsvEntity> csvEntities = myCsv.Load(csvFileName, CsvType.Fleet); //Update RawDB foreach (var entity in csvEntities) { bool alreadyExists = false; foreach (var rawDBEntity in RawDBEntities) { if ( entity.Date.Equals(rawDBEntity.Date) && entity.Type.Equals(rawDBEntity.Type) ) { alreadyExists = true; break; } } if (!alreadyExists) { RawDBEntities.Add(entity); } } // SortRawDB(); // WriteRawDB(RawDBFileName, RawDBEntities); // if (print) { PrintRawDB(); } }
static void Main(string[] args) { //起動時メッセージ表示 Console.WriteLine("**********************************************************************************"); Console.WriteLine("***** Welcome to UberPlug for calculation of revenue of Uber Eats Deliveries *****"); Console.WriteLine("**********************************************************************************"); Console.WriteLine("Version 1.0.0"); Console.WriteLine(""); //データベースファイル(RawDB)保存場所を読み込み ReadDirPath: Console.WriteLine("Please enter filepath to directry where RawDB is located : "); WorkDir = Console.ReadLine().Replace("\"", string.Empty);; if (!Directory.Exists(WorkDir)) { Console.WriteLine("No such a directory."); goto ReadDirPath; } else { //データベースファイルへのフルパスを設定 RawDBFileName = WorkDir + "\\" + RawDBFileName; } //起動とともにデータベース読み込み(なければ初期化) if (!File.Exists(RawDBFileName)) { InitializeRawDB(RawDBFileName); Console.WriteLine("RawDB is initialized."); } //Load RawDB MyCsvReader myCsv = new MyCsvReader(); RawDBEntities = myCsv.Load(RawDBFileName, CsvType.RawDB); //Print RawDB basic information Console.WriteLine("RawDB is loaded."); //Print Current RawDB PrintRawDB(); while (true) { Console.WriteLine("Please enter command."); string command = Console.ReadLine(); switch (command) { case "print": PrintRawDB(); break; case "printdatetime": PrintRawDB(" ", true); break; case "load": Console.WriteLine("Please enter csv file name to load."); string csvFileName = Console.ReadLine(); UpdateRawDBFromFile(WorkDir + csvFileName, true); break; case "allclear": ClearRawDB: Console.WriteLine("Are you okay to clear all entities in RawDB? (Y/N)"); string yesNo = Console.ReadLine(); if (yesNo == "Y") { ClearRawDB(); Console.WriteLine("RawDB cleared."); break; } else if (yesNo == "N") { Console.WriteLine("Not cleared."); break; } else { goto ClearRawDB; } case "export": Console.WriteLine("Please enter export file name."); string exportFileName = Console.ReadLine(); ExportShiwake(WorkDir + exportFileName, RawDBEntities); Console.WriteLine("Export done."); break; case "exit": goto WhileEnd; default: Console.WriteLine("Please enter valid command."); Console.WriteLine("print/printdatetime/load/export/exit"); break; } } WhileEnd: return; //end of program }