示例#1
0
        public StudentLedger GetLedgerReport(int?studentNo)
        {
            var query = new StringBuilder();

            query.AppendFormat("SELECT  TOP (100) PERCENT StudentNo, Student, TransDate, [Transaction], Debit, Credit")
            .AppendFormat(" FROM vWebLedger")
            .AppendFormat(" WHERE StudentNo = {0} ORDER BY Student, TransDate, [Transaction]", studentNo);

            var studentLedger = new List <Ledger.LedgerInfo>();

            using (var reader = this.ExecuteReader(CommandType.Text, query.ToString()))
            {
                while (reader.Read())
                {
                    int colIndex = -1;
                    var ledger   = new LedgerInfo
                    {
                        StudentNo   = reader[++colIndex] as int?,
                        Student     = reader[++colIndex] as string,
                        TransDate   = reader[++colIndex] as DateTime?,
                        Transaction = reader[++colIndex] as string,
                        Debit       = Convert.ToDouble(reader[++colIndex]),
                        Credit      = Convert.ToDouble(reader[++colIndex])
                    };
                    studentLedger.Add(ledger);
                }
                return(new StudentLedger(studentLedger));
            }
        }
 private void AssertLedgerInfo(LedgerInfo ledgerInfo)
 {
     AssertNotDefault(ledgerInfo.Amount);
     AssertNotDefault(ledgerInfo.Asset);
     AssertNotDefault(ledgerInfo.AssetClass);
     AssertNotDefault(ledgerInfo.Fee);
     AssertNotDefault(ledgerInfo.RefId);
     AssertNotDefault(ledgerInfo.Time);
     AssertNotDefault(ledgerInfo.Type);
 }
        internal static Tuple <string, LedgerInfo> ReadLedgerItems(string[] array, string[] headers)
        {
            string     key = "";
            LedgerInfo res = new LedgerInfo();

            for (int i = 0; i < headers.Length; i++)
            {
                string item = headers[i];
                switch (item)
                {
                case "Key":
                    key = array[i];
                    break;

                case "Time":
                    res.Time = Convert.ToInt32(Convert.ToDouble(array[i]));
                    break;

                case "Refid":
                    res.Refid = array[i];
                    break;

                case "Type":
                    res.Type = array[i];
                    break;

                case "Aclass":
                    res.Aclass = array[i];
                    break;

                case "Amount":
                    res.Amount = Convert.ToDecimal(array[i]);
                    break;

                case "Asset":
                    res.Asset = array[i];
                    break;

                case "Balance":
                    res.Balance = Convert.ToDecimal(array[i]);
                    break;

                case "Fee":
                    res.Fee = Convert.ToDecimal(array[i]);
                    break;

                default:
                    break;
                }
            }
            return(new Tuple <string, LedgerInfo>(key, res));
        }
        /// <summary>
        /// Writes new Ledger information on your computer
        /// </summary>
        /// <param name="data"></param>
        private void SaveLedger(Dictionary <string, LedgerInfo> data)
        {
            string pathLib = GetLedgerLibraryPath();

            this.PublishInfo($"Saving Ledger");
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Key,Time,Refid,Type,Aclass,Amount,Asset,Balance,Fee");
            foreach (string item in data.Keys)
            {
                LedgerInfo li = data[item];
                sb.AppendLine($"{item},{li.Time},{li.Refid},{li.Type},{li.Aclass},{li.Amount},{li.Asset},{li.Balance},{li.Fee}");
            }
            File.WriteAllText(pathLib, sb.ToString());
        }
        private void init()
        {
            #region Insert Test Data of Ledger

            studentLedger = new Dictionary <int, StudentLedger>();

            //StudentNo 1.
            var Ledger = new List <LedgerInfo>();
            // Enter Valid Data
            var ledger1 = new LedgerInfo
            {
                StudentNo   = 1,
                Student     = "Alex",
                TransDate   = new DateTime(10, 02, 05, 09, 15, 00, 000),
                Transaction = "Payment Test 1",
                Debit       = 150.00,
                Credit      = 00.00
            };
            Ledger.Add(ledger1);
            // Enter Valid Data
            var ledger2 = new LedgerInfo
            {
                StudentNo   = 1,
                Student     = "Alex",
                TransDate   = new DateTime(10, 03, 05, 09, 15, 00, 000),
                Transaction = "Payment Test 2",
                Debit       = 350.00,
                Credit      = 00.00
            };
            Ledger.Add(ledger2);
            // Enter Valid Data
            var ledger3 = new LedgerInfo
            {
                StudentNo   = 1,
                Student     = "Alex",
                TransDate   = new DateTime(10, 04, 05, 11, 15, 00, 000),
                Transaction = "Payment Test 3",
                Debit       = 0.00,
                Credit      = 400.00
            };
            Ledger.Add(ledger3);
            // Enter Valid Data
            var ledger4 = new LedgerInfo
            {
                StudentNo   = 1,
                Student     = "Alex",
                TransDate   = new DateTime(10, 06, 03, 09, 35, 00, 000),
                Transaction = "Payment Test 4",
                Debit       = 510.00,
                Credit      = 00.00
            };
            Ledger.Add(ledger4);
            // Enter Valid Data
            var ledger5 = new LedgerInfo
            {
                StudentNo   = 1,
                Student     = "Alex",
                TransDate   = new DateTime(10, 07, 05, 09, 15, 00, 000),
                Transaction = "Payment Test 5",
                Debit       = 0.00,
                Credit      = 200.00
            };
            Ledger.Add(ledger5);
            // Enter Valid Data
            var ledger6 = new LedgerInfo
            {
                StudentNo   = 1,
                Student     = "Alex",
                TransDate   = new DateTime(10, 02, 20, 09, 15, 00, 000),
                Transaction = "Payment Test 6",
                Debit       = 0.00,
                Credit      = 325.00
            };
            Ledger.Add(ledger6);

            var LedgerDetail = new StudentLedger(Ledger);
            studentLedger.Add(1, LedgerDetail);

            //StudentNo 2.
            Ledger = new List <LedgerInfo>();
            for (int i = 0; i < 4; i++)
            {
                // Enter Valid Data
                ledger1 = new LedgerInfo
                {
                    StudentNo   = 2,
                    Student     = "Ben",
                    TransDate   = new DateTime(10, 02, 05, 09, 15, 00, 000),
                    Transaction = "Payment Test " + i,
                    Debit       = 150.00,
                    Credit      = 00.00
                };
                Ledger.Add(ledger1);
            }
            LedgerDetail = new StudentLedger(Ledger);
            studentLedger.Add(2, LedgerDetail);
            #endregion
        }