示例#1
0
        //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;
            }
        }
示例#2
0
        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 + "}");
            }
        }
示例#3
0
        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;
            }
        }