public async Task <IActionResult> СheckoutPayment(OrderPaymentModel paymentModel) { if (ModelState.IsValid) { //TODO: validate if credit card is valid, balance is enough //model.Payment.CardNumber //2. Retrieve saved order on the previous steps var newOrderModel = _cache.Get <OrderModel>("NewOrder"); newOrderModel.Payment = new PaymentModel { AuthCode = paymentModel.AuthCode, CardNumber = paymentModel.CardNumber, CardExpiry = paymentModel.CardExpiry, CardSecurityCode = paymentModel.CardSecurityCode, Total = paymentModel.Total // TODO: remove - will bre recalculated }; return(View("OrderConfirmation", newOrderModel)); //go to step of final payment } return(View(paymentModel)); }
/// <summary> /// save to the database , Opens the printing tab /// </summary> private void SaveTheOrder() { if (RemovedOrderProducts.Count == 0) { if (CustomerWillPayNowValue.Value > 0) { OrderPaymentModel orderPayment = new OrderPaymentModel(); orderPayment.Staff = PublicVariables.Staff; orderPayment.Store = PublicVariables.Store; orderPayment.Paid = CustomerWillPayNowValue.Value.Value; orderPayment.Date = DateTime.Now; GlobalConfig.OrderPaymentValidator = new OrderPaymentValidator(); ValidationResult result = GlobalConfig.OrderPaymentValidator.Validate(orderPayment); if (result.IsValid == false) { MessageBox.Show(result.Errors[0].ErrorMessage); } else { GlobalConfig.Connection.AddOrderPaymentToTheDatabase(Order, orderPayment); if (MessageBox.Show("Do you want to print the order ?", "Printing...", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { PrintTheOrder(); } } } else if (StoreWillPayNowValue.Value > 0) { GlobalConfig.Connection.StorePayment(Order, StoreWillPayNowValue.Value.Value); } SetInitialValues(); } else { if (CustomerWillPayNowValue.Value > 0) { OrderPaymentModel orderPayment = new OrderPaymentModel(); orderPayment.Staff = PublicVariables.Staff; orderPayment.Store = PublicVariables.Store; orderPayment.Paid = CustomerWillPayNowValue.Value.Value; orderPayment.Date = DateTime.Now; GlobalConfig.OrderPaymentValidator = new OrderPaymentValidator(); ValidationResult result = GlobalConfig.OrderPaymentValidator.Validate(orderPayment); if (result.IsValid == false) { MessageBox.Show(result.Errors[0].ErrorMessage); } else { GlobalConfig.Connection.AddOrderPaymentToTheDatabase(Order, orderPayment); if (MessageBox.Show("Do you want to print the order ?", "Printing...", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { PrintTheOrder(); } } } else if (StoreWillPayNowValue.Value > 0) { GlobalConfig.Connection.StorePayment(Order, StoreWillPayNowValue.Value.Value); } GlobalConfig.Connection.UpdateOrder(Order, RemovedOrderProducts); SetInitialValues(); } }
private void SaveTheOrder() { if (CheckIfTheCurrentOrderProductRecordsValid() == true) { bool valid = true; OrderModel order = new OrderModel(); order.Customer = (CustomerModel)CustomerSearchValue.SelectedItem; order.DateTimeOfTheOrder = DateTime.Now; order.Store = PublicVariables.Store; order.Staff = PublicVariables.Staff; order.OrderPayments = new List <OrderPaymentModel>(); if (CustomerWillPayNowValue.Value.Value > 0) { OrderPaymentModel orderPayment = new OrderPaymentModel(); orderPayment.Staff = PublicVariables.Staff; orderPayment.Store = PublicVariables.Store; orderPayment.Paid = CustomerWillPayNowValue.Value.Value; orderPayment.Date = DateTime.Now; GlobalConfig.OrderPaymentValidator = new OrderPaymentValidator(); ValidationResult result = GlobalConfig.OrderPaymentValidator.Validate(orderPayment); if (result.IsValid == false) { MessageBox.Show(result.Errors[0].ErrorMessage); valid = false; } else { order.OrderPayments.Add(orderPayment); } } order.Details = OrderDetailsValue.Text; order.OrderProducts = new List <OrderProductModel>(); foreach (OrderProductRecordModel orderProductRecord in OrderProductRecords) { // Validation GlobalConfig.OrderProductRecordValidator = new OrderProductRecordValidator(); ValidationResult result = GlobalConfig.OrderProductRecordValidator.Validate(orderProductRecord); if (result.IsValid == false) { MessageBox.Show(result.Errors[0].ErrorMessage); valid = false; } else { order.OrderProducts.Add(orderProductRecord.OrderProduct); } } GlobalConfig.OrderValidator = new OrderValidator(); ValidationResult OrderResult = GlobalConfig.OrderValidator.Validate(order); if (OrderResult.IsValid == false) { MessageBox.Show(OrderResult.Errors[0].ErrorMessage); valid = false; } else { if (valid == true) { order = GlobalConfig.Connection.AddOrderToTheDatabase(order, OrderProductRecords); if (MessageBox.Show("Do you want to print the order ?", "Printing...", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { PrintTheOrder(order); } else { ClearCustomer(); ClearProduct(); SetInitialValues(); } } } } }