namespace BrokerCore.Services; using Common; using DbEntity; using Entity; using Repository; // 화폐(Currency) 주문 완료 전략 public class CurrencyOrderCompletionStrategy : IOrderCompletionStrategy { private readonly PlanetItemExchangeOrderRepo m_planet_item_exchange_repo; public CurrencyOrderCompletionStrategy(PlanetItemExchangeOrderRepo planetItemExchangeOrderRepo) { m_planet_item_exchange_repo = planetItemExchangeOrderRepo; } public async Task completeOrder(PlanetUserEntity planetUserEntity, PlanetItemExchangeOrder orderCreated, CancellationToken cancellationToken = default) { var (result, order_completed) = await m_planet_item_exchange_repo.findAndUpdateStatus(orderCreated.OrderId, ExchangeOrderStatus.Completed, cancellationToken); Guard.Against.resultFail(result); Guard.Against.isNull(order_completed, ServerErrorCode.InvalidRequest, ()=>"CurrencyOrderCompletionStrategy => Order not found"); return order_completed; } }