Example #1
0
        public void UpdateOrderForNonExistingOrder()
        {
            //arrange
            List <PaymentOrderLine> orderlinesToUpdate = new List <PaymentOrderLine>();

            PaymentOrderLine orderlineToUpdate = InitializeOrderlinesTestData()[0];

            orderlineToUpdate.Quantity = 0 - orderlineToUpdate.Quantity;
            orderlinesToUpdate.Add(orderlineToUpdate);

            PaymentOrderLine newOrderLine = new PaymentOrderLine
            {
                Description = "New Item 1",
                ItemId      = "3",
                Quantity    = 2,
                GoodsType   = GoodsType.Item,
                UnitPrice   = 11.0
            };

            orderlinesToUpdate.Add(newOrderLine);

            UpdateOrderRequest updateOrderRequest = new UpdateOrderRequest("-1", orderlinesToUpdate);

            //act
            UpdateOrderResult updateOrderResult = _api.UpdateOrder(updateOrderRequest);

            //assert
            Assert.AreEqual(updateOrderResult.Result, Result.SystemError);
            Assert.IsNotEmpty(updateOrderResult.ResultMessage);
            Assert.IsNotEmpty(updateOrderResult.ResultMerchantMessage);
        }
Example #2
0
        [Test]         // Not really a unit test, just a Klarna calling example
        public static void Main()
        {
            String paymentId = "35";             // PUT A PAYMENT ID FROM A PREVIOUSLY CREATED ORDER HERE

            CaptureResult captureResult = _api.Capture(new CaptureRequest {
                PaymentId = paymentId
            });

            Assert.AreEqual(Result.Success, captureResult.Result);

            List <PaymentOrderLine> orderLines = new List <PaymentOrderLine> {
                new PaymentOrderLine {
                    Description = "description 1",
                    ItemId      = "id 01",
                    Quantity    = -1,
                    UnitPrice   = 1.1,
                    GoodsType   = GoodsType.Item
                },
                new PaymentOrderLine {
                    Description = "new item",
                    ItemId      = "new id",
                    Quantity    = 1,
                    UnitPrice   = 1.1,
                    GoodsType   = GoodsType.Item
                }
            };

            UpdateOrderRequest req = new UpdateOrderRequest(paymentId, orderLines);

            UpdateOrderResult result = _api.UpdateOrder(req);

            Assert.AreEqual(Result.Success, result.Result);
        }
Example #3
0
        public void UpdateOrderForExistingOrder()
        {
            //arrange
            InvoiceReservationRequest request = new InvoiceReservationRequest
            {
                Terminal               = _testKlarnaDKTerminal,
                ShopOrderId            = "invoice-" + Guid.NewGuid().ToString(),
                Amount                 = Amount.Get(42.00, Currency.DKK),
                CustomerInfo           = InitializeCustomerInfoTestData(),
                OrderLines             = InitializeOrderlinesTestData(),
                PersonalIdentifyNumber = "0801363945",
                BirthDate              = "0801363945"
            };
            InvoiceReservationResult reservationResult = _api.CreateInvoiceReservation(request);

            CaptureRequest captureRequest = new CaptureRequest
            {
                Amount    = Amount.Get(42.00, Currency.DKK),
                PaymentId = reservationResult.Payment.PaymentId
            };
            CaptureResult captureResult = _api.Capture(captureRequest);

            List <PaymentOrderLine> orderlinesToUpdate = new List <PaymentOrderLine>();

            PaymentOrderLine orderlineToUpdate = InitializeOrderlinesTestData()[0];

            orderlineToUpdate.Quantity = 0 - orderlineToUpdate.Quantity;
            orderlinesToUpdate.Add(orderlineToUpdate);

            PaymentOrderLine newOrderLine = new PaymentOrderLine
            {
                Description = "New Item 1",
                ItemId      = "3",
                Quantity    = 2,
                GoodsType   = GoodsType.Item,
                UnitPrice   = 11.0
            };

            orderlinesToUpdate.Add(newOrderLine);

            //orderlinesToUpdate.ForEach(p => p.Quantity = 0 - p.Quantity);
            UpdateOrderRequest updateOrderRequest = new UpdateOrderRequest(captureResult.Payment.PaymentId, orderlinesToUpdate);

            //act
            UpdateOrderResult updateOrderResult = _api.UpdateOrder(updateOrderRequest);

            //assert
            Assert.AreEqual(updateOrderResult.Result, Result.Success);
        }
 public UpdateOrderStatusInfo()
 {
     Result = new UpdateOrderResult();
 }
Example #5
0
        public UpdateOrderResult UpdateOrderStatus(string user, string token, string orderId, string status)
        {
            var log = new MongoHistoryAPI()
            {
                APIUrl     = "/api/order/updateorderstatus",
                CreateTime = DateTime.Now,
                Sucess     = 1
            };

            var result = new UpdateOrderResult()
            {
                id  = "1",
                msg = "success"
            };

            try
            {
                if (!mongoHelper.checkLoginSession(user, token))
                {
                    throw new Exception("Wrong token and user login!");
                }

                var checkStaff = db.MStaffs.Where(p => p.MUser == user).FirstOrDefault();

                if (checkStaff == null)
                {
                    throw new Exception("Sai thông tin nv");
                }

                if (!isAdmin(user))
                {
                    throw new Exception("Sai thông tin quyen");
                }

                var checkStt = db.OrderStatus.Find(status);

                if (checkStt == null)
                {
                    throw new Exception("Sai thông tin status");
                }

                var checkOrder = db.MOrders.Find(orderId);

                if (checkOrder == null)
                {
                    throw new Exception("Sai thông tin order");
                }

                if (checkOrder.StatusId == checkStt.Id)
                {
                    throw new Exception("Trang thai khong khớp");
                }

                if (checkStt.PreStt != checkOrder.StatusId)
                {
                    throw new Exception("Sai trạng thái");
                }

                checkOrder.StatusId        = checkStt.Id;
                db.Entry(checkOrder).State = EntityState.Modified;
                db.SaveChanges();

                Utils.send(checkOrder.MStaff.MUser, "Đơn hàng", "Đơn hàng " + checkOrder.Code + " \nCủa đại lý: " + checkOrder.MAgency.Store + " \nĐã thay đổi trạng thái: " + checkStt.Name, mongoHelper);

                result.status     = checkStt.Name;
                result.statusCode = checkStt.Id;

                var findNextStt = db.OrderStatus.Where(p => p.PreStt == checkStt.Id).FirstOrDefault();

                if (findNextStt != null)
                {
                    result.nextStatus     = findNextStt.Name;
                    result.nextStatusCode = findNextStt.Id;
                }
            }
            catch (Exception e)
            {
                log.Sucess = 0;
                result.id  = "0";
                result.msg = e.Message;
            }

            log.ReturnInfo = new JavaScriptSerializer().Serialize(result);

            mongoHelper.createHistoryAPI(log);

            return(result);
        }