public void when_complete_order_successfully() { var completeOrder = new ChangeOrderStatus { Status = new OrderStatusDetail { OrderId = _orderId, Status = OrderStatus.Completed }, Fare = 23, Toll = 2, Tip = 5, Tax = 3, Surcharge = 1 }; _sut.When(completeOrder); var @event = _sut.ThenHasOne <OrderStatusChanged>(); Assert.AreEqual(_orderId, @event.SourceId); Assert.AreEqual(completeOrder.Fare, @event.Fare); Assert.AreEqual(completeOrder.Toll, @event.Toll); Assert.AreEqual(completeOrder.Tip, @event.Tip); Assert.AreEqual(completeOrder.Tax, @event.Tax); Assert.AreEqual(completeOrder.Surcharge, @event.Surcharge); Assert.AreEqual(true, @event.IsCompleted); }
public void Handle(ChangeOrderStatus command) { var order = _repository.Find(command.Status.OrderId); order.ChangeStatus(command.Status, command.Fare, command.Tip, command.Toll, command.Tax, command.Surcharge); _repository.Save(order, command.Id.ToString()); }
public async Task <ActionResult> ChangeOrderStatus(string orderNumber, [FromBody] ChangeOrderStatus changeOrderStatus) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } using (await AsyncLock.GetLockByKey(GetAsyncLockKey(orderNumber, WorkContext)).LockAsync()) { var order = await _orderApi.GetByNumberAsync(orderNumber, string.Empty); var authorizationResult = await _authorizationService.AuthorizeAsync(User, order, CanAccessOrderAuthorizationRequirement.PolicyName); if (!authorizationResult.Succeeded) { return(Unauthorized()); } order.Status = changeOrderStatus.NewStatus; await _orderApi.UpdateOrderAsync(order); } return(Ok()); }