예제 #1
0
        void ReleaseDesignerOutlets()
        {
            if (TransactionsTable != null)
            {
                TransactionsTable.Dispose();
                TransactionsTable = null;
            }

            if (DateColumn != null)
            {
                DateColumn.Dispose();
                DateColumn = null;
            }

            if (DescriptionColumn != null)
            {
                DescriptionColumn.Dispose();
                DescriptionColumn = null;
            }

            if (ValueColumn != null)
            {
                ValueColumn.Dispose();
                ValueColumn = null;
            }
        }
예제 #2
0
        public void AddAndUpdateWorks_All()
        {
            TransactionsTable eventTable = SetupForEventTests();

            Assert.NotNull(eventTable);
            Add(new TransactionNewLayout(DateTime.Now, "boomer2"), eventTable);
            Assert.AreEqual(1, eventTable.Count(), "after one add");
            TransactionBase foundNote = eventTable.GetExisting(new database.ColumnConstant[2]
            {
                TransactionsTable.TYPE, TransactionsTable.DATA1_LAYOUTGUID
            }, new string[2] {
                TransactionsTable.T_ADDED.ToString(), "boomer2"
            });

            Assert.NotNull(foundNote);

            // should still only be 1 beacuse we've just edited the existing
            foundNote.UpdateValue(TransactionsTable.DATA2.Index, "some data2");
            Update(foundNote, eventTable);
            Assert.AreEqual(1, eventTable.Count());
            foundNote.UpdateValue(TransactionsTable.DATA2.Index, "some data3");
            Update(new TransactionNewLayout(DateTime.Now, "boomer2"), eventTable);
            Assert.AreEqual(1, eventTable.Count());

            Add(new TransactionNewLayout(DateTime.Now, "boomer2"), eventTable);
            Assert.AreEqual(2, eventTable.Count());


            Add(new TransactionImportLayout(DateTime.Now, "roar", "The Roar Caption"), eventTable);
            Add(new TransactionImportLayout(DateTime.Now, "roar", "The Roar Caption"), eventTable);
            Assert.AreEqual(4, eventTable.Count());

            Add(new TransactionDeleteLayout(DateTime.Now, "roar"), eventTable);
            Assert.AreEqual(5, eventTable.Count());
        }
예제 #3
0
        protected void FetchDat(object sender, EventArgs e)
        {
            List <Transaction> transactions = JsonConvert.DeserializeObject <List <Transaction> >(httpget(int.Parse(databaseOption.SelectedValue), "transactions/" + cardList.SelectedValue));

            System.Diagnostics.Trace.TraceInformation(JsonConvert.SerializeObject(transactions));
            TransactionsTable.DataSource = transactions;
            TransactionsTable.DataBind();
        }
