Пример #1
0
        public Task ChangeAsync(string orderId, [FromBody] OrderChangeRequest request)
        {
            if (!_ordersCache.TryGetOrderById(orderId, out var order))
            {
                throw new InvalidOperationException("Order not found");
            }

            try
            {
                var originator = GetOriginator(request.Originator);

                var correlationId = string.IsNullOrWhiteSpace(request.CorrelationId)
                    ? _identityGenerator.GenerateGuid()
                    : request.CorrelationId;

                _tradingEngine.ChangeOrder(order.Id, request.Price, request.Validity, originator,
                                           request.AdditionalInfo, correlationId, request.ForceOpen);
            }
            catch (ValidateOrderException ex)
            {
                throw new InvalidOperationException(ex.Message);
            }

            _operationsLogService.AddLog("action order.changeLimits", order.AccountId,
                                         new { orderId = orderId, request = request.ToJson() }.ToJson(), "");

            return(Task.CompletedTask);
        }
Пример #2
0
 public ResultJson EnterThing(OrderChangeRequest request)
 {
     if (OrderFunc.Instance.EnterThing(request.Id))
     {
         return(new ResultJson {
             HttpCode = 200, Message = "收货成功!"
         });
     }
     else
     {
         return(new ResultJson {
             HttpCode = 300, Message = "收货失败!"
         });
     }
 }
Пример #3
0
 public ResultJson SurePay(OrderChangeRequest request)
 {
     if (OrderFunc.Instance.SurePay(request.Id))
     {
         return(new ResultJson {
             HttpCode = 200, Message = "支付成功!"
         });
     }
     else
     {
         return(new ResultJson {
             HttpCode = 300, Message = "支付失败!"
         });
     }
 }
Пример #4
0
 public ResultJson ConvertErp(OrderChangeRequest request)
 {
     if (OrderFunc.Instance.ConvertToErp(request.Id))
     {
         return(new ResultJson {
             HttpCode = 200, Message = "成功转至Erp!"
         });
     }
     else
     {
         return(new ResultJson {
             HttpCode = 300, Message = "转到Erp失败,请查看是否已转入!"
         });
     }
 }
Пример #5
0
 public ResultJson ReturnFail(OrderChangeRequest request)
 {
     if (OrderFunc.Instance.ReturnFail(request.Id))
     {
         return(new ResultJson {
             HttpCode = 200, Message = "退货失败!"
         });
     }
     else
     {
         return(new ResultJson {
             HttpCode = 300
         });
     }
 }
Пример #6
0
 public ResultJson UpdateExpress(OrderChangeRequest request)
 {
     if (OrderFunc.Instance.UpdateModel(new DbOpertion.Models.Order_Info {
         Id = request.Id, ExpressCompany = request.ExpressCompany, ExpressNo = request.ExpressNo
     }))
     {
         return(new ResultJson {
             HttpCode = 200, Message = "更新快递信息成功!"
         });
     }
     else
     {
         return(new ResultJson {
             HttpCode = 300, Message = "更新快递信息失败!"
         });
     }
 }
Пример #7
0
        public ResultJson SendThing(OrderChangeRequest request)
        {
            var result = OrderFunc.Instance.SendThing2(request.Id);

            if (result.ToLower() == "true")
            {
                return(new ResultJson {
                    HttpCode = 200, Message = "发货成功!"
                });
            }
            else
            {
                return(new ResultJson {
                    HttpCode = 300, Message = result
                });
            }
        }
Пример #8
0
        public async Task ChangeAsync(string orderId, [FromBody] OrderChangeRequest request)
        {
            if (!_ordersCache.TryGetOrderById(orderId, out var order))
            {
                throw new InvalidOperationException("Order not found");
            }

            ValidationHelper.ValidateAccountId(order, request.AccountId);


            var originator = GetOriginator(request.Originator);

            await _tradingEngine.ChangeOrderAsync(order.Id, request.Price, originator,
                                                  request.AdditionalInfo, request.ForceOpen);

            _operationsLogService.AddLog("action order.changeLimits", order.AccountId,
                                         new { orderId = orderId, request = request.ToJson() }.ToJson(), "");
        }
Пример #9
0
        public IActionResult EditOrder([FromBody] OrderChangeRequest request)
        {
            var parseResult = Enum.TryParse(request.OrderState, true, out OrderStateEnum orderState);

            if (parseResult == false)
            {
                return(BadRequest("Bad OrderState supplied"));
            }

            var orderContext = _dbContext.Set <Order>();

            var order = orderContext.FirstOrDefault(x => x.Id == Guid.Parse(request.OrderId));

            if (order == null)
            {
                return(BadRequest("No such order"));
            }

            order.State = orderState;

            order.LastModifiedDate = DateTimeOffset.Now;
            var user = _dbContext.Set <User>().FirstOrDefault(x => x.Email == User.Claims.FirstOrDefault(y => y.Type == ClaimTypes.Name).Value);

            order.ModifiedBy   = user;
            order.ModifiedById = user?.Id;

            if (orderState == OrderStateEnum.Completed || orderState == OrderStateEnum.Rejected)
            {
                order.FinishedDate = DateTimeOffset.Now;
            }

            var result = _dbContext.SaveChanges();

            if (result > 0)
            {
                return(Ok());
            }

            return(BadRequest("Nothing changed"));
        }
Пример #10
0
 protected virtual void OnOrderChangeRequested(OrderChangeEventArgs e)
 {
     OrderChangeRequest?.Invoke(this, e);
 }