예제 #1
0
    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));
    }
예제 #2
0
    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"));
    }