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); }
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); }