예제 #4
0
        public void QueryTests()
        {
            _TestSingleTon.Instance._SetupForLayoutPanelTests();
            TransactionsTable eventTable = SetupForEventTests();

            LayoutDetails.Instance.TransactionsList = eventTable;
            System.Windows.Forms.Form form = new System.Windows.Forms.Form();
            form.Show();
            LayoutDetails.Instance.GetAppearanceFromStorage = _TestSingleTon.Instance.GetAppearanceFromStorage;
            YOM2013.DefaultLayouts.CreateASystemLayout(form, null);
            LayoutDetails.Instance.SystemLayout = new Layout.LayoutPanel(CoreUtilities.Constants.BLANK, true);
            LayoutDetails.Instance.SystemLayout.LoadLayout(LayoutPanel.SYSTEM_LAYOUT, false, null);
            form.Controls.Add(LayoutDetails.Instance.SystemLayout);

            Worklog.JournalPanel Journal = new Worklog.JournalPanel("A", null);

            Assert.NotNull(eventTable);

            // Add a Really Old Task (20 days ago)
            Add(new TransactionWorkLog(DateTime.Now.AddDays(-20), "BOOM", "", 1000, 2000, "Writing"), eventTable);


            Add(new TransactionWorkLog(DateTime.Now, "BOOM", "", 100, 200, "Writing"), eventTable);
            string value = Journal.GetWeekStats(DateTime.Now);

            Assert.True(value.IndexOf("100") > -1, "Found Words");
            Assert.True(value.IndexOf("200") > -1, "Found Minutes");

            // add a task for another entity

            Add(new TransactionWorkLog(DateTime.Now, "BOOM2", "", 50, 50, "Writing"), eventTable);
            value = Journal.GetWeekStats(DateTime.Now);
            Assert.True(value.IndexOf("150") > -1, "Found Words2");
            Assert.True(value.IndexOf("250") > -1, "Found Minutes2");
            // now look 'a week ago' should find none
            value = Journal.GetWeekStats(DateTime.Now.AddDays(-10));
            Assert.False(value.IndexOf("100") > -1, "Found Words3");
            Assert.False(value.IndexOf("200") > -1, "Found Minutes3");
            Assert.False(value.IndexOf("150") > -1, "Found Words3");
            Assert.False(value.IndexOf("250") > -1, "Found Minutes3");


            // Now Layout Specific Tests

            value = Journal.GetWorkStats_SpecificLayout(DateTime.Now, "BOOM2");
            Assert.True(value.IndexOf("50") > -1, "Found Words2");
            Assert.False(value.IndexOf("250") > -1, "Found Minutes2");

            value = Journal.GetWorkStats_SpecificLayout(DateTime.Now, "BOOM");
            Assert.True(value.IndexOf("100") > -1, "Found WordsBOOMSPECIFIC");
            Assert.True(value.IndexOf("200") > -1, "Found MinutesBOOMSPECIFIC");
            Assert.False(value.IndexOf("250") > -1, "Found Minutes2");

            _w.output(value);
            // Now do Test 'ALL TIME' bylooking at the value we already grabbed because SpecificLayout also includes a Global Count
            Assert.True(value.IndexOf("1100") > -1, "Found WordsBOOMSPECIFIC _ALLTIME");
            Assert.True(value.IndexOf("2200") > -1, "Found MinutesBOOMSPECIFIC _ALLTIME");
        }
예제 #5
0
        public void TryingToAddUniqueIDTwice()
        {
            TransactionsTable eventTable = SetupForEventTests();

            Assert.NotNull(eventTable);
            TransactionNewLayout tricky = new TransactionNewLayout(DateTime.Now, "boomer2");

            Add(tricky, eventTable);
            Assert.AreEqual(1, eventTable.Count(), "after one add");
            tricky.UpdateValue(TransactionsTable.ID.Index, "1");
            Add(tricky, eventTable);
        }
예제 #6
0
        private TransactionsTable SetupForEventTests()
        {
            lg.Instance.OutputToConstoleToo = true;
            FAKE_SqlLiteDatabase db = new FAKE_SqlLiteDatabase(_TestSingleTon.TESTDATABASE);

            db.DropTableIfExists("events");
            db.Dispose();


            TransactionsTable eventTable = new TransactionsTable(MasterOfLayouts.GetDatabaseType(_TestSingleTon.TESTDATABASE));

            return(eventTable);
        }
