/// <summary> /// rawDBの内容をコンソールに出力 /// </summary> /// <param name="delim"></param> private static void PrintRawDB(string delim = " ", bool useDateTime = false) { Console.WriteLine("RawDB basic information : "); foreach (var typeSumList in RawDBEntities.GroupBy(_ent => _ent.Type)) { Console.WriteLine(typeSumList.Key.ToString() + " : " + typeSumList.Count()); } Console.WriteLine("Total : " + RawDBEntities.Count.ToString()); Console.WriteLine("Now RawDB has entities below : "); foreach (var entity in RawDBEntities) { string dTime = useDateTime ? DateTime.Parse(entity.Date).ToString() : entity.Date; Console.WriteLine( entity.ID + delim + dTime + delim + entity.Amount + delim + entity.Type ); } }
/// <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(); } }
/// <summary> /// RawDBのソート /// </summary> private static void SortRawDB() { RawDBEntities.Sort((a, b) => string.Compare(a.Date, b.Date)); // //WriteRawDB(RawDBFileName, RawDBEntities); }
/// <summary> /// rawDBの内容を完全にクリアする /// </summary> private static void ClearRawDB() { RawDBEntities.Clear(); WriteRawDB(RawDBFileName, RawDBEntities); }