//parse bank transactions private int ParseBankTransaction(string BankTransaction, BankDataOrder order) { try { string[] row; int countRecords = 0; List <PaymentViewModel> listPayments = new List <PaymentViewModel>(); foreach (var myString in BankTransaction.Split(new string[] { Environment.NewLine, "\n" }, StringSplitOptions.RemoveEmptyEntries)) { String[] spearator = { "\t" }; var count = Regex.Matches(myString, "\t").Count; if (count < 3) { continue; } row = myString.Split(spearator, StringSplitOptions.RemoveEmptyEntries); PaymentViewModel paymentVM = new PaymentViewModel(); paymentVM = (order.Automatic == true ? ParseAutomatic(row) : ParseManual(row, order)); var p = Facade.Facade.GetPayment(paymentVM.DateOfPayment.Value, paymentVM.Description, paymentVM.Sum.Value, paymentVM.Balance.Value); if (PaymentIsValid(paymentVM) && p == null) { var r = Facade.Facade.SavePayment(paymentVM); if (r > 0) { countRecords++; } } } return(countRecords); } catch (Exception ex) { throw ex; } }
public string ParseData() { try { BankDataOrder order = new BankDataOrder(); string BankTransaction = Request.Form["BankTransaction"]; order.Automatic = (Request.Form["Automatic"] == "true" ? true : false); if (order.Automatic == false) { order.DateOfPayment = Int16.Parse(Request.Form["DateOfPayment"]); order.Description = Int16.Parse(Request.Form["Description"]); order.Sum = Int16.Parse(Request.Form["Sum"]); order.Balance = Int16.Parse(Request.Form["Balance"]); } var result = ParseBankTransaction(BankTransaction, order); return(result.ToString()); } catch (Exception ex) { return("{error:true, exeption:" + ex.Message + "}"); } }
private PaymentViewModel ParseManual(string[] row, BankDataOrder order) { try { PaymentViewModel payment = new PaymentViewModel(); DateTime dt; decimal number; List <string> r = RemoveEmptyCols(row); if (Utils.IsDate(r[order.DateOfPayment - 1], out dt)) { payment.DateOfPayment = dt; } if (Utils.IsNumber(r[order.Sum - 1], out number)) { payment.Sum = number; } if (Utils.IsNumber(r[order.Balance - 1], out number)) { payment.Balance = number; } payment.Description = r[order.Description - 1]; payment.KeyId = MakeKeyIdFromPaymentObj(payment); return(payment); } catch (Exception ex) { throw ex; } }