示例#1
0
        private static TransactionDetail ParseTransaction(List <string> transactionDetailStrings)
        {
            var transactionDetail = new TransactionDetail();
            var firstLine         = transactionDetailStrings[0];

            var date = firstLine.Substring(0, 10);

            transactionDetail.Date = DateTime.ParseExact(date, "dd-MM-yyyy", DateTimeFormatInfo.CurrentInfo);

            firstLine = firstLine.Substring(11);

            var sumIndex  = firstLine.LastIndexOf(" ");
            var sumString = firstLine.Substring(sumIndex + 1);

            transactionDetail.Amount = decimal.Parse(sumString, SumFormat);


            firstLine = firstLine.Substring(0, sumIndex);

            var bankTypeIndex = firstLine.LastIndexOf(" ");
            var bankType      = firstLine.Substring(bankTypeIndex + 1);

            transactionDetail.Title = firstLine.Substring(0, bankTypeIndex);

            var lastLine = transactionDetailStrings[transactionDetailStrings.Count - 1];

            transactionDetail.Direction = lastLine.Equals("af", StringComparison.InvariantCultureIgnoreCase)
                                ? Direction.Out
                                : Direction.In;

            return(transactionDetail);
        }
示例#2
0
        private static List <TransactionDetail> ReadAllTransactionEntries(StreamReader reader)
        {
            var result = new List <TransactionDetail>();

            JObject        allDetails   = (JObject)JToken.ReadFrom(new JsonTextReader(reader));
            IList <JToken> transactions = allDetails["transactions"].Children().ToList();

            foreach (JToken r in transactions)
            {
                Transaction transactionResult = r.ToObject <Transaction>();
                var         transactionDetail = new TransactionDetail()
                {
                    Date      = DateTime.ParseExact(transactionResult.Date, "dd-MM-yyyy", DateTimeFormatInfo.CurrentInfo),
                    Amount    = Math.Abs(Decimal.Parse(transactionResult.Amount)),
                    Direction = Decimal.Parse(transactionResult.Amount) > 0 ? Direction.In : Direction.Out,
                    Title     = transactionResult.StatementLines[0],
                    Type      = ""
                };
                result.Add(transactionDetail);
            }

            return(result);
        }