예제 #1
0
        public async Task <ActionResult> CreditNewRow(long paymentId, int deliveryId)
        {
            try
            {
                var paymentOrder = await this._sveaClient.PaymentAdmin.GetOrder(paymentId);

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateDeliveryAction(paymentOrder, deliveryId, DeliveryActionType.CanCreditNewRow);

                if (TempData["ErrorMessage"] == null)
                {
                    var delivery = paymentOrder.Deliveries.FirstOrDefault(dlv => dlv.Id == deliveryId);

                    var response = await delivery.Actions.CreditNewRow(
                        new CreditNewOrderRowRequest(
                            new CreditOrderRow(
                                name: "Slim Fit 512",
                                MinorUnit.FromDecimal(100),
                                MinorUnit.FromDecimal(12)
                                ),
                            pollingTimeout : TimeSpan.FromSeconds(15)
                            )
                        );

                    TempData["CreditMessage"] = $"New credit row created. -> {response.ResourceUri.AbsoluteUri}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

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

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateDeliveryAction(paymentOrder, deliveryId, DeliveryActionType.CanCreditOrderRows);

                if (TempData["ErrorMessage"] == null)
                {
                    var delivery    = paymentOrder.Deliveries.FirstOrDefault(dlv => dlv.Id == deliveryId);
                    var orderRowIds = delivery.OrderRows.Where(row => row.AvailableActions.Contains(OrderRowActionType.CanCreditRow)).Select(row => (long)row.OrderRowId).ToList();
                    var response    = await delivery.Actions.CreditOrderRows(
                        new CreditOrderRowsRequest(orderRowIds, pollingTimeout : TimeSpan.FromSeconds(15))
                        );

                    TempData["CreditMessage"] = $"Delivery order rows credited. -> {response.ResourceUri.AbsoluteUri}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

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

                TempData["ErrorMessage"] = ActionsValidationHelper.ValidateDeliveryAction(paymentOrder, deliveryId, DeliveryActionType.CanCreditAmount);

                if (TempData["ErrorMessage"] == null)
                {
                    var delivery = paymentOrder.Deliveries.FirstOrDefault(dlv => dlv.Id == deliveryId);

                    var response = await delivery.Actions.CreditAmount(new CreditAmountRequest(MinorUnit.FromInt(100)));

                    TempData["CreditMessage"] = $"Delivery credited. Credit id: {response.CreditId}";
                }
            }
            catch (Exception e)
            {
                TempData["ErrorMessage"] = $"Something unexpected happened. {e.Message}";
            }

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