示例#1
0
        public void simple_report()
        {
            var date  = new DateTime(2012, 10, 10);
            var loan1 = new Loan()
            {
                Date = date.AddDays(-10), Balance = 100, Interest = 10
            };

            loan1.Customer = new Customer()
            {
                PersonalInfo = new PersonalInfo()
                {
                    Fullname = "Test Test Test"
                }
            };

            var installment1 = new LoanScheduleItem()
            {
                Loan = loan1, Date = date.AddDays(-9), AmountDue = 50, Balance = 50, Interest = 1
            };

            var lh1 = new LoanHistory(loan1, date.AddDays(-10))
            {
                Loan = loan1
            };
            var lh2 = new LoanHistory(loan1, date.AddDays(-9))
            {
                Loan = loan1, Balance = 51
            };
            var tran1 = new PaypointTransaction()
            {
                Amount = 50, Interest = 1, Balance = 49, Loan = loan1, Fees = 0, PostDate = date.AddDays(-9)
            };

            using (var tx = _session.BeginTransaction())
            {
                _session.Save(loan1);
                _session.Save(installment1);
                _session.Save(lh1);
                _session.Save(lh2);
                _session.Save(tran1);
                tx.Commit();
            }

            var builder = new DailyReportBuilder(_loanScheduleRepository, _transactions, _historyRepository);
            var report  = builder.GenerateReport(2012, 10, 1);

            Assert.That(report.Count, Is.EqualTo(1));
            Assert.That(report[0].Before.Balance, Is.EqualTo(100));
            Assert.That(report[0].After.Balance, Is.EqualTo(51));
            Assert.That(report[0].Paid.Balance, Is.EqualTo(49));
        }
示例#2
0
        static void Main(string[] args)
        {
            var items = new List <FurnitureItem>
            {
                new FurnitureItem("Sectional Couch", 55.5, 22.4, 78.6, 35.0),
                new FurnitureItem("Nightstand", 25.0, 12.4, 20.0, 10.0),
                new FurnitureItem("Dining Table", 105.0, 35.4, 100.6, 55.5),
            };

            var inventoryBuilder = new DailyReportBuilder(items);


            // Use Fluent Builder capabilities directly with the concrete builder instead
            // of the director
            // var director = new InventoryBuildDirector(inventoryBuilder);

            //director.BuildCompleteReport();
            //var directorReport = inventoryBuilder.GetDailyReport();

            var fluentReport = inventoryBuilder
                               .AddTitle()
                               .AddDimensions()
                               .AddLogistics(DateTime.Now)
                               .GetDailyReport();


            Console.WriteLine(fluentReport.Debug());

            Console.WriteLine("Create new Heat Pump manager instance using the Builder design pattern");

            var builder = new ApplianceManagerBuilder(ApplianceType.HeatPump);

            var heatPumpManager =
                builder.AddApplianceManagerIdentifiers("HeatPump00657", "OvumHeatPump056")
                .AddIPConfiguration("192.168.45.01", 502)
                .AddAppServerConfiguration(3000, 2)
                .GetApplianceManager();

            Console.WriteLine(heatPumpManager.Debug());

            Console.WriteLine("Create new Fan Coil Unit manager instance using the Builder design pattern");
            builder = new ApplianceManagerBuilder(ApplianceType.FanCoilUnit);

            var fanCoilUnit =
                builder.AddApplianceManagerIdentifiers("FanCoil00699", "Aertesi Zefiro 805")
                .AddIPConfiguration("192.168.45.02", 502)
                .AddAppServerConfiguration(3000, 3)
                .GetApplianceManager();

            Console.WriteLine(fanCoilUnit.Debug());
        }