public async Task <IActionResult> Complete([FromBody] CompleteOrderRequest request)
 {
     return(await HandleAsync(async() =>
     {
         var client = getClientFactory.Create <CompleteOrderRequest, CompleteOrderResponse>();
         return await client.Request(request);
     }));
 }
        public bool CompleteOrder(int approved, string errorcode, string errormessage, CheckoutRequest request, GatewayOrderDetails gatewayOrderDetails)
        {
            var success = false;

            var randomKey     = Guid.NewGuid().ToString("N");
            var privateKey    = ConfigurationManager.AppSettings["AppTestSecretKey"];
            var transactionId = gatewayOrderDetails.reference_id;

            var completeOrderRequest = new CompleteOrderRequest()
            {
                orderid       = request.orderid,
                transactionid = transactionId,
                invoice       = request.invoice,
                errormessage  = errormessage,
                errorcode     = errorcode,
                amount        = request.amounttotal,
                approved      = approved,
                randomkey     = randomKey,
                signature     = Md5Helper.GetMd5Hash(randomKey + privateKey + request.orderid + request.invoice + transactionId)
            };

            try
            {
                var response = _webApiClient.HTTPPostRequest(request.notificationurl, "", completeOrderRequest, null);

                CompleteOrderResponse completeOrderResponse = null;

                if (response != null)
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        using (var streamReader = new StreamReader(response.GetResponseStream()))
                        {
                            var responseText = streamReader.ReadToEnd();
                            completeOrderResponse = JsonConvert.DeserializeObject <CompleteOrderResponse>(responseText);
                        }
                    }
                }

                if (completeOrderResponse != null)
                {
                    if (completeOrderResponse.processed == 1)
                    {
                        _repository.UpdateCheckoutRequestStatus(request.id, Status.Completed);
                        success = true;
                    }
                    else
                    {
                        _repository.UpdateCheckoutRequestStatus(request.id, Status.Failed);
                    }
                }
            }
            catch {
                _repository.UpdateCheckoutRequestStatus(request.id, Status.Failed);
            }

            return(success);
        }
示例#3
0
        public async Task <CompleteOrderResponse> CompleteOrder(CompleteOrderRequest request)
        {
            Domain.Order order = await repo.GetOrder(request.OrderId);

            order.Confirm();
            order = await repo.SaveAsync(order);

            return(new CompleteOrderResponse(true, ResponseAction.Updated));
        }
示例#4
0
        public async Task OnGet(int orderId)
        {
            CompleteOrderRequest request = new CompleteOrderRequest
            {
                OrderId = orderId
            };

            CompleteOrderResponse response = await mediator.Send(request);

            ProductName = response.ProductName;
        }
        public async Task <bool> CompleteOrder(Guid orderId)
        {
            var request = new CompleteOrderRequest();

            request.OrderId = orderId;


            var response = await client.Post <CompleteOrderRequest, CompleteOrderResponse>(routingConfig.URL,
                                                                                           routingConfig.CompleteOrder, request, HeaderAccept.Json);

            return(response.IsSuccess);
        }
示例#6
0
        async Task <Result <OrderCompleted> > Run(SetupData data)
        {
            var order = new Order
            {
                Id                 = 1,
                ItemId             = 1,
                LendingUnitId      = 2,
                RequestingMemberId = 1,
                RequestingUnitId   = 3,
                Status             = data.StartingStatus
            };

            var unitId = data.MemberSide == OrderSide.Lending ? order.LendingUnitId : order.RequestingUnitId;
            var member = new Member(2, unitId, data.MemberPermissions);
            var item   = new Item
            {
                Id    = 1,
                Price = 100
            };
            var orderingService = new Mock <IOrderingService>();

            orderingService.Setup(a => a.GetOrder(1)).ReturnsAsync(order);
            orderingService.Setup(a => a.GetMemberById(2)).ReturnsAsync(member);
            orderingService.Setup(a => a.UpdateOrder(It.IsAny <Order>()))
            .ReturnsAsync(new BaseGatewayResponse(true));
            orderingService.Setup(a => a.Update(It.IsAny <UnitItem>()))
            .ReturnsAsync(new BaseGatewayResponse(true));
            orderingService.Setup(a => a.GetItem(1)).ReturnsAsync(item);
            orderingService.Setup(a => a.GetUnitItem(It.IsAny <int>(), It.IsAny <int>()))
            .ReturnsAsync(new UnitItem
            {
                UnitId = order.LendingUnitId,
                Amount = data.UnitItemAmount,
                ItemId = order.ItemId
            });
            orderingService.Setup(a => a.TransterMoney(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>()))
            .ReturnsAsync(new BaseGatewayResponse(true));
            var handler = new CompleteOrderHandler(orderingService.Object);

            var request = new CompleteOrderRequest(1, 2);

            return(await handler.Handle(request));
        }
 public async Task <IActionResult> Complete([FromBody] CompleteOrderRequest request)
 {
     return(await HandleAsync(async() => await service.CompleteOrder(request)));
 }