public async Task <IActionResult> Trade(TradeCreateDto tradeCreateDto) { Guid userId = Guid.Parse(sharedIdentityService.GetUserId); WalletDto walletDto = await walletService.GetWalletByUserIdAsync(userId); var productItem = await productItemService.GetAsync(walletDto.Id, tradeCreateDto.ProductId); if (tradeCreateDto.TradeType == DTO.General.TradeType.Sell) { var sellDto = mapper.Map <SellModel>(tradeCreateDto); sellDto.ProductItem = productItem; sellDto.WalletId = walletDto.Id; sellDto.UserId = userId; var response = await tradeService.SellAsync(sellDto); ScannerServiceState.IsScanned = true; return(CreateResponseInstance(response)); } else if (tradeCreateDto.TradeType == DTO.General.TradeType.Buy) { var buyDto = mapper.Map <BuyModel>(tradeCreateDto); buyDto.ProductItem = productItem; buyDto.WalletId = walletDto.Id; buyDto.UserId = userId; buyDto.WalletDto = walletDto; var response = await tradeService.BuyAsync(buyDto); ScannerServiceState.IsScanned = true; return(CreateResponseInstance(response)); } else { var buyDto = mapper.Map <BuybyLimitModel>(tradeCreateDto); buyDto.WalletId = walletDto.Id; buyDto.UserId = userId; var response = await tradeService.BuybyLimitAsync(buyDto); ScannerServiceState.IsScanned = true; return(CreateResponseInstance(response)); } }