public OrderForm(CreditCardPaymentForm creditCardPaymentFormData, OrderPresentationModel orderPresentationModelData, OrderModel orderModelData, Model modelData) { InitializeComponent(); _creditCardPaymentForm = creditCardPaymentFormData; _orderPresentationModel = orderPresentationModelData; _orderModel = orderModelData; _model = modelData; InitializeProductTabPageButtonsContainers(); // Observers _model.OrderChanged += UpdateCartSectionViewOnOrderChanged; _model.OrderCleared += UpdateViewOnOrderCleared; _model.OrderAdded += (orderItem) => _cartDataGridView.Rows.Add(null, orderItem.Name, orderItem.Type, orderItem.Price.GetCurrencyFormat(), orderItem.OrderQuantity, orderItem.GetTotalPrice().GetCurrencyFormat()); _model.OrderRemoved += (orderItemIndex, removedProduct) => _cartDataGridView.Rows.RemoveAt(orderItemIndex); _model.OrderItemQuantityChanged += (orderItemIndex, orderItemTotalPrice) => _cartDataGridView.Rows[orderItemIndex].Cells[CART_PRODUCT_TOTAL_PRICE_COLUMN_INDEX].Value = orderItemTotalPrice; _model.OrderItemQuantityIsExceededStorageQuantity += UpdateViewOnOrderItemQuantityIsExceededStorageQuantity; _orderPresentationModel.AddButtonEnabledChanged += () => _addButton.Enabled = _orderPresentationModel.AddButton.Enabled; _orderPresentationModel.OrderFormProductStorageQuantityTextChanged += () => _productStorageQuantity.Text = _orderPresentationModel.ProductStorageQuantity.Text; // UI _cartDataGridView.CellPainting += (sender, eventArguments) => DataGridViewHelper.InitializeButtonImageOfButtonColumn(eventArguments, CART_DELETE_BUTTON_COLUMN_INDEX, Resources.img_trash_bin); _cartDataGridView.CellContentClick += ClickCartDataGridViewCellContent; _cartDataGridView.CellValueChanged += ChangeCartDataGridViewCellValue; _leftArrowButton.Click += (sender, events) => GoToPreviousProductPage(); _rightArrowButton.Click += (sender, events) => GoToNextProductPage(); _addButton.Click += (sender, eventArguments) => _orderPresentationModel.AddCurrentSelectedProductToOrderIfProductIsNotInOrder(); _orderButton.Click += ClickOrderButton; _productTabControl.SelectedIndexChanged += (sender, events) => SelectProductTabPage(_productTabControl.SelectedIndex); InitializeProductTabPages(); // Initial UI States SelectProductTabPage(AppDefinition.MOTHER_BOARD_INDEX); UpdateCartSectionViewOnOrderChanged(); RefreshControls(); }
public void TestAddCurrentSelectedProductToOrderIfProductIsNotInOrder() { var product = new Product(1, TestDefinition.DUMP_STRING, TestDefinition.DUMP_STRING, new Money(TestDefinition.DUMP_INTEGER), TestDefinition.DUMP_INTEGER, TestDefinition.DUMP_STRING, TestDefinition.DUMP_STRING); _target.SetFieldOrProperty(MEMBER_VARIABLE_NAME_CURRENT_SELECTED_PRODUCT, product); _orderPresentationModel.AddCurrentSelectedProductToOrderIfProductIsNotInOrder(); Assert.AreEqual(_model.GetOrderItemAt(0).Product, product); }
public OrderForm(CreditCardPaymentForm creditCardPaymentFormData, OrderPresentationModel orderPresentationModelData, Model modelData) { InitializeComponent(); _creditCardPaymentForm = creditCardPaymentFormData; _orderPresentationModel = orderPresentationModelData; _model = modelData; this.Disposed += RemoveEvents; // Observers _model.OrderChanged += UpdateCartSectionViewOnOrderChanged; _model.OrderCleared += ClearCartDataGridViewOnOrderCleared; _model.OrderAdded += AddOrderItemToCartDataGridView; _model.OrderRemoved += RemoveOrderItemAtFromCartDataGridView; _model.OrderItemQuantityChanged += UpdateOrderItemTotalPriceAtInCartDataGridView; _model.OrderItemQuantityIsExceededStorageQuantity += ShowMessageBoxAndSetOrderItemQuantityToStorageQuantityOnOrderItemQuantityIsExceededStorageQuantity; _model.ProductInfoChanged += UpdateViewOnProductInfoChanged; _model.ProductAdded += UpdateViewOnProductAdded; _model.ProductTypeAdded += UpdateViewOnProductTypeAdded; _orderPresentationModel.AddButtonEnabledChanged += UpdateAddButtonView; _orderPresentationModel.CurrentProductInfoChanged += UpdateProductInfoView; _orderPresentationModel.CurrentProductPageIndexChanged += UpdatePageLabelAndLeftRightArrowButtonsView; // UI _cartDataGridView.CellPainting += (sender, eventArguments) => DataGridViewHelper.InitializeButtonImageOfButtonColumn(eventArguments, CART_DELETE_BUTTON_COLUMN_INDEX, Resources.img_trash_bin); _cartDataGridView.CellContentClick += ClickCartDataGridViewCellContent; _cartDataGridView.CellValueChanged += ChangeCartDataGridViewCellValue; _leftArrowButton.Click += (sender, eventArguments) => GoToPreviousProductPage(); _rightArrowButton.Click += (sender, eventArguments) => GoToNextProductPage(); _addButton.Click += (sender, eventArguments) => _orderPresentationModel.AddCurrentSelectedProductToOrderIfProductIsNotInOrder(); _orderButton.Click += ClickOrderButton; _productTabControl.SelectedIndexChanged += HandleSelectedIndexChanged; // Initial UI States InitializeProductTabPageButtonsContainers(); InitializeTabPages(); InitializeProductTabPages(); SelectProductTabPage(FIRST_PRODUCT_TAB_PAGE_INDEX); InitializeCartDataGridView(); UpdateCartSectionViewOnOrderChanged(); }