Beispiel #1
0
        public async Task <ActionResult> AddOrderRow(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanAddOrderRow);

                if (TempData["ErrorMessage"] == null)
                {
                    var response = await paymentOrder.Actions.AddOrderRow(
                        new AddOrderRowRequest(
                            articleNumber : "1234567890",
                            name : "Slim Fit 512",
                            quantity : MinorUnit.FromInt(2),
                            unitPrice : MinorUnit.FromInt(100),
                            discountPercent : MinorUnit.FromInt(0),
                            vatPercent : MinorUnit.FromInt(12),
                            unit : "SEK",
                            TimeSpan.FromSeconds(15)
                            )
                        );

                    TempData["OrderRowMessage"] = $"Order row has been added -> {response. ResourceUri.AbsoluteUri}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }
Beispiel #2
0
        public async Task <ActionResult> DeliverOrderPartially(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanDeliverOrderPartially);

                if (TempData["ErrorMessage"] == null)
                {
                    var orderRow = new List <long> {
                        paymentOrder.OrderRows.First(x => x.AvailableActions.Contains(OrderRowActionType.CanDeliverRow)).OrderRowId
                    };
                    var deliverRequest = new DeliveryRequest(orderRow, pollingTimeout: TimeSpan.FromSeconds(15));
                    var response       = await paymentOrder.Actions.DeliverOrder(deliverRequest);

                    TempData["DeliverMessage"] = $"Order delivered partially -> {response.ResourceUri.AbsoluteUri}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }
Beispiel #3
0
        public async Task <ActionResult> CancelOrderRows(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanCancelOrderRow);

                if (TempData["ErrorMessage"] == null)
                {
                    var orderRow = paymentOrder.OrderRows.FirstOrDefault(x => x.AvailableActions.Contains(OrderRowActionType.CanCancelRow));

                    if (orderRow == null)
                    {
                        throw new Exception();
                    }

                    await paymentOrder.Actions.CancelOrderRows(new CancelOrderRowsRequest(new long[] { orderRow.OrderRowId }));

                    TempData["CancelMessage"] = $"Order row with id : {orderRow.OrderRowId} has been cancelled.";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }
Beispiel #4
0
        public async Task <IActionResult> DeliverOrder(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanDeliverOrder);

                if (TempData["ErrorMessage"] == null)
                {
                    var orderRowIds = paymentOrder.OrderRows.Select(row => (long)row.OrderRowId).ToList();
                    var response    = await paymentOrder.Actions.DeliverOrder(
                        new DeliveryRequest(orderRowIds, pollingTimeout : TimeSpan.FromSeconds(15))
                        );

                    TempData["DeliverMessage"] = $"Order delivered -> {response.ResourceUri.AbsoluteUri}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }
Beispiel #5
0
        public async Task <ActionResult> ReplaceOrderRows(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanAddOrderRow);

                if (TempData["ErrorMessage"] == null)
                {
                    var newOrderRows = new List <NewOrderRow>
                    {
                        new NewOrderRow(
                            name: "Slim Fit 512",
                            quantity: MinorUnit.FromInt(2),
                            unitPrice: MinorUnit.FromInt(100),
                            vatPercent: MinorUnit.FromInt(12),
                            discountPercent: MinorUnit.FromInt(0),
                            rowId: null,
                            unit: "SEK",
                            articleNumber: "1234567890"
                            ),
                        new NewOrderRow(
                            name: "Slim Fit 513",
                            quantity: MinorUnit.FromInt(3),
                            unitPrice: MinorUnit.FromInt(200),
                            vatPercent: MinorUnit.FromInt(25),
                            discountPercent: MinorUnit.FromInt(0),
                            rowId: null,
                            unit: "SEK",
                            articleNumber: "0987654321"
                            )
                    };

                    await paymentOrder.Actions.ReplaceOrderRows(new ReplaceOrderRowsRequest(newOrderRows));

                    TempData["OrderRowMessage"] = "Order rows have been updated";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }
Beispiel #6
0
        public async Task <ActionResult> UpdateOrderRows(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanAddOrderRow);

                if (TempData["ErrorMessage"] == null)
                {
                    var existingOrderRows = paymentOrder.OrderRows;

                    var newOrderRows = new List <NewOrderRow>();

                    foreach (var orderRow in existingOrderRows)
                    {
                        newOrderRows.Add(new NewOrderRow(
                                             orderRow.Name,
                                             MinorUnit.FromInt((orderRow.Quantity.Value + 1) % 4 + 1),
                                             orderRow.UnitPrice,
                                             orderRow.VatPercent,
                                             orderRow.DiscountPercent,
                                             orderRow.OrderRowId,
                                             orderRow.Unit,
                                             orderRow.ArticleNumber
                                             ));
                    }

                    await paymentOrder.Actions.UpdateOrderRows(new UpdateOrderRowsRequest(newOrderRows));

                    TempData["OrderRowMessage"] = "Order rows have been updated";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }
Beispiel #7
0
        public async Task <ActionResult> Cancel(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanCancelOrder);

                if (TempData["ErrorMessage"] == null)
                {
                    await paymentOrder.Actions.Cancel(new CancelRequest(true));

                    TempData["CancelMessage"] = $"Payment has been cancelled: {paymentId}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }
Beispiel #8
0
        public async Task <ActionResult> CancelAmount(long paymentId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateOrderAction(paymentOrder, OrderActionType.CanCancelAmount);

                if (TempData["ErrorMessage"] == null)
                {
                    await paymentOrder.Actions.CancelAmount(new CancelAmountRequest(MinorUnit.FromDecimal(1)));

                    TempData["CancelMessage"] = $"Cancelling parts of the total amount: {paymentId}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

            return(RedirectToAction("Details", "Orders"));
        }