Example #1
0
        public TestOrderApiController()
        {
            _dataProviderMock = new Mock <IDataProvider>();
            _kafkaSettings    = new Mock <IOptions <KafkaSettings> >();
            _deadlineManager  = new Mock <IDeadlineManager>();
            _orderManager     = new Mock <IOrderManager>();
            _logProvider      = new Mock <ILogProvider>();
            _metricsProvider  = new Mock <IMetricsProvider>();

            //_orderManager = new OrderManager(_dataProviderMock.Object, _pubSubProvider.Object, _kafkaSettings.Object);

            _order = new Order()
            {
                EventID = "TestEventID", OrderId = "TestOrderId", OrderSubmitTime = DateTime.Now, Username = Guid.NewGuid().ToString(), ValueA = "TestValueA", ValueB = "TestValueB"
            };
            _submitOrderDto = new SubmitOrderDto()
            {
                EventID = "TestEventID", Username = Guid.NewGuid().ToString(), ValueA = "TestValueA", ValueB = "TestValueB"
            };

            _orderApi = new OrderApiController(_deadlineManager.Object,
                                               _orderManager.Object, _logProvider.Object,
                                               _metricsProvider.Object, _kafkaSettings.Object);

            Mapper.Initialize(cfg => {
                cfg.CreateMap <SubmitOrderDto, Order>();
                cfg.CreateMap <CommitOrderDto, Order>();
            });
        }
        //[Abp.Domain.Uow.UnitOfWork]
        public async Task <JsonResult> OffConsume(SubmitOrderDto dto)
        {
            var json = new JsonResult(new { succ = true, msg = L("Consume") + L("Success") + "!" });

            //Entity.CommonSpecObject obj = new Entity.CommonSpecObject();
            //if (ObjId > 0)
            //{
            //    obj = await _objService.GetEntityById(ObjId);
            //    if (obj == null)
            //    {
            //        json.Value = new { succ = false, msg = L("NotExist{0}", "SPU") + "!" };
            //        return json;
            //    }
            //}
            var UserInfo = await _sessionAppService.GetCurrentLoginInformations();

            //GoodsOrder order = new GoodsOrder();
            dto.Order.BillNumber   = _comService.GetBillNumber(Enum.OrderNumberType.OFGD);
            dto.Order.TenantId     = UserInfo.Tenant.Id;
            dto.Order.BusinessId   = (long)_sqlExecuter.ExecuteDataSet($"select businessid from tchainStore where id={UserInfo.User.ChainStoreId}").Tables[0].Rows[0][0];
            dto.Order.ChainStoreId = UserInfo.User.ChainStoreId;
            //order.MemberId = MemberId;
            //order.TotalMoney = obj.Price * count;
            //order.TotalPay = obj.Price * count;
            // if()
            return(json);
        }
Example #3
0
 public SubmitOrderCommand(SubmitOrderDto submitOrder)
 {
     OrderRef        = Guid.NewGuid();
     Customer        = submitOrder.Customer;
     Payment         = submitOrder.PaymentRequest;
     BasketRef       = submitOrder.BasketRef;
     DeliveryAddress = submitOrder.DeliveryAddress;
 }
Example #4
0
        public async Task SubmitOrder([FromBody] SubmitOrderDto submitOrderDto)
        {
            var order = await orderService.SubmitOrder(submitOrderDto.OrderId);

            await publishEndpoint.Publish <OrderSubmittedEvent>(new
            {
                Credit        = submitOrderDto.Credit,
                CustomerId    = order.CustomerId,
                OrderId       = submitOrderDto.OrderId,
                CorrelationId = Guid.NewGuid()
            });
        }
Example #5
0
        public async Task <IActionResult> SubmitOrder([FromBody] SubmitOrderDto submitOrderDto)
        {
            try
            {
                _prometheusProvider.CounterIncrement(MetricCounter.OrderRequestCounter);

                var order = Mapper.Map <Order>(submitOrderDto);
                order.OrderSubmitTime = DateTime.Now;

                if (!await _orderManager.OrderValidation(order, true))
                {
                    _prometheusProvider.CounterIncrement(MetricCounter.FailedRequestCounter);
                    _prometheusProvider.CounterIncrement(MetricCounter.FailedValidationCounter);

                    return(NotFound("Warning: Order Validation Fail"));
                }

                await _orderManager.CreateOrder(order);

                if (!string.IsNullOrEmpty(order.OrderId))
                {
                    _prometheusProvider.CounterIncrement(MetricCounter.SuccessOrderCreatedCounter);
                    await _orderManager.SendToCommit(order);
                }
                else
                {
                    _prometheusProvider.CounterIncrement(MetricCounter.FailedRequestCounter);
                    return(NotFound("Warning: Order Creation Fail"));
                }

                return(Ok(order.OrderId));
            }
            catch (Exception ex)
            {
                _prometheusProvider.CounterIncrement(MetricCounter.FailedRequestCounter);
                _prometheusProvider.CounterIncrement(MetricCounter.ExceptionCounter);
                _logProvider.PublishError("SubmitOrder([FromBody]OrderDto order)", "Order Fail" + JsonConvert.SerializeObject(submitOrderDto), ex);
                return(NotFound("Warning: Error submit order, please contact admin person"));
            }
        }
Example #6
0
 public async Task <IActionResult> Submit([FromBody] SubmitOrderDto request)
 {
     return(Ok(await _mediator.Send(new SubmitOrderCommand(request))));
 }