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