public void Handle_RequestonOrderStatus_ReturnsOrderNotFound() { V1Processing processing = new V1Processing(); RequestOrderStatus request = new RequestOrderStatus { OrderId = "2" }; OperationStatus answer = processing.Handle(new Packet <IPacketContent>(request) { Version = "v1" }).Content as OperationStatus; Assert.Equal(ResultCode.OrderNotFound, answer.ResultCode); }
/// <summary> /// Проверка статуса заказа /// </summary> /// <param name="order_id">идентификатор заказа на стороне продавца</param> /// <returns>Код статуса заказа или код ошибки</returns> public ResultCode GetStatus(string order_id) { #region Проверка входящих параметров //ненулеватость if (String.IsNullOrWhiteSpace(order_id)) { throw new ArgumentNullException(nameof(order_id)); } #endregion RequestOrderStatus request = new RequestOrderStatus { OrderId = order_id }; OperationStatus response = transport.SendRequest <RequestOrderStatus, OperationStatus>(request); return(response.ResultCode); }
/// <summary> /// Запрос статуса /// </summary> /// <param name="request">Запрос</param> /// <returns>OperationStatus с кодом статуса или ошибкой</returns> private OperationStatus Handle(RequestOrderStatus request) { OperationStatus orderStatus = new OperationStatus(); //Предтранзакционные проверки foreach (var checkup in RequestOrderStatusPreCheckups) { if (!checkup.Perform(request, orderStatus)) { return(orderStatus); //Входные данные не прошли проверку } } Order order = Storage.Orders.Values.FirstOrDefault(o => o.OrderId == request.OrderId); if (order == null) { orderStatus.ResultCode = ResultCode.OrderNotFound; return(orderStatus); } switch (order.Status) { case OrderStatus.Paid: orderStatus.ResultCode = ResultCode.OrderPaid; break; case OrderStatus.Refunded: orderStatus.ResultCode = ResultCode.OrderRefunded; break; case OrderStatus.OnHold: orderStatus.ResultCode = ResultCode.OrderOnHold; break; default: orderStatus.ResultCode = ResultCode.GeneralError; break; } return(orderStatus); }