public async Task <Result <OrderForDetailDto> > Handle(GetOrderQuery request, CancellationToken cancellationToken) { var order = await _repo.GetOrder(request.OrderId); var orderForDetail = _mapper.Map <OrderForDetailDto>(order); return(Result <OrderForDetailDto> .Success(orderForDetail)); }
public async Task <Result <Unit> > Handle(ProcessOrderCommand command, CancellationToken cancellationToken) { var order = await _repo.GetOrder(command.OrderId); var user = await _repo.GetUser(command.UserId); bool orderProcessed = order.ProcessOrder(); if (orderProcessed) { user.AddMoney(order.Total); return(Result <Unit> .NoContent()); } return(Result <Unit> .Failure("Order cannot be processed")); }