예제 #7
0
        public void ExistWorks()
        {
            TransactionsTable eventTable = SetupForEventTests();

            Assert.NotNull(eventTable);
            Add(new TransactionNewLayout(DateTime.Now, "boomer2"), eventTable);
            Assert.AreEqual(1, eventTable.Count(), "after one add");
            TransactionBase foundNote = eventTable.GetExisting(new database.ColumnConstant[2]
            {
                TransactionsTable.TYPE, TransactionsTable.DATA1_LAYOUTGUID
            }, new string[2] {
                TransactionsTable.T_ADDED.ToString(), "boomer2"
            });

            Assert.NotNull(foundNote);
        }
        public Order GetOrder(Guid orderID)
        {
            SimpleProductRepository  productRepository  = new SimpleProductRepository();
            SimpleCustomerRepository customerRepository = new SimpleCustomerRepository();
            Order result = null;

            var batch = new BatchSql();

            batch.Append(OrdersTable.Select().Where("OrderID", orderID));

            //items

            //products for the items
            var sql = new SqlStatement(connectionStringName);

            sql.Add("SELECT ");
            sql.Add(ProductsTable.COLUMN_LIST);
            sql.Add(OrderItemsTable.COLUMN_LIST);
            sql.Add("FROM Products INNER JOIN OrderItems ON Products.SKU = OrderItems.SKU");
            sql.Add("WHERE SKU IN (SELECT SKU FROM OrderItems WHERE OrderID=@OrderID)");

            //transactions
            batch.Append(TransactionsTable.Select().Where("orderid", orderID));

            int shippingAddressID = 0;
            int billingAddressID  = 0;
            int shippingMethodID  = 0;

            //pull it
            var cmd = sql.BuildCommand();

            using (var rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) {
                if (rdr.Read())
                {
                    result = new Order(OrdersTable.ReadOrderStatusID(rdr))
                    {
                        DateCreated       = OrdersTable.ReadCreatedOn(rdr),
                        DateShipped       = OrdersTable.ReadDateShipped(rdr),
                        UserName          = OrdersTable.ReadUserName(rdr),
                        DiscountAmount    = OrdersTable.ReadDiscountAmount(rdr),
                        DiscountReason    = OrdersTable.ReadDiscountReason(rdr),
                        EstimatedDelivery = OrdersTable.ReadEstimatedDelivery(rdr),
                        ID              = orderID,
                        OrderNumber     = OrdersTable.ReadOrderNumber(rdr),
                        ShippingAmount  = OrdersTable.ReadShippingAmount(rdr),
                        ShippingService = OrdersTable.ReadShippingService(rdr),
                        TaxAmount       = OrdersTable.ReadTaxAmount(rdr),
                    };

                    billingAddressID  = OrdersTable.ReadBillingAddressID(rdr);
                    shippingAddressID = OrdersTable.ReadShippingAddressID(rdr);
                }

                //load the items
                result.Items = new List <OrderLine>();
                if (rdr.NextResult())
                {
                    while (rdr.Read())
                    {
                        var product = productRepository.LoadProduct(rdr);
                        var item    = new OrderLine(OrderItemsTable.ReadDateAdded(rdr), OrderItemsTable.ReadQuantity(rdr), product);
                        result.Items.Add(item);
                    }
                }

                //transactions
                result.Transactions = new List <Transaction>();
                if (rdr.NextResult())
                {
                    while (rdr.Read())
                    {
                        Transaction t = new Transaction(
                            TransactionsTable.ReadTransactionID(rdr),
                            orderID,
                            TransactionsTable.ReadAmount(rdr),
                            TransactionsTable.ReadTransactionDate(rdr),
                            TransactionsTable.ReadAuthorizationCode(rdr),
                            TransactionsTable.ReadNotes(rdr),
                            TransactionsTable.ReadProcessor(rdr));

                        result.Transactions.Add(t);
                    }
                }
            }
            sql = new SqlStatement(connectionStringName);

            //addresses
            batch.Append(AddressesTable.Select().Where("addressid", shippingAddressID));

            batch.Append(AddressesTable.Select().Where("addressid", billingAddressID));

            //shipping method
            batch.Append(ShippingMethodsTable.Select().Where("shippingmethodid", shippingMethodID));

            cmd = batch.BuildCommand(connectionStringName);


            using (var rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) {
                //shipping address
                if (rdr.Read())
                {
                    //shipping
                    result.ShippingAddress = customerRepository.LoadAddress(rdr);
                }
                //billing address
                if (rdr.NextResult())
                {
                    if (rdr.Read())
                    {
                        result.BillingAddress = customerRepository.LoadAddress(rdr);
                    }
                }
                //shipping method
                if (rdr.NextResult())
                {
                    if (rdr.Read())
                    {
                        LoadShipping(rdr);
                    }
                }
            }

            return(result);
        }
 public UpdateTransactionCommandhandler(IAccountsContext context)
 {
     _table = new TransactionsTable(context);
 }
예제 #10
0
 public void Update(TransactionBase eventRow, TransactionsTable eventTable)
 {
     eventTable.UpdateEvent(eventRow);
 }
예제 #11
0
 public void Add(TransactionBase eventRow, TransactionsTable eventTable)
 {
     eventTable.AddEvent(eventRow);
 }
 public TransferCommandHandler(IAccountsContext context)
 {
     _accountsTable     = new AccountsTable(context);
     _transactionsTable = new TransactionsTable(context);
 }
예제 #13
0
 public StartTransactionCommandHandler(IAccountsContext context)
 {
     _table = new TransactionsTable(context);
 }