예제 #1
0
        ToShiwake(this CsvEntity csvEntity)
        {
            //
            double amount = Math.Abs(Convert.ToDouble(csvEntity.Amount));

            //
            switch (csvEntity.Type)
            {
            case "payouts":
                return(new Tuple <KanjoKamoku, double, KanjoKamoku, double>
                           (KanjoKamoku.NONE, amount, KanjoKamoku.NONE, amount));

            case "cash_collected":
                //TODO:ここに売掛金の残高チェックを入れてマイナスなら預り金にする処理を入れる
                return(new Tuple <KanjoKamoku, double, KanjoKamoku, double>
                           (KanjoKamoku.GENKIN, amount, KanjoKamoku.URIKAKEKIN, amount));

            case "promotion":
            case "trip":
                return(new Tuple <KanjoKamoku, double, KanjoKamoku, double>
                           (KanjoKamoku.URIKAKEKIN, amount, KanjoKamoku.URIAGE, amount));

            case "uber_fee_collection":
                return(new Tuple <KanjoKamoku, double, KanjoKamoku, double>
                           (KanjoKamoku.URIKAKEKIN, amount, KanjoKamoku.MIBARAIKIN, amount));

            default:
                return(new Tuple <KanjoKamoku, double, KanjoKamoku, double>
                           (KanjoKamoku.NONE, 0.0, KanjoKamoku.NONE, 0.0));
            }
        }
예제 #2
0
 /// <summary>
 /// rawDBエンティティ1件分をCSV形式で書き出す
 /// </summary>
 /// <param name="sw"></param>
 /// <param name="entity"></param>
 /// <param name="delim"></param>
 private static void WriteRawDBEntity(StreamWriter sw, CsvEntity entity, string delim = ",")
 {
     sw.WriteLine(
         entity.ID.ToString() + delim
         + entity.Date.ToString() + delim
         + entity.Amount.ToString() + delim
         + entity.Type.ToString()
         );
 }
예제 #3
0
        /// <summary>
        /// CSVデータロード
        /// </summary>
        /// <param name="csvFileFullPath"></param>
        /// <returns></returns>
        public List <CsvEntity> Load(string csvFileFullPath, CsvType csvType = CsvType.Fleet)
        {
            var result = new List <CsvEntity>();

            using (var reader = new StreamReader(csvFileFullPath))
            {
                using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
                {
                    csv.Read();
                    csv.ReadHeader();

                    switch (csvType)
                    {
                    case CsvType.Fleet:

                        while (csv.Read())
                        {
                            var record = new CsvEntity
                            {
                                /*
                                 * Field1 = csv.GetField("乗車 ID"),
                                 * Field2 = csv.GetField("料金")
                                 */
                                ID     = csv.GetField("tripUUID"),
                                Date   = csv.GetField("timestamp") /*.Substring(0, 10)*/,
                                Amount = csv.GetField("amount"),
                                Type   = csv.GetField("itemType")
                            };
                            result.Add(record);
                        }
                        break;

                    case CsvType.Normal:
                        //未実装
                        break;

                    case CsvType.RawDB:
                        while (csv.Read())
                        {
                            var record = new CsvEntity
                            {
                                /*
                                 * Field1 = csv.GetField("乗車 ID"),
                                 * Field2 = csv.GetField("料金")
                                 */
                                ID     = csv.GetField("ID"),
                                Date   = csv.GetField("Date"),
                                Amount = csv.GetField("Amount"),
                                Type   = csv.GetField("Type")
                            };
                            result.Add(record);
                        }
                        break;

                    default:
                        break;
                    }
                }
                return(result);
            }
